Package snap.parse
Class GrammarParser
java.lang.Object
snap.parse.Parser
snap.parse.GrammarParser
A Parser to parse simple snap grammar rule files.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
AndExpr Handler: { CountExpr CountExpr* }static class
CountExpr Handler: { Primary ( "*" "+" "?" )? }static class
Expression Handler: { AndExpr ( "|" AndExpr )* }static class
Grammar Handler: { ParseRule* }static class
ParseRule Handler: { Name "{" Expression "}" }static class
Primary Handler: { String | "LookAhead" "(" (Number | Expression) ")" | Name | "(" Expression ")" }Nested classes/interfaces inherited from class snap.parse.Parser
Parser.HandlerRef
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected Grammar
Creates a new ParseRule rule.protected Tokenizer
Override to allow rules files to have standard Java single/multiple line comments.parseGrammarString
(String grammarStr) Parses given grammar string and returns grammar.Methods inherited from class snap.parse.Parser
clearTokens, createNode, getCharIndex, getGrammar, getInput, getLastProcessedToken, getLastValidToken, getLookAheadToken, getNextToken, getPrimaryRule, getRuleForName, getToken, getTokenizer, initGrammar, lookAhead, parse, parse, parse, parse, parseCustom, parseCustom, parseFailed, setCharIndex, setInput, setTokenizer
-
Constructor Details
-
GrammarParser
public GrammarParser()Constructor.
-
-
Method Details
-
parseGrammarString
Parses given grammar string and returns grammar. -
createGrammar
Creates a new ParseRule rule.
Grammar { ParseRule* } ParseRule { Name "{" Expression "}" } Expression { AndExpr ( "|" AndExpr )* } AndExpr { CountExpr CountExpr* } CountExpr { Primary ( "*" "+" "?" )? } Primary { String | "LookAhead" "(" (Number | Expression) ")" | Name | "(" Expression ")"- Overrides:
createGrammar
in classParser
-
createTokenizer
Override to allow rules files to have standard Java single/multiple line comments.- Overrides:
createTokenizer
in classParser
-