Package org.antlr.tool
Class GrammarSpelunker
- java.lang.Object
-
- org.antlr.tool.GrammarSpelunker
-
public class GrammarSpelunker extends java.lang.Object
Load a grammar file and scan it just until we learn a few items of interest. Currently: name, type, imports, tokenVocab, language option. GrammarScanner (at bottom of this class) converts grammar to stuff like: grammar Java ; options { backtrack true memoize true } import JavaDecl JavaAnnotations JavaExpr ; ... : ... First ':' or '@' indicates we can stop looking for imports/options. Then we just grab interesting grammar properties.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
GrammarSpelunker.Scanner
Strip comments and then return stream of words and tokens {';', ':', '{', '}'}
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.String
grammarFileName
protected java.lang.String
grammarModifier
protected java.lang.String
grammarName
protected java.util.List<java.lang.String>
importedGrammars
protected java.lang.String
inputDirectory
protected java.lang.String
language
protected GrammarSpelunker.Scanner
scanner
protected java.lang.String
token
protected java.lang.String
tokenVocab
-
Constructor Summary
Constructors Constructor Description GrammarSpelunker(java.lang.String inputDirectory, java.lang.String grammarFileName)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
getGrammarModifier()
java.lang.String
getGrammarName()
java.util.List<java.lang.String>
getImportedGrammars()
java.lang.String
getLanguage()
java.lang.String
getTokenVocab()
protected void
grammarHeader()
protected void
imports()
static void
main(java.lang.String[] args)
Tester; Give grammar filename as argprotected void
match(java.lang.String expecting)
protected void
options()
void
parse()
-
-
-
Field Detail
-
grammarFileName
protected java.lang.String grammarFileName
-
token
protected java.lang.String token
-
scanner
protected GrammarSpelunker.Scanner scanner
-
grammarModifier
protected java.lang.String grammarModifier
-
grammarName
protected java.lang.String grammarName
-
tokenVocab
protected java.lang.String tokenVocab
-
language
protected java.lang.String language
-
inputDirectory
protected java.lang.String inputDirectory
-
importedGrammars
protected java.util.List<java.lang.String> importedGrammars
-
-
Method Detail
-
match
protected void match(java.lang.String expecting) throws java.io.IOException
- Throws:
java.io.IOException
-
parse
public void parse() throws java.io.IOException
- Throws:
java.io.IOException
-
grammarHeader
protected void grammarHeader() throws java.io.IOException
- Throws:
java.io.IOException
-
options
protected void options() throws java.io.IOException
- Throws:
java.io.IOException
-
imports
protected void imports() throws java.io.IOException
- Throws:
java.io.IOException
-
getGrammarModifier
public java.lang.String getGrammarModifier()
-
getGrammarName
public java.lang.String getGrammarName()
-
getTokenVocab
public java.lang.String getTokenVocab()
-
getLanguage
public java.lang.String getLanguage()
-
getImportedGrammars
public java.util.List<java.lang.String> getImportedGrammars()
-
main
public static void main(java.lang.String[] args) throws java.io.IOException
Tester; Give grammar filename as arg- Throws:
java.io.IOException
-
-