Top Inners Fields Constructors Methods
org.antlr.v4

public Class Tool

extends Object
Class Inheritance
Imports
org.antlr.runtime.ANTLRFileStream, .ANTLRStringStream, .CharStream, .CommonTokenStream, .ParserRuleReturnScope, .RecognitionException, org.antlr.v4.analysis.AnalysisPipeline, org.antlr.v4.automata.ATNFactory, .LexerATNFactory, .ParserATNFactory, org.antlr.v4.codegen.CodeGenPipeline, .CodeGenerator, org.antlr.v4.misc.Graph, org.antlr.v4.parse.ANTLRParser, .GrammarASTAdaptor, .GrammarTreeVisitor, .ToolANTLRLexer, .ToolANTLRParser, org.antlr.v4.runtime.RuntimeMetaData, org.antlr.v4.runtime.misc.LogManager, .IntegerList, org.antlr.v4.runtime.atn.ATNSerializer, org.antlr.v4.semantics.SemanticPipeline, org.antlr.v4.tool.ANTLRMessage, .ANTLRToolListener, .BuildDependencyGenerator, .DOTGenerator, .DefaultToolListener, .ErrorManager, .ErrorType, .Grammar, .GrammarTransformPipeline, .LexerGrammar, .Rule, org.antlr.v4.tool.ast.ActionAST, .GrammarAST, .GrammarASTErrorNode, .GrammarRootAST, .RuleAST, .TerminalAST, org.stringtemplate.v4.STGroup, java.io.BufferedWriter, .File, .FileOutputStream, .IOException, .OutputStreamWriter, .StringWriter, .Writer, java.lang.reflect.Field, java.util.*, java.util.concurrent.CopyOnWriteArrayList

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class
public static enum

Field Summary

Modifier and TypeField and Description
public static final List<String>
public final String[]
pack-priv DefaultToolListener
defaultListener

Track separately so if someone adds a listener, it's the only one instead of it and the default stderr listener.

public ErrorManager
public boolean
public boolean
public boolean
public boolean
public boolean
public boolean
public String
public static final String
public String
protected List<String>
public Map<String, String>
protected boolean
private final Map<String, Grammar>
public File
public boolean
public static final String
public String
pack-priv List<ANTLRToolListener>
public boolean
public LogManager
public boolean
public String
public static final Tool.Option[]
public String
protected boolean
public boolean
public static final String
public boolean

Constructor Summary

AccessConstructor and Description
public
Tool()

public
Tool(String[] args)

Method Summary

Modifier and TypeMethod and Description
public void
public boolean
checkForRuleIssues(final Grammar g)

Important enough to avoid multiple definitions that we do very early, right after AST construction.

public Grammar
createGrammar(GrammarRootAST ast)

Given the raw AST of a grammar, create a grammar object associated with the AST.

public void
public void
exit(int e)

public static GrammarAST
findOptionValueAST(GrammarRootAST root, String option)

Manually get option node from tree; return null if no defined.

public void
public static String
public File
public List<ANTLRToolListener>
public int
public File
getOutputDirectory(String
path to input source
fileNameWithPath
)

Return the location where ANTLR will generate output files for a given file.

public Writer
getOutputFileWriter(Grammar g, String fileName)

This method is used by all code generators to create new output files.

protected void
protected void
public void
help()

public void
info(String msg)

public Grammar
loadGrammar(String fileName)

Convenience method to load and process an ANTLR grammar.

public Grammar
loadImportedGrammar(Grammar g, GrammarAST
The node associated with the imported grammar name.
nameNode
)

Try current dir then dir of g then lib dir

public void
log(String component, String msg)

public void
log(String msg)

public static void
main(String[] args)

public File
new_getOutputDirectory(String fileNameWithPath)

public void
public GrammarRootAST
parse(String fileName, CharStream in)

public GrammarRootAST
parseGrammar(String fileName)

public GrammarRootAST
public void
process(Grammar g, boolean gencode)

To process a grammar, we load all of its imported grammars into subordinate grammar objects.

public void
public void
processNonCombinedGrammar(Grammar g, boolean gencode)

public void
public void
public List<GrammarRootAST>
public void
public void
protected void
protected void
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

ALL_GRAMMAR_EXTENSIONSback to summary
public static final List<String> ALL_GRAMMAR_EXTENSIONS
argsback to summary
public final String[] args
defaultListenerback to summary
pack-priv DefaultToolListener defaultListener

Track separately so if someone adds a listener, it's the only one instead of it and the default stderr listener.

errMgrback to summary
public ErrorManager errMgr
exact_output_dirback to summary
public boolean exact_output_dir
force_atnback to summary
public boolean force_atn
gen_dependenciesback to summary
public boolean gen_dependencies
gen_listenerback to summary
public boolean gen_listener
gen_visitorback to summary
public boolean gen_visitor
generate_ATN_dotback to summary
public boolean generate_ATN_dot
genPackageback to summary
public String genPackage
GRAMMAR_EXTENSIONback to summary
public static final String GRAMMAR_EXTENSION
grammarEncodingback to summary
public String grammarEncoding
grammarFilesback to summary
protected List<String> grammarFiles
grammarOptionsback to summary
public Map<String, String> grammarOptions
haveOutputDirback to summary
protected boolean haveOutputDir
importedGrammarsback to summary
private final Map<String, Grammar> importedGrammars
inputDirectoryback to summary
public File inputDirectory
launch_ST_inspectorback to summary
public boolean launch_ST_inspector
LEGACY_GRAMMAR_EXTENSIONback to summary
public static final String LEGACY_GRAMMAR_EXTENSION
libDirectoryback to summary
public String libDirectory
listenersback to summary
pack-priv List<ANTLRToolListener> listeners
logback to summary
public boolean log
logMgrback to summary
public LogManager logMgr
longMessagesback to summary
public boolean longMessages
msgFormatback to summary
public String msgFormat
optionDefsback to summary
public static final Tool.Option[] optionDefs
outputDirectoryback to summary
public String outputDirectory
return_dont_exitback to summary
protected boolean return_dont_exit
ST_inspector_wait_for_closeback to summary
public boolean ST_inspector_wait_for_close
VERSIONback to summary
public static final String VERSION
warnings_are_errorsback to summary
public boolean warnings_are_errors

Constructor Detail

Toolback to summary
public Tool()
Toolback to summary
public Tool(String[] args)

Method Detail

addListenerback to summary
public void addListener(ANTLRToolListener tl)
checkForRuleIssuesback to summary
public boolean checkForRuleIssues(final Grammar g)

Important enough to avoid multiple definitions that we do very early, right after AST construction. Also check for undefined rules in parser/lexer to avoid exceptions later. Return true if we find multiple definitions of the same rule or a reference to an undefined rule or parser rule ref in lexer rule.

createGrammarback to summary
public Grammar createGrammar(GrammarRootAST ast)

Given the raw AST of a grammar, create a grammar object associated with the AST. Once we have the grammar object, ensure that all nodes in tree referred to this grammar. Later, we will use it for error handling and generally knowing from where a rule comes from.

errorback to summary
public void error(ANTLRMessage msg)
exitback to summary
public void exit(int e)
findOptionValueASTback to summary
public static GrammarAST findOptionValueAST(GrammarRootAST root, String option)

Manually get option node from tree; return null if no defined.

generateATNsback to summary
public void generateATNs(Grammar g)
generateInterpreterDataback to summary
public static String generateInterpreterData(Grammar g)
getImportedGrammarFileback to summary
public File getImportedGrammarFile(Grammar g, String fileName)
getListenersback to summary
public List<ANTLRToolListener> getListeners()
getNumErrorsback to summary
public int getNumErrors()
getOutputDirectoryback to summary
public File getOutputDirectory(String fileNameWithPath)

Return the location where ANTLR will generate output files for a given file. This is a base directory and output files will be relative to here in some cases such as when -o option is used and input files are given relative to the input directory.

Parameters
fileNameWithPath:String

path to input source

getOutputFileWriterback to summary
public Writer getOutputFileWriter(Grammar g, String fileName) throws IOException

This method is used by all code generators to create new output files. If the outputDir set by -o is not present it will be created. The final filename is sensitive to the output directory and the directory where the grammar file was found. If -o is /tmp and the original grammar file was foo/t.g4 then output files go in /tmp/foo. The output dir -o spec takes precedence if it's absolute. E.g., if the grammar file dir is absolute the output dir is given precedence. "-o /tmp /usr/lib/t.g4" results in "/tmp/T.java" as output (assuming t.g4 holds T.java). If no -o is specified, then just write to the directory where the grammar file was found. If outputDirectory==null then write a String.

handleArgsback to summary
protected void handleArgs()
handleOptionSetArgback to summary
protected void handleOptionSetArg(String arg)
helpback to summary
public void help()
infoback to summary
public void info(String msg)
loadGrammarback to summary
public Grammar loadGrammar(String fileName)

Convenience method to load and process an ANTLR grammar. Useful when creating interpreters. If you need to access to the lexer grammar created while processing a combined grammar, use getImplicitLexer() on returned grammar.

loadImportedGrammarback to summary
public Grammar loadImportedGrammar(Grammar g, GrammarAST nameNode) throws IOException

Try current dir then dir of g then lib dir

Parameters
nameNode:GrammarAST

The node associated with the imported grammar name.

logback to summary
public void log(String component, String msg)
logback to summary
public void log(String msg)
mainback to summary
public static void main(String[] args)
new_getOutputDirectoryback to summary
public File new_getOutputDirectory(String fileNameWithPath)
Since
4.7.1 in response to -Xexact-output-dir
panicback to summary
public void panic()
parseback to summary
public GrammarRootAST parse(String fileName, CharStream in)
parseGrammarback to summary
public GrammarRootAST parseGrammar(String fileName)
parseGrammarFromStringback to summary
public GrammarRootAST parseGrammarFromString(String grammar)
processback to summary
public void process(Grammar g, boolean gencode)

To process a grammar, we load all of its imported grammars into subordinate grammar objects. Then we merge the imported rules into the root grammar. If a root grammar is a combined grammar, we have to extract the implicit lexer. Once all this is done, we process the lexer first, if present, and then the parser grammar

processGrammarsOnCommandLineback to summary
public void processGrammarsOnCommandLine()
processNonCombinedGrammarback to summary
public void processNonCombinedGrammar(Grammar g, boolean gencode)
removeListenerback to summary
public void removeListener(ANTLRToolListener tl)
removeListenersback to summary
public void removeListeners()
sortGrammarByTokenVocabback to summary
public List<GrammarRootAST> sortGrammarByTokenVocab(List<String> fileNames)
versionback to summary
public void version()
warningback to summary
public void warning(ANTLRMessage msg)
writeDOTFileback to summary
protected void writeDOTFile(Grammar g, Rule r, String dot) throws IOException
writeDOTFileback to summary
protected void writeDOTFile(Grammar g, String name, String dot) throws IOException
org.antlr.v4 back to summary

public Class Tool.Option

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
pack-priv Tool.OptionArgType
pack-priv String
pack-priv String
pack-priv String

Constructor Summary

AccessConstructor and Description
public
Option(String fieldName, String name, String description)

public
Option(String fieldName, String name, Tool.OptionArgType argType, String description)

Method Summary

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

argTypeback to summary
pack-priv Tool.OptionArgType argType
descriptionback to summary
pack-priv String description
fieldNameback to summary
pack-priv String fieldName
nameback to summary
pack-priv String name

Constructor Detail

Optionback to summary
public Option(String fieldName, String name, String description)
Optionback to summary
public Option(String fieldName, String name, Tool.OptionArgType argType, String description)
org.antlr.v4 back to summary

public final Enum Tool.OptionArgType

extends Enum<Tool.OptionArgType>
Class Inheritance

Field Summary

Modifier and TypeField and Description
public static final Tool.OptionArgType
public static final Tool.OptionArgType

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static Tool.OptionArgType
public static Tool.OptionArgType[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

NONEback to summary
public static final Tool.OptionArgType NONE
STRINGback to summary
public static final Tool.OptionArgType STRING

Constructor Detail

OptionArgTypeback to summary
private OptionArgType()

Method Detail

valueOfback to summary
public static Tool.OptionArgType valueOf(String name)
valuesback to summary
public static Tool.OptionArgType[] values()