Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
ANTLR Tool Source Code
ANTLR is a powerful parser generator for multiple programming languages including Java.
ANTLR contains 2 major modules:
ANTLR Tool Source Code files are provided in the distribution packge (antlr4-4.10.1.zip). You can download them at ANTLR Website.
You can also browse the source code below:
✍: FYIcenter
⏎ org/antlr/v4/semantics/ActionSniffer.java
/* * Copyright (c) 2012-2017 The ANTLR Project. All rights reserved. * Use of this file is governed by the BSD 3-clause license that * can be found in the LICENSE.txt file in the project root. */ package org.antlr.v4.semantics; import org.antlr.runtime.ANTLRStringStream; import org.antlr.runtime.Token; import org.antlr.v4.parse.ActionSplitter; import org.antlr.v4.tool.Alternative; import org.antlr.v4.tool.ErrorManager; import org.antlr.v4.tool.Grammar; import org.antlr.v4.tool.Rule; import org.antlr.v4.tool.ast.ActionAST; import org.antlr.v4.tool.ast.GrammarAST; import org.antlr.v4.tool.ast.TerminalAST; import java.util.List; /** Find token and rule refs plus refs to them in actions; * side-effect: update Alternatives */ public class ActionSniffer extends BlankActionSplitterListener { public Grammar g; public Rule r; // null if action outside of rule public Alternative alt; // null if action outside of alt; could be in rule public ActionAST node; public Token actionToken; // token within action public ErrorManager errMgr; public ActionSniffer(Grammar g, Rule r, Alternative alt, ActionAST node, Token actionToken) { this.g = g; this.r = r; this.alt = alt; this.node = node; this.actionToken = actionToken; this.errMgr = g.tool.errMgr; } public void examineAction() { //System.out.println("examine "+actionToken); ANTLRStringStream in = new ANTLRStringStream(actionToken.getText()); in.setLine(actionToken.getLine()); in.setCharPositionInLine(actionToken.getCharPositionInLine()); ActionSplitter splitter = new ActionSplitter(in, this); // forces eval, triggers listener methods node.chunks = splitter.getActionTokens(); } public void processNested(Token actionToken) { ANTLRStringStream in = new ANTLRStringStream(actionToken.getText()); in.setLine(actionToken.getLine()); in.setCharPositionInLine(actionToken.getCharPositionInLine()); ActionSplitter splitter = new ActionSplitter(in, this); // forces eval, triggers listener methods splitter.getActionTokens(); } @Override public void attr(String expr, Token x) { trackRef(x); } @Override public void qualifiedAttr(String expr, Token x, Token y) { trackRef(x); } @Override public void setAttr(String expr, Token x, Token rhs) { trackRef(x); processNested(rhs); } @Override public void setNonLocalAttr(String expr, Token x, Token y, Token rhs) { processNested(rhs); } public void trackRef(Token x) { List<TerminalAST> xRefs = alt.tokenRefs.get(x.getText()); if ( xRefs!=null ) { alt.tokenRefsInActions.map(x.getText(), node); } List<GrammarAST> rRefs = alt.ruleRefs.get(x.getText()); if ( rRefs!=null ) { alt.ruleRefsInActions.map(x.getText(), node); } } }
⏎ org/antlr/v4/semantics/ActionSniffer.java
Or download all of them as a single archive file:
File name: antlr-tool-4.10.1-sources.jar File size: 347718 bytes Release date: 2022-04-15 Download
2022-04-24, 32022👍, 0💬
Popular Posts:
What Is jsse.jar (JDK 6) Java Secure Socket Extension? jsse.jar, Java Secure Socket Extension, is Ja...
How to download and install ojdbc6.jar for Oracle 11g R2? ojdbc6.jar for Oracle 11g R2 is a Java 6, ...
ASM is an all purpose Java bytecode manipulation and analysis framework. It can be used to modify ex...
How to perform XML Schema validation with dom\Writer.java provided in the Apache Xerces package? You...
JDK 11 jdk.jdeps.jmod is the JMOD file for JDK 11 JDeps tool, which can be invoked by the "jdeps" co...