Todo
make the side effects into a separate pass this Invokes check rules for these: FILE_AND_GRAMMAR_NAME_DIFFER LEXER_RULES_NOT_ALLOWED PARSER_RULES_NOT_ALLOWED CANNOT_ALIAS_TOKENS ARGS_ON_TOKEN_REF ILLEGAL_OPTION REWRITE_OR_OP_WITH_NO_OUTPUT_OPTION NO_RULES REWRITE_FOR_MULTI_ELEMENT_ALT HETERO_ILLEGAL_IN_REWRITE_ALT AST_OP_WITH_NON_AST_OUTPUT_OPTION AST_OP_IN_ALT_WITH_REWRITE CONFLICTING_OPTION_IN_TREE_FILTER WILDCARD_AS_ROOT INVALID_IMPORT TOKEN_VOCAB_IN_DELEGATE IMPORT_NAME_CLASH REPEATED_PREQUEL TOKEN_NAMES_MUST_START_UPPER
| Modifier and Type | Field and Description |
|---|---|
| public boolean | checkAssocElementOption
When this is |
| public ErrorManager | |
| public Grammar | |
| private boolean | grammarCaseInsensitive
Value of caseInsensitive option (false if not defined) |
| private boolean | inFragmentRule
This is |
| protected int | nonFragmentRuleCount
This field is used for reporting the |
| public RuleCollector | |
| public static final MultiMap | validImportTypes
Set of valid imports. |
| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| public void | |
| public void | blockOption(GrammarAST ID, GrammarAST valueAST)
Overrides org. |
| private void | |
| pack-priv void | |
| protected void | checkElementIsOuterMostInSingleAlt(GrammarAST tree)
Make sure that action is last element in outer alt; here action, a2, z, and zz are bad, but a3 is ok: (RULE A (BLOCK (ALT {action} 'a'))) (RULE B (BLOCK (ALT (BLOCK (ALT {a2} 'x') (ALT 'y')) {a3}))) (RULE C (BLOCK (ALT 'd' {z}) (ALT 'e' {zz}))) |
| pack-priv boolean | checkElementOptions(GrammarASTWithOptions elem, GrammarAST ID, GrammarAST valueAST)
Check option is appropriate for elem; parent of ID is ELEMENT_OPTIONS |
| pack-priv void | |
| pack-priv void | |
| pack-priv void | |
| pack-priv void | |
| pack-priv void | |
| pack-priv void | |
| pack-priv void | checkOptions(GrammarAST parent, Token optionID, GrammarAST valueAST)
Check option is appropriate for grammar, rule, subrule |
| pack-priv boolean | |
| pack-priv void | |
| pack-priv boolean | |
| public void | |
| public void | |
| public void | discoverGrammar(GrammarRootAST root, GrammarAST ID)
Overrides org. |
| public void | discoverLexerRule(RuleAST rule, GrammarAST ID, List<GrammarAST> modifiers, GrammarAST options, GrammarAST block)
Overrides org. |
| public void | discoverRule(RuleAST rule, GrammarAST ID, List<GrammarAST> modifiers, ActionAST arg, ActionAST returns, GrammarAST thrws, GrammarAST options, ActionAST locals, List<GrammarAST> actions, GrammarAST block)
Overrides org. |
| public void | |
| public void | elementOption(GrammarASTWithOptions elem, GrammarAST ID, GrammarAST valueAST)
Overrides org. |
| protected void | |
| protected void | |
| protected void | |
| protected void | |
| protected void | |
| protected void | |
| protected void | |
| public void | finishPrequels(GrammarAST firstPrequel)
Overrides org. |
| public void | finishRule(RuleAST rule, GrammarAST ID, GrammarAST block)
|
| public ErrorManager | |
| public void | grammarOption(GrammarAST ID, GrammarAST valueAST)
Overrides org. |
| public void | importGrammar(GrammarAST label, GrammarAST ID)
Overrides org. |
| public void | label(GrammarAST op, GrammarAST ID, GrammarAST element)
Overrides org. |
| public void | |
| public void | |
| public void | ruleOption(GrammarAST ID, GrammarAST valueAST)
|
| public void |
| checkAssocElementOption | back to summary |
|---|---|
| public boolean checkAssocElementOption When this is The default value is | |
| errMgr | back to summary |
|---|---|
| public ErrorManager errMgr | |
| g | back to summary |
|---|---|
| public Grammar g | |
| grammarCaseInsensitive | back to summary |
|---|---|
| private boolean grammarCaseInsensitive Value of caseInsensitive option (false if not defined) | |
| inFragmentRule | back to summary |
|---|---|
| private boolean inFragmentRule This is | |
| nonFragmentRuleCount | back to summary |
|---|---|
| protected int nonFragmentRuleCount This field is used for reporting the | |
| ruleCollector | back to summary |
|---|---|
| public RuleCollector ruleCollector | |
| validImportTypes | back to summary |
|---|---|
| public static final MultiMap<Integer, Integer> validImportTypes Set of valid imports. Maps delegate to set of delegator grammar types. validDelegations.get(LEXER) gives list of the kinds of delegators that can import lexers. | |
| BasicSemanticChecks | back to summary |
|---|---|
| public BasicSemanticChecks(Grammar g, RuleCollector ruleCollector) | |
| actionInAlt | back to summary |
|---|---|
| public void actionInAlt(ActionAST action) Overrides org.
| |
| blockOption | back to summary |
|---|---|
| public void blockOption(GrammarAST ID, GrammarAST valueAST) Overrides org.
| |
| checkCaseInsensitiveOption | back to summary |
|---|---|
| private void checkCaseInsensitiveOption(Token optionID, GrammarAST valueAST, int parentType) | |
| checkChannelDefinition | back to summary |
|---|---|
| pack-priv void checkChannelDefinition(Token tokenID) | |
| checkElementIsOuterMostInSingleAlt | back to summary |
|---|---|
| protected void checkElementIsOuterMostInSingleAlt(GrammarAST tree) Make sure that action is last element in outer alt; here action, a2, z, and zz are bad, but a3 is ok: (RULE A (BLOCK (ALT {action} 'a'))) (RULE B (BLOCK (ALT (BLOCK (ALT {a2} 'x') (ALT 'y')) {a3}))) (RULE C (BLOCK (ALT 'd' {z}) (ALT 'e' {zz}))) | |
| checkElementOptions | back to summary |
|---|---|
| pack-priv boolean checkElementOptions(GrammarASTWithOptions elem, GrammarAST ID, GrammarAST valueAST) Check option is appropriate for elem; parent of ID is ELEMENT_OPTIONS | |
| checkGrammarName | back to summary |
|---|---|
| pack-priv void checkGrammarName(Token nameToken) | |
| checkImport | back to summary |
|---|---|
| pack-priv void checkImport(Token importID) | |
| checkInvalidRuleDef | back to summary |
|---|---|
| pack-priv void checkInvalidRuleDef(Token ruleID) | |
| checkInvalidRuleRef | back to summary |
|---|---|
| pack-priv void checkInvalidRuleRef(Token ruleID) | |
| checkNumPrequels | back to summary |
|---|---|
| pack-priv void checkNumPrequels(List<GrammarAST> options, List<GrammarAST> imports, List<GrammarAST> tokens) | |
| checkNumRules | back to summary |
|---|---|
| pack-priv void checkNumRules(GrammarAST rulesNode) | |
| checkOptions | back to summary |
|---|---|
| pack-priv void checkOptions(GrammarAST parent, Token optionID, GrammarAST valueAST) Check option is appropriate for grammar, rule, subrule | |
| checkRuleRefOptions | back to summary |
|---|---|
| pack-priv boolean checkRuleRefOptions(RuleRefAST elem, GrammarAST ID, GrammarAST valueAST) | |
| checkTokenDefinition | back to summary |
|---|---|
| pack-priv void checkTokenDefinition(Token tokenID) | |
| checkTokenOptions | back to summary |
|---|---|
| pack-priv boolean checkTokenOptions(TerminalAST elem, GrammarAST ID, GrammarAST valueAST) | |
| defineChannel | back to summary |
|---|---|
| public void defineChannel(GrammarAST ID) Overrides org.
| |
| defineToken | back to summary |
|---|---|
| public void defineToken(GrammarAST ID) Overrides org.
| |
| discoverGrammar | back to summary |
|---|---|
| public void discoverGrammar(GrammarRootAST root, GrammarAST ID) Overrides org.
| |
| discoverLexerRule | back to summary |
|---|---|
| public void discoverLexerRule(RuleAST rule, GrammarAST ID, List<GrammarAST> modifiers, GrammarAST options, GrammarAST block) Overrides org.
| |
| discoverRule | back to summary |
|---|---|
| public void discoverRule(RuleAST rule, GrammarAST ID, List<GrammarAST> modifiers, ActionAST arg, ActionAST returns, GrammarAST thrws, GrammarAST options, ActionAST locals, List<GrammarAST> actions, GrammarAST block) Overrides org.
| |
| discoverRules | back to summary |
|---|---|
| public void discoverRules(GrammarAST rules) Overrides org.
| |
| elementOption | back to summary |
|---|---|
| public void elementOption(GrammarASTWithOptions elem, GrammarAST ID, GrammarAST valueAST) Overrides org.
| |
| enterChannelsSpec | back to summary |
|---|---|
| protected void enterChannelsSpec(GrammarAST tree) Overrides org.
| |
| enterLexerCommand | back to summary |
|---|---|
| protected void enterLexerCommand(GrammarAST tree) Overrides org.
| |
| enterLexerElement | back to summary |
|---|---|
| protected void enterLexerElement(GrammarAST tree) Overrides org.
| |
| enterMode | back to summary |
|---|---|
| protected void enterMode(GrammarAST tree) Overrides org.
| |
| enterTerminal | back to summary |
|---|---|
| protected void enterTerminal(GrammarAST tree) Overrides org.
| |
| exitLexerRule | back to summary |
|---|---|
| protected void exitLexerRule(GrammarAST tree) Overrides org.
| |
| exitMode | back to summary |
|---|---|
| protected void exitMode(GrammarAST tree) Overrides org.
| |
| finishPrequels | back to summary |
|---|---|
| public void finishPrequels(GrammarAST firstPrequel) Overrides org.
| |
| finishRule | back to summary |
|---|---|
| public void finishRule(RuleAST rule, GrammarAST ID, GrammarAST block) Overrides org.
| |
| getErrorManager | back to summary |
|---|---|
| public ErrorManager getErrorManager() Overrides org.
| |
| grammarOption | back to summary |
|---|---|
| public void grammarOption(GrammarAST ID, GrammarAST valueAST) Overrides org.
| |
| importGrammar | back to summary |
|---|---|
| public void importGrammar(GrammarAST label, GrammarAST ID) Overrides org.
| |
| label | back to summary |
|---|---|
| public void label(GrammarAST op, GrammarAST ID, GrammarAST element) Overrides org.
| |
| modeDef | back to summary |
|---|---|
| public void modeDef(GrammarAST m, GrammarAST ID) Overrides org.
| |
| process | back to summary |
|---|---|
| public void process() | |
| ruleOption | back to summary |
|---|---|
| public void ruleOption(GrammarAST ID, GrammarAST valueAST) Overrides org.
| |
| ruleRef | back to summary |
|---|---|
| public void ruleRef(GrammarAST ref, ActionAST arg) Overrides org.
| |