⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 treetonfaconverter.java

📁 antlr最新版本V3源代码
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
			}			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 + -