Package org.snt.inmemantlr.tool
Class InmemantlrTool
- java.lang.Object
-
- org.antlr.v4.Tool
-
- org.snt.inmemantlr.tool.InmemantlrTool
-
public class InmemantlrTool extends org.antlr.v4.Tool
special tool class that implements in-memory operations for the original antlr tool
-
-
Field Summary
-
Fields inherited from class org.antlr.v4.Tool
ALL_GRAMMAR_EXTENSIONS, args, errMgr, exact_output_dir, force_atn, gen_dependencies, gen_listener, gen_visitor, generate_ATN_dot, genPackage, GRAMMAR_EXTENSION, grammarEncoding, grammarFiles, grammarOptions, haveOutputDir, inputDirectory, internalOption_PrintGrammarTree, internalOption_ShowATNConfigsInDFA, launch_ST_inspector, LEGACY_GRAMMAR_EXTENSION, libDirectory, log, logMgr, longMessages, msgFormat, optionDefs, outputDirectory, return_dont_exit, ST_inspector_wait_for_close, VERSION, warnings_are_errors
-
-
Constructor Summary
Constructors Constructor Description InmemantlrTool()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.antlr.v4.tool.Grammar
createGrammar(org.antlr.v4.tool.ast.GrammarRootAST ast)
StringCodeGenPipeline
createPipeline(org.antlr.v4.tool.ast.GrammarRootAST ast)
create code generation pipeline from grammar astvoid
error(org.antlr.v4.tool.ANTLRMessage msg)
void
exit(int e)
java.util.Set<StringCodeGenPipeline>
getCompilationUnits()
get compilation units, i.e.java.lang.String
getDepTokVocName(org.antlr.v4.tool.Grammar g)
return name of token vocab if imported by grammar gjava.lang.String
getPackagePrefix()
return package prefix if configured by userjava.util.Set<StringCodeGenPipeline>
getPipelines()
get string code generation pipelines in-order (based on imported token vocab)void
info(java.lang.String msg)
boolean
isImported(java.lang.String name)
check whether grammar is importedorg.antlr.v4.tool.Grammar
loadImportedGrammar(org.antlr.v4.tool.Grammar g, org.antlr.v4.tool.ast.GrammarAST nameNode)
Tuple<java.lang.String,java.lang.String>
process()
process all code generation pipeline and return the 'main' grammar and lexer names which are used to load the right classes afterwardsvoid
process(org.antlr.v4.tool.Grammar g)
process a grammarvoid
processNonCombinedGrammar(org.antlr.v4.tool.Grammar g, boolean gencode)
this method is taken from the superclassjava.util.Set<org.antlr.v4.tool.ast.GrammarRootAST>
sortGrammarByTokenVocab(java.util.Set<java.lang.String> gcs)
wrapper for sorting grammars based on the imported token vocabvoid
version()
void
warning(org.antlr.v4.tool.ANTLRMessage msg)
-
Methods inherited from class org.antlr.v4.Tool
addListener, checkForRuleIssues, findOptionValueAST, generateATNs, getImportedGrammarFile, getListeners, getNumErrors, getOutputDirectory, getOutputFileWriter, handleArgs, handleOptionSetArg, help, loadGrammar, log, log, main, new_getOutputDirectory, panic, parse, parseGrammar, parseGrammarFromString, process, processGrammarsOnCommandLine, removeListener, removeListeners, sortGrammarByTokenVocab, writeDOTFile, writeDOTFile
-
-
-
-
Method Detail
-
process
public void process(org.antlr.v4.tool.Grammar g)
process a grammar- Parameters:
g
- grammar
-
createGrammar
public org.antlr.v4.tool.Grammar createGrammar(org.antlr.v4.tool.ast.GrammarRootAST ast)
- Overrides:
createGrammar
in classorg.antlr.v4.Tool
-
sortGrammarByTokenVocab
public java.util.Set<org.antlr.v4.tool.ast.GrammarRootAST> sortGrammarByTokenVocab(java.util.Set<java.lang.String> gcs)
wrapper for sorting grammars based on the imported token vocab- Parameters:
gcs
- grammar content collection- Returns:
- set of grammar asts
-
loadImportedGrammar
public org.antlr.v4.tool.Grammar loadImportedGrammar(org.antlr.v4.tool.Grammar g, org.antlr.v4.tool.ast.GrammarAST nameNode) throws java.io.IOException
- Overrides:
loadImportedGrammar
in classorg.antlr.v4.Tool
- Throws:
java.io.IOException
-
getPackagePrefix
public java.lang.String getPackagePrefix()
return package prefix if configured by user- Returns:
- package prefix
-
createPipeline
public StringCodeGenPipeline createPipeline(org.antlr.v4.tool.ast.GrammarRootAST ast)
create code generation pipeline from grammar ast- Parameters:
ast
- grammar ast- Returns:
- string code generation pipeline
-
getPipelines
public java.util.Set<StringCodeGenPipeline> getPipelines()
get string code generation pipelines in-order (based on imported token vocab)- Returns:
- ordered set of string code gen pipelines
-
isImported
public boolean isImported(java.lang.String name)
check whether grammar is imported- Parameters:
name
- grammar name- Returns:
- true if grammar is imported, false otherwise
-
process
public Tuple<java.lang.String,java.lang.String> process()
process all code generation pipeline and return the 'main' grammar and lexer names which are used to load the right classes afterwards- Returns:
- tuple of lexer and parser names
-
getDepTokVocName
public java.lang.String getDepTokVocName(org.antlr.v4.tool.Grammar g)
return name of token vocab if imported by grammar g- Parameters:
g
- grammar- Returns:
- name of token vocab
-
getCompilationUnits
public java.util.Set<StringCodeGenPipeline> getCompilationUnits()
get compilation units, i.e. all string code generation pipelines that are not imported- Returns:
- ordered set of string code pipelines
-
info
public void info(java.lang.String msg)
- Overrides:
info
in classorg.antlr.v4.Tool
-
error
public void error(org.antlr.v4.tool.ANTLRMessage msg)
- Overrides:
error
in classorg.antlr.v4.Tool
-
warning
public void warning(org.antlr.v4.tool.ANTLRMessage msg)
- Overrides:
warning
in classorg.antlr.v4.Tool
-
version
public void version()
- Overrides:
version
in classorg.antlr.v4.Tool
-
exit
public void exit(int e)
- Overrides:
exit
in classorg.antlr.v4.Tool
-
processNonCombinedGrammar
public void processNonCombinedGrammar(org.antlr.v4.tool.Grammar g, boolean gencode)
this method is taken from the superclass- Overrides:
processNonCombinedGrammar
in classorg.antlr.v4.Tool
- Parameters:
g
- grammar to processgencode
- flag to switch on codegeneration
-
-