📄 definegrammaritemswalker.java
字号:
if (_t!=null) {_t = _t.getNextSibling();} } else { throw ex; } } _retTree = _t; } public final void atom(AST _t) throws RecognitionException { GrammarAST atom_AST_in = (_t == ASTNULL) ? null : (GrammarAST)_t; GrammarAST r = null; GrammarAST t = null; GrammarAST c = null; GrammarAST s = null; try { // for error handling if (_t==null) _t=ASTNULL; switch ( _t.getType()) { case RULE_REF: { r = (GrammarAST)_t; match(_t,RULE_REF); _t = _t.getNextSibling(); if ( inputState.guessing==0 ) { grammar.altReferencesRule(currentRuleName, r, this.outerAltNum); } break; } case TOKEN_REF: { t = (GrammarAST)_t; match(_t,TOKEN_REF); _t = _t.getNextSibling(); if ( inputState.guessing==0 ) { if ( grammar.type==Grammar.LEXER ) { grammar.altReferencesRule(currentRuleName, t, this.outerAltNum); } else { grammar.altReferencesTokenID(currentRuleName, t, this.outerAltNum); } } break; } case CHAR_LITERAL: { c = (GrammarAST)_t; match(_t,CHAR_LITERAL); _t = _t.getNextSibling(); if ( inputState.guessing==0 ) { if ( grammar.type!=Grammar.LEXER ) { Rule rule = grammar.getRule(currentRuleName); if ( rule!=null ) { rule.trackTokenReferenceInAlt(c, outerAltNum); } } } break; } case STRING_LITERAL: { s = (GrammarAST)_t; match(_t,STRING_LITERAL); _t = _t.getNextSibling(); if ( inputState.guessing==0 ) { if ( grammar.type!=Grammar.LEXER ) { Rule rule = grammar.getRule(currentRuleName); if ( rule!=null ) { rule.trackTokenReferenceInAlt(s, outerAltNum); } } } break; } case WILDCARD: { GrammarAST tmp55_AST_in = (GrammarAST)_t; match(_t,WILDCARD); _t = _t.getNextSibling(); break; } case SET: { set(_t); _t = _retTree; break; } default: { throw new NoViableAltException(_t); } } } catch (RecognitionException ex) { if (inputState.guessing==0) { reportError(ex); if (_t!=null) {_t = _t.getNextSibling();} } else { throw ex; } } _retTree = _t; } public final void ebnf(AST _t) throws RecognitionException { GrammarAST ebnf_AST_in = (_t == ASTNULL) ? null : (GrammarAST)_t; try { // for error handling if (_t==null) _t=ASTNULL; switch ( _t.getType()) { case BLOCK: { block(_t); _t = _retTree; break; } case OPTIONAL: { AST __t108 = _t; GrammarAST tmp56_AST_in = (GrammarAST)_t; match(_t,OPTIONAL); _t = _t.getFirstChild(); block(_t); _t = _retTree; _t = __t108; _t = _t.getNextSibling(); break; } default: boolean synPredMatched107 = false; if (_t==null) _t=ASTNULL; if (((_t.getType()==CLOSURE||_t.getType()==POSITIVE_CLOSURE))) { AST __t107 = _t; synPredMatched107 = true; inputState.guessing++; try { { dotLoop(_t); _t = _retTree; } } catch (RecognitionException pe) { synPredMatched107 = false; } _t = __t107;inputState.guessing--; } if ( synPredMatched107 ) { dotLoop(_t); _t = _retTree; } else if ((_t.getType()==CLOSURE)) { AST __t109 = _t; GrammarAST tmp57_AST_in = (GrammarAST)_t; match(_t,CLOSURE); _t = _t.getFirstChild(); block(_t); _t = _retTree; _t = __t109; _t = _t.getNextSibling(); } else if ((_t.getType()==POSITIVE_CLOSURE)) { AST __t110 = _t; GrammarAST tmp58_AST_in = (GrammarAST)_t; match(_t,POSITIVE_CLOSURE); _t = _t.getFirstChild(); block(_t); _t = _retTree; _t = __t110; _t = _t.getNextSibling(); } else { throw new NoViableAltException(_t); } } } catch (RecognitionException ex) { if (inputState.guessing==0) { reportError(ex); if (_t!=null) {_t = _t.getNextSibling();} } else { throw ex; } } _retTree = _t; } public final void tree(AST _t) throws RecognitionException { GrammarAST tree_AST_in = (_t == ASTNULL) ? null : (GrammarAST)_t; try { // for error handling AST __t119 = _t; GrammarAST tmp59_AST_in = (GrammarAST)_t; match(_t,TREE_BEGIN); _t = _t.getFirstChild(); element(_t); _t = _retTree; { _loop121: do { if (_t==null) _t=ASTNULL; if ((_t.getType()==BLOCK||_t.getType()==OPTIONAL||_t.getType()==CLOSURE||_t.getType()==POSITIVE_CLOSURE||_t.getType()==SYNPRED||_t.getType()==RANGE||_t.getType()==CHAR_RANGE||_t.getType()==EPSILON||_t.getType()==SET||_t.getType()==GATED_SEMPRED||_t.getType()==SYN_SEMPRED||_t.getType()==ACTION||_t.getType()==ASSIGN||_t.getType()==STRING_LITERAL||_t.getType()==CHAR_LITERAL||_t.getType()==TOKEN_REF||_t.getType()==PLUS_ASSIGN||_t.getType()==SEMPRED||_t.getType()==NOT||_t.getType()==TREE_BEGIN||_t.getType()==RULE_REF||_t.getType()==WILDCARD)) { element(_t); _t = _retTree; } else { break _loop121; } } while (true); } _t = __t119; _t = _t.getNextSibling(); } catch (RecognitionException ex) { if (inputState.guessing==0) { reportError(ex); if (_t!=null) {_t = _t.getNextSibling();} } else { throw ex; } } _retTree = _t; } /** Track the .* and .+ idioms and make them greedy by default. * If someone specifies an option, it won't match these */ public final void dotLoop(AST _t) throws RecognitionException { GrammarAST dotLoop_AST_in = (_t == ASTNULL) ? null : (GrammarAST)_t; GrammarAST block = (GrammarAST)dotLoop_AST_in.getFirstChild(); try { // for error handling { if (_t==null) _t=ASTNULL; switch ( _t.getType()) { case CLOSURE: { AST __t113 = _t; GrammarAST tmp60_AST_in = (GrammarAST)_t; match(_t,CLOSURE); _t = _t.getFirstChild(); dotBlock(_t); _t = _retTree; _t = __t113; _t = _t.getNextSibling(); break; } case POSITIVE_CLOSURE: { AST __t114 = _t; GrammarAST tmp61_AST_in = (GrammarAST)_t; match(_t,POSITIVE_CLOSURE); _t = _t.getFirstChild(); dotBlock(_t); _t = _retTree; _t = __t114; _t = _t.getNextSibling(); break; } default: { throw new NoViableAltException(_t); } } } if ( inputState.guessing==0 ) { Map opts=new HashMap(); opts.put("greedy", "false"); if ( grammar.type!=Grammar.LEXER ) { // parser grammars assume k=1 for .* loops // otherwise they look til EOF! opts.put("k", Utils.integer(1)); } block.setOptions(grammar,opts); } } catch (RecognitionException ex) { if (inputState.guessing==0) { reportError(ex); if (_t!=null) {_t = _t.getNextSibling();} } else { throw ex; } } _retTree = _t; } public final void dotBlock(AST _t) throws RecognitionException { GrammarAST dotBlock_AST_in = (_t == ASTNULL) ? null : (GrammarAST)_t; try { // for error handling AST __t116 = _t; GrammarAST tmp62_AST_in = (GrammarAST)_t; match(_t,BLOCK); _t = _t.getFirstChild(); AST __t117 = _t; GrammarAST tmp63_AST_in = (GrammarAST)_t; match(_t,ALT); _t = _t.getFirstChild(); GrammarAST tmp64_AST_in = (GrammarAST)_t; match(_t,WILDCARD); _t = _t.getNextSibling(); GrammarAST tmp65_AST_in = (GrammarAST)_t; match(_t,EOA); _t = _t.getNextSibling(); _t = __t117; _t = _t.getNextSibling(); GrammarAST tmp66_AST_in = (GrammarAST)_t; match(_t,EOB); _t = _t.getNextSibling(); _t = __t116; _t = _t.getNextSibling(); } catch (RecognitionException ex) { if (inputState.guessing==0) { reportError(ex); if (_t!=null) {_t = _t.getNextSibling();} } else { throw ex; } } _retTree = _t; } public final void set(AST _t) throws RecognitionException { GrammarAST set_AST_in = (_t == ASTNULL) ? null : (GrammarAST)_t; try { // for error handling AST __t125 = _t; GrammarAST tmp67_AST_in = (GrammarAST)_t; match(_t,SET); _t = _t.getFirstChild(); { int _cnt127=0; _loop127: do { if (_t==null) _t=ASTNULL; if ((_t.getType()==CHAR_RANGE||_t.getType()==STRING_LITERAL||_t.getType()==CHAR_LITERAL||_t.getType()==TOKEN_REF)) { setElement(_t); _t = _retTree; } else { if ( _cnt127>=1 ) { break _loop127; } else {throw new NoViableAltException(_t);} } _cnt127++; } while (true); } { if (_t==null) _t=ASTNULL; switch ( _t.getType()) { case BANG: case ROOT: case RULEROOT: { ast_suffix(_t); _t = _retTree; break; } case 3: { break; } default: { throw new NoViableAltException(_t); } } } _t = __t125; _t = _t.getNextSibling(); } catch (RecognitionException ex) { if (inputState.guessing==0) { reportError(ex); if (_t!=null) {_t = _t.getNextSibling();} } else { throw ex; } } _retTree = _t; } public final void ast_suffix(AST _t) throws RecognitionException { GrammarAST ast_suffix_AST_in = (_t == ASTNULL) ? null : (GrammarAST)_t; try { // for error handling if (_t==null) _t=ASTNULL; switch ( _t.getType()) { case ROOT: { GrammarAST tmp68_AST_in = (GrammarAST)_t; match(_t,ROOT); _t = _t.getNextSibling(); break; } case RULEROOT: { GrammarAST tmp69_AST_in = (GrammarAST)_t; match(_t,RULEROOT); _t = _t.getNextSibling(); break; } case BANG: { GrammarAST tmp70_AST_in = (GrammarAST)_t; match(_t,BANG); _t = _t.getNextSibling(); break; } default: { throw new NoViableAltException(_t); } } } catch (RecognitionException ex) { if (inputState.guessing==0) { reportError(ex); if (_t!=null) {_t = _t.getNextSibling();} } else { throw ex; } } _retTree = _t; } public final void setElement(AST _t) throws RecognitionException { GrammarAST setElement_AST_in = (_t == ASTNULL) ? null : (GrammarAST)_t; GrammarAST c = null; GrammarAST t = null; GrammarAST s = null; GrammarAST c1 = null; GrammarAST c2 = null; try { // for error handling if (_t==null) _t=ASTNULL; switch ( _t.getType()) { case CHAR_LITERAL: { c = (GrammarAST)_t; match(_t,CHAR_LITERAL); _t = _t.getNextSibling(); break; } case TOKEN_REF: { t = (GrammarAST)_t; match(_t,TOKEN_REF); _t = _t.getNextSibling(); break; } case STRING_LITERAL: { s = (GrammarAST)_t; match(_t,STRING_LITERAL); _t = _t.getNextSibling(); break; } case CHAR_RANGE: { AST __t130 = _t; GrammarAST tmp71_AST_in = (GrammarAST)_t; match(_t,CHAR_RANGE); _t = _t.getFirstChild(); c1 = (GrammarAST)_t; match(_t,CHAR_LITERAL); _t = _t.getNextSibling(); c2 = (GrammarAST)_t; match(_t,CHAR_LITERAL); _t = _t.getNextSibling(); _t = __t130; _t = _t.getNextSibling(); break; } default: { throw new NoViableAltException(_t); } } } catch (RecognitionException ex) { if (inputState.guessing==0) { reportError(ex); if (_t!=null) {_t = _t.getNextSibling();} } else { throw ex; } } _retTree = _t; } public static final String[] _tokenNames = { "<0>", "EOF", "<2>", "NULL_TREE_LOOKAHEAD", "\"options\"", "\"tokens\"", "\"parser\"", "LEXER", "RULE", "BLOCK", "OPTIONAL", "CLOSURE", "POSITIVE_CLOSURE", "SYNPRED", "RANGE", "CHAR_RANGE", "EPSILON", "ALT", "EOR", "EOB", "EOA", "CHARSET", "SET", "ID", "ARG", "ARGLIST", "RET", "LEXER_GRAMMAR", "PARSER_GRAMMAR", "TREE_GRAMMAR", "COMBINED_GRAMMAR", "INITACTION", "LABEL", "TEMPLATE", "\"scope\"", "GATED_SEMPRED", "SYN_SEMPRED", "\"fragment\"", "ACTION", "DOC_COMMENT", "SEMI", "\"lexer\"", "\"tree\"", "\"grammar\"", "AMPERSAND", "COLON", "RCURLY", "ASSIGN", "STRING_LITERAL", "CHAR_LITERAL", "INT", "STAR", "TOKEN_REF", "\"protected\"", "\"public\"", "\"private\"", "BANG", "ARG_ACTION", "\"returns\"", "\"throws\"", "COMMA", "LPAREN", "OR", "RPAREN", "\"exception\"", "\"catch\"", "OPEN_ELEMENT_OPTION", "CLOSE_ELEMENT_OPTION", "PLUS_ASSIGN", "SEMPRED", "IMPLIES", "NOT", "TREE_BEGIN", "QUESTION", "PLUS", "RULE_REF", "WILDCARD", "ROOT", "RULEROOT", "REWRITE", "DOLLAR", "DOUBLE_QUOTE_STRING_LITERAL", "DOUBLE_ANGLE_STRING_LITERAL", "WS", "COMMENT", "SL_COMMENT", "ML_COMMENT", "ESC", "DIGIT", "XDIGIT", "NESTED_ARG_ACTION", "NESTED_ACTION", "ACTION_CHAR_LITERAL", "ACTION_STRING_LITERAL", "ACTION_ESC", "WS_LOOP", "INTERNAL_RULE_REF", "WS_OPT", "SRC" }; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -