public class Grammar extends Object implements GrammarConstants
| Modifier and Type | Class and Description |
|---|---|
class |
Grammar.NT |
class |
Grammar.R |
class |
Grammar.S |
class |
Grammar.T |
CIRCLED_ASTERISK, CIRCLED_PLUS, INVERTED_QUESTION_MARK, PHI, SIGMA| Constructor and Description |
|---|
Grammar(GrammarDef gd) |
Grammar(int lrkLevel,
int maxStack) |
Grammar(String start,
Grammar sg,
String eof,
String... whiteSpace) |
| Modifier and Type | Method and Description |
|---|---|
void |
addAnonymousTerminal(String expression,
Regex.Option... options)
Adds anonymous terminal.
|
void |
addRule(Member reducer,
String nonterminal,
String... rhs)
Adds new rule if the same rule doesn't exist already.
|
void |
addRule(Member reducer,
String nonterminal,
String document,
boolean synthetic,
List<String> rhs)
Adds new rule if the same rule doesn't exist already.
|
void |
addRule(String nonterminal,
List<String> rhs)
Adds new rule if the same rule doesn't exist already.
|
void |
addRule(String nonterminal,
String... rhs)
Adds new rule if the same rule doesn't exist already.
|
void |
addTerminal(Member reducer,
String name,
String expression,
String documentation,
int priority,
int base,
Regex.Option... options) |
void |
addTerminal(String name,
String expression,
int priority,
int base,
Regex.Option... options) |
int |
getLrkLevel() |
int |
getMaxStack() |
int |
getNumber(String symbol) |
LALRKParserGenerator |
getParserGenerator(String start,
String eof,
boolean syntaxOnly,
String... whiteSpace)
Return a parser generator from grammar.
|
Map<Integer,String> |
getRuleDescriptions() |
String |
getSymbol(int number) |
Collection<String> |
getSymbols() |
boolean |
hasNonterminal(String name) |
boolean |
hasTerminal(String name) |
static boolean |
isAnonymousTerminal(String name) |
static String |
literal(String text) |
void |
print(Appendable out) |
static String |
quantifierRules(String nt,
char quantifier,
Grammar g) |
void |
setLrkLevel(int lrkLevel) |
void |
setMaxStack(int maxStack) |
public Grammar(GrammarDef gd)
public Grammar(int lrkLevel,
int maxStack)
public Grammar(String start,
Grammar sg,
String eof,
String... whiteSpace)
public boolean hasNonterminal(String name)
public boolean hasTerminal(String name)
public static String quantifierRules(String nt,
char quantifier,
Grammar g)
throws NoSuchMethodException
NoSuchMethodExceptionpublic void addRule(String nonterminal,
String... rhs)
nonterminal - Left hand side of the rule.rhs - Strings in BnfGrammar format.BnfGrammarpublic void addRule(Member reducer,
String nonterminal,
String... rhs)
reducer - Reducer method.nonterminal - Left hand side of the rule.rhs - Strings in BnfGrammar format.BnfGrammarpublic void addRule(String nonterminal,
List<String> rhs)
nonterminal - Left hand side of the rule.rhs - public void addRule(Member reducer,
String nonterminal,
String document,
boolean synthetic,
List<String> rhs)
reducer - Reducer method.nonterminal - Left hand side of the rule.rhs - Strings which are either nonterminal names, terminal names or
anonymous terminals. Anonymous terminals are regular expressions inside
apostrophes. E.g '[0-9]+'public void addAnonymousTerminal(String expression,
Regex.Option... options)
expression - options - public void addTerminal(String name,
String expression,
int priority,
int base,
Regex.Option... options)
public final void addTerminal(Member reducer,
String name,
String expression,
String documentation,
int priority,
int base,
Regex.Option... options)
public LALRKParserGenerator getParserGenerator(String start, String eof, boolean syntaxOnly, String... whiteSpace)
start - eof - whiteSpace - public void print(Appendable out)
public Map<Integer,String> getRuleDescriptions()
public static boolean isAnonymousTerminal(String name)
public String getSymbol(int number)
public int getNumber(String symbol)
public Collection<String> getSymbols()
public int getLrkLevel()
public void setLrkLevel(int lrkLevel)
public int getMaxStack()
public void setMaxStack(int maxStack)
public static String literal(String text)