📄 treetonfaconverter.java
字号:
} case PLUS_ASSIGN: { AST __t67 = _t; GrammarAST tmp46_AST_in = (GrammarAST)_t; match(_t,PLUS_ASSIGN); _t = _t.getFirstChild(); GrammarAST tmp47_AST_in = (GrammarAST)_t; match(_t,ID); _t = _t.getNextSibling(); g=element(_t); _t = _retTree; _t = __t67; _t = _t.getNextSibling(); break; } case RANGE: { AST __t68 = _t; GrammarAST tmp48_AST_in = (GrammarAST)_t; match(_t,RANGE); _t = _t.getFirstChild(); a = _t==ASTNULL ? null : (GrammarAST)_t; atom(_t); _t = _retTree; b = _t==ASTNULL ? null : (GrammarAST)_t; atom(_t); _t = _retTree; _t = __t68; _t = _t.getNextSibling(); g = factory.build_Range(grammar.getTokenType(a.getText()), grammar.getTokenType(b.getText())); break; } case CHAR_RANGE: { AST __t69 = _t; GrammarAST tmp49_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 = __t69; _t = _t.getNextSibling(); if ( grammar.type==Grammar.LEXER ) { g = factory.build_CharRange(c1.getText(), c2.getText()); } break; } case STRING_LITERAL: case CHAR_LITERAL: case TOKEN_REF: case RULE_REF: case NOT: case WILDCARD: { g=atom_or_notatom(_t); _t = _retTree; break; } case BLOCK: case OPTIONAL: case CLOSURE: case POSITIVE_CLOSURE: { g=ebnf(_t); _t = _retTree; break; } case TREE_BEGIN: { g=tree(_t); _t = _retTree; break; } case SYNPRED: { AST __t70 = _t; GrammarAST tmp50_AST_in = (GrammarAST)_t; match(_t,SYNPRED); _t = _t.getFirstChild(); block(_t); _t = _retTree; _t = __t70; _t = _t.getNextSibling(); break; } case ACTION: { GrammarAST tmp51_AST_in = (GrammarAST)_t; match(_t,ACTION); _t = _t.getNextSibling(); break; } case SEMPRED: { pred = (GrammarAST)_t; match(_t,SEMPRED); _t = _t.getNextSibling(); g = factory.build_SemanticPredicate(pred); break; } case SYN_SEMPRED: { spred = (GrammarAST)_t; match(_t,SYN_SEMPRED); _t = _t.getNextSibling(); g = factory.build_SemanticPredicate(spred); break; } case BACKTRACK_SEMPRED: { bpred = (GrammarAST)_t; match(_t,BACKTRACK_SEMPRED); _t = _t.getNextSibling(); g = factory.build_SemanticPredicate(bpred); break; } case GATED_SEMPRED: { gpred = (GrammarAST)_t; match(_t,GATED_SEMPRED); _t = _t.getNextSibling(); g = factory.build_SemanticPredicate(gpred); break; } case EPSILON: { GrammarAST tmp52_AST_in = (GrammarAST)_t; match(_t,EPSILON); _t = _t.getNextSibling(); g = factory.build_Epsilon(); break; } default: { throw new NoViableAltException(_t); } } } catch (RecognitionException ex) { reportError(ex); if (_t!=null) {_t = _t.getNextSibling();} } _retTree = _t; return g; } public final void exceptionHandler(AST _t) throws RecognitionException { GrammarAST exceptionHandler_AST_in = (_t == ASTNULL) ? null : (GrammarAST)_t; try { // for error handling AST __t54 = _t; GrammarAST tmp53_AST_in = (GrammarAST)_t; match(_t,LITERAL_catch); _t = _t.getFirstChild(); GrammarAST tmp54_AST_in = (GrammarAST)_t; match(_t,ARG_ACTION); _t = _t.getNextSibling(); GrammarAST tmp55_AST_in = (GrammarAST)_t; match(_t,ACTION); _t = _t.getNextSibling(); _t = __t54; _t = _t.getNextSibling(); } catch (RecognitionException ex) { reportError(ex); if (_t!=null) {_t = _t.getNextSibling();} } _retTree = _t; } public final void finallyClause(AST _t) throws RecognitionException { GrammarAST finallyClause_AST_in = (_t == ASTNULL) ? null : (GrammarAST)_t; try { // for error handling AST __t56 = _t; GrammarAST tmp56_AST_in = (GrammarAST)_t; match(_t,LITERAL_finally); _t = _t.getFirstChild(); GrammarAST tmp57_AST_in = (GrammarAST)_t; match(_t,ACTION); _t = _t.getNextSibling(); _t = __t56; _t = _t.getNextSibling(); } catch (RecognitionException ex) { reportError(ex); if (_t!=null) {_t = _t.getNextSibling();} } _retTree = _t; } public final StateCluster atom(AST _t) throws RecognitionException { StateCluster g=null; GrammarAST atom_AST_in = (_t == ASTNULL) ? null : (GrammarAST)_t; GrammarAST r = null; GrammarAST rarg = null; GrammarAST as1 = null; GrammarAST t = null; GrammarAST targ = null; GrammarAST as2 = null; GrammarAST c = null; GrammarAST as3 = null; GrammarAST s = null; GrammarAST as4 = null; GrammarAST w = null; GrammarAST as5 = null; try { // for error handling if (_t==null) _t=ASTNULL; switch ( _t.getType()) { case RULE_REF: { AST __t85 = _t; r = _t==ASTNULL ? null :(GrammarAST)_t; match(_t,RULE_REF); _t = _t.getFirstChild(); { if (_t==null) _t=ASTNULL; switch ( _t.getType()) { case ARG_ACTION: { rarg = (GrammarAST)_t; match(_t,ARG_ACTION); _t = _t.getNextSibling(); break; } case 3: case BANG: case ROOT: { break; } default: { throw new NoViableAltException(_t); } } } { if (_t==null) _t=ASTNULL; switch ( _t.getType()) { case BANG: case ROOT: { as1 = _t==ASTNULL ? null : (GrammarAST)_t; ast_suffix(_t); _t = _retTree; break; } case 3: { break; } default: { throw new NoViableAltException(_t); } } } _t = __t85; _t = _t.getNextSibling(); NFAState start = grammar.getRuleStartState(r.getText()); if ( start!=null ) { int ruleIndex = grammar.getRuleIndex(r.getText()); g = factory.build_RuleRef(ruleIndex, start); r.followingNFAState = g.right; if ( g.left.transition(0) instanceof RuleClosureTransition && grammar.type!=Grammar.LEXER ) { addFollowTransition(r.getText(), g.right); } // else rule ref got inlined to a set } break; } case TOKEN_REF: { AST __t88 = _t; t = _t==ASTNULL ? null :(GrammarAST)_t; match(_t,TOKEN_REF); _t = _t.getFirstChild(); { if (_t==null) _t=ASTNULL; switch ( _t.getType()) { case ARG_ACTION: { targ = (GrammarAST)_t; match(_t,ARG_ACTION); _t = _t.getNextSibling(); break; } case 3: case BANG: case ROOT: { break; } default: { throw new NoViableAltException(_t); } } } { if (_t==null) _t=ASTNULL; switch ( _t.getType()) { case BANG: case ROOT: { as2 = _t==ASTNULL ? null : (GrammarAST)_t; ast_suffix(_t); _t = _retTree; break; } case 3: { break; } default: { throw new NoViableAltException(_t); } } } _t = __t88; _t = _t.getNextSibling(); if ( grammar.type==Grammar.LEXER ) { NFAState start = grammar.getRuleStartState(t.getText()); if ( start!=null ) { int ruleIndex = grammar.getRuleIndex(t.getText()); g = factory.build_RuleRef(ruleIndex, start); // don't add FOLLOW transitions in the lexer; // only exact context should be used. } } else { int tokenType = grammar.getTokenType(t.getText()); g = factory.build_Atom(tokenType); t.followingNFAState = g.right; } break; } case CHAR_LITERAL: { AST __t91 = _t; c = _t==ASTNULL ? null :(GrammarAST)_t; match(_t,CHAR_LITERAL); _t = _t.getFirstChild(); { if (_t==null) _t=ASTNULL; switch ( _t.getType()) { case BANG: case ROOT: { as3 = _t==ASTNULL ? null : (GrammarAST)_t; ast_suffix(_t); _t = _retTree; break; } case 3: { break; } default: { throw new NoViableAltException(_t); } } } _t = __t91; _t = _t.getNextSibling(); if ( grammar.type==Grammar.LEXER ) { g = factory.build_CharLiteralAtom(c.getText()); } else { int tokenType = grammar.getTokenType(c.getText()); g = factory.build_Atom(tokenType); c.followingNFAState = g.right; } break; } case STRING_LITERAL: { AST __t93 = _t; s = _t==ASTNULL ? null :(GrammarAST)_t; match(_t,STRING_LITERAL); _t = _t.getFirstChild(); { if (_t==null) _t=ASTNULL; switch ( _t.getType()) { case BANG: case ROOT: { as4 = _t==ASTNULL ? null : (GrammarAST)_t; ast_suffix(_t); _t = _retTree; break; } case 3: { break; } default: { throw new NoViableAltException(_t); } } } _t = __t93; _t = _t.getNextSibling(); if ( grammar.type==Grammar.LEXER ) { g = factory.build_StringLiteralAtom(s.getText()); } else { int tokenType = grammar.getTokenType(s.getText()); g = factory.build_Atom(tokenType); s.followingNFAState = g.right; } break; } case WILDCARD: { AST __t95 = _t; w = _t==ASTNULL ? null :(GrammarAST)_t; match(_t,WILDCARD); _t = _t.getFirstChild(); { if (_t==null) _t=ASTNULL; switch ( _t.getType()) { case BANG: case ROOT: { as5 = _t==ASTNULL ? null : (GrammarAST)_t; ast_suffix(_t); _t = _retTree; break; } case 3: { break; } default: { throw new NoViableAltException(_t); } } } _t = __t95; _t = _t.getNextSibling(); g = factory.build_Wildcard(); break; } default: { throw new NoViableAltException(_t); } } } catch (RecognitionException ex) { reportError(ex); if (_t!=null) {_t = _t.getNextSibling();} } _retTree = _t; return g; } public final StateCluster atom_or_notatom(AST _t) throws RecognitionException { StateCluster g=null; GrammarAST atom_or_notatom_AST_in = (_t == ASTNULL) ? null : (GrammarAST)_t; GrammarAST n = null; GrammarAST c = null; GrammarAST ast1 = null; GrammarAST t = null; GrammarAST ast3 = null; try { // for error handling if (_t==null) _t=ASTNULL; switch ( _t.getType()) { case STRING_LITERAL: case CHAR_LITERAL: case TOKEN_REF: case RULE_REF: case WILDCARD: { g=atom(_t); _t = _retTree; break; } case NOT: { AST __t80 = _t; n = _t==ASTNULL ? null :(GrammarAST)_t; match(_t,NOT); _t = _t.getFirstChild(); { if (_t==null) _t=ASTNULL; switch ( _t.getType()) { case CHAR_LITERAL: { c = (GrammarAST)_t; match(_t,CHAR_LITERAL); _t = _t.getNextSibling(); { if (_t==null) _t=ASTNULL; switch ( _t.getType()) { case BANG: case ROOT: { ast1 = _t==ASTNULL ? null : (GrammarAST)_t; ast_suffix(_t); _t = _retTree; break; } case 3: { break; } default: { throw new NoViableAltException(_t); } } } int ttype=0; if ( grammar.type==Grammar.LEXER ) { ttype = Grammar.getCharValueFromGrammarCharLiteral(c.getText()); } else { ttype = grammar.getTokenType(c.getText()); } IntSet notAtom = grammar.complement(ttype); if ( notAtom.isNil() ) { ErrorManager.grammarError(ErrorManager.MSG_EMPTY_COMPLEMENT, grammar, c.token, c.getText()); } g=factory.build_Set(notAtom); break; } case TOKEN_REF: { t = (GrammarAST)_t; match(_t,TOKEN_REF); _t = _t.getNextSibling(); { if (_t==null) _t=ASTNULL; switch ( _t.getType()) { case BANG:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -