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

📄 actiontranslatorlexer.java

📁 ANTLR(ANother Tool for Language Recognition)它是这样的一种工具
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                                  }    }        finally {            ruleNestingLevel--;        }    }    // $ANTLR end DYNAMIC_NEGATIVE_INDEXED_SCOPE_ATTR    // $ANTLR start DYNAMIC_ABSOLUTE_INDEXED_SCOPE_ATTR    public void mDYNAMIC_ABSOLUTE_INDEXED_SCOPE_ATTR() throws RecognitionException {        try {            ruleNestingLevel++;            int _type = DYNAMIC_ABSOLUTE_INDEXED_SCOPE_ATTR;            int _start = getCharIndex();            int _line = getLine();            int _charPosition = getCharPositionInLine();            int _channel = Token.DEFAULT_CHANNEL;            // ActionTranslator.g:639:4: ( '$' x= ID '[' expr= SCOPE_INDEX_EXPR ']' '::' y= ID )            // ActionTranslator.g:639:4: '$' x= ID '[' expr= SCOPE_INDEX_EXPR ']' '::' y= ID            {            match('$'); if (failed) return ;            int xStart = getCharIndex();            mID(); if (failed) return ;            Token x = new CommonToken(input, Token.INVALID_TOKEN_TYPE, Token.DEFAULT_CHANNEL, xStart, getCharIndex()-1);            match('['); if (failed) return ;            int exprStart = getCharIndex();            mSCOPE_INDEX_EXPR(); if (failed) return ;            Token expr = new CommonToken(input, Token.INVALID_TOKEN_TYPE, Token.DEFAULT_CHANNEL, exprStart, getCharIndex()-1);            match(']'); if (failed) return ;            match("::"); if (failed) return ;            int yStart = getCharIndex();            mID(); if (failed) return ;            Token y = new CommonToken(input, Token.INVALID_TOKEN_TYPE, Token.DEFAULT_CHANNEL, yStart, getCharIndex()-1);            if ( backtracking==1 ) {              		StringTemplate st = template("scopeAttributeRef");              		st.setAttribute("scope", x.getText());              		st.setAttribute("attr",  resolveDynamicScope(x.getText()).getAttribute(y.getText()));              		st.setAttribute("index", expr.getText());              		            }            }            if ( backtracking==1 ) {                      if ( token==null && ruleNestingLevel==1 ) {                          emit(_type,_line,_charPosition,_channel,_start,getCharIndex()-1);                      }                                  }    }        finally {            ruleNestingLevel--;        }    }    // $ANTLR end DYNAMIC_ABSOLUTE_INDEXED_SCOPE_ATTR    // $ANTLR start SCOPE_INDEX_EXPR    public void mSCOPE_INDEX_EXPR() throws RecognitionException {        try {            ruleNestingLevel++;            // ActionTranslator.g:651:4: ( (~ ']' )+ )            // ActionTranslator.g:651:4: (~ ']' )+            {            // ActionTranslator.g:651:4: (~ ']' )+            int cnt6=0;            loop6:            do {                int alt6=2;                int LA6_0 = input.LA(1);                if ( ((LA6_0>='\u0000' && LA6_0<='\\')||(LA6_0>='^' && LA6_0<='\uFFFE')) ) {                    alt6=1;                }                switch (alt6) {            	case 1 :            	    // ActionTranslator.g:651:5: ~ ']'            	    {            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='\\')||(input.LA(1)>='^' && input.LA(1)<='\uFFFE') ) {            	        input.consume();            	    failed=false;            	    }            	    else {            	        if (backtracking>0) {failed=true; return ;}            	        MismatchedSetException mse =            	            new MismatchedSetException(null,input);            	        recover(mse);    throw mse;            	    }            	    }            	    break;            	default :            	    if ( cnt6 >= 1 ) break loop6;            	    if (backtracking>0) {failed=true; return ;}                        EarlyExitException eee =                            new EarlyExitException(6, input);                        throw eee;                }                cnt6++;            } while (true);            }        }        finally {            ruleNestingLevel--;        }    }    // $ANTLR end SCOPE_INDEX_EXPR    // $ANTLR start ISOLATED_DYNAMIC_SCOPE    public void mISOLATED_DYNAMIC_SCOPE() throws RecognitionException {        try {            ruleNestingLevel++;            int _type = ISOLATED_DYNAMIC_SCOPE;            int _start = getCharIndex();            int _line = getLine();            int _charPosition = getCharPositionInLine();            int _channel = Token.DEFAULT_CHANNEL;            // ActionTranslator.g:660:4: ( '$' ID {...}?)            // ActionTranslator.g:660:4: '$' ID {...}?            {            match('$'); if (failed) return ;            int ID6Start = getCharIndex();            mID(); if (failed) return ;            Token ID6 = new CommonToken(input, Token.INVALID_TOKEN_TYPE, Token.DEFAULT_CHANNEL, ID6Start, getCharIndex()-1);            if ( !(resolveDynamicScope(ID6.getText())!=null) ) {                if (backtracking>0) {failed=true; return ;}                throw new FailedPredicateException(input, "ISOLATED_DYNAMIC_SCOPE", "resolveDynamicScope($ID.text)!=null");            }            if ( backtracking==1 ) {              		StringTemplate st = template("isolatedDynamicScopeRef");              		st.setAttribute("scope", ID6.getText());              		            }            }            if ( backtracking==1 ) {                      if ( token==null && ruleNestingLevel==1 ) {                          emit(_type,_line,_charPosition,_channel,_start,getCharIndex()-1);                      }                                  }    }        finally {            ruleNestingLevel--;        }    }    // $ANTLR end ISOLATED_DYNAMIC_SCOPE    // $ANTLR start TEMPLATE_INSTANCE    public void mTEMPLATE_INSTANCE() throws RecognitionException {        try {            ruleNestingLevel++;            int _type = TEMPLATE_INSTANCE;            int _start = getCharIndex();            int _line = getLine();            int _charPosition = getCharPositionInLine();            int _channel = Token.DEFAULT_CHANNEL;            // ActionTranslator.g:673:4: ( '%' ID '(' ( ( WS )? ARG ( ',' ( WS )? ARG )* ( WS )? )? ')' )            // ActionTranslator.g:673:4: '%' ID '(' ( ( WS )? ARG ( ',' ( WS )? ARG )* ( WS )? )? ')'            {            match('%'); if (failed) return ;            mID(); if (failed) return ;            match('('); if (failed) return ;            // ActionTranslator.g:673:15: ( ( WS )? ARG ( ',' ( WS )? ARG )* ( WS )? )?            int alt11=2;            int LA11_0 = input.LA(1);            if ( ((LA11_0>='\t' && LA11_0<='\n')||LA11_0==' '||(LA11_0>='A' && LA11_0<='Z')||LA11_0=='_'||(LA11_0>='a' && LA11_0<='z')) ) {                alt11=1;            }            switch (alt11) {                case 1 :                    // ActionTranslator.g:673:17: ( WS )? ARG ( ',' ( WS )? ARG )* ( WS )?                    {                    // ActionTranslator.g:673:17: ( WS )?                    int alt7=2;                    int LA7_0 = input.LA(1);                    if ( ((LA7_0>='\t' && LA7_0<='\n')||LA7_0==' ') ) {                        alt7=1;                    }                    switch (alt7) {                        case 1 :                            // ActionTranslator.g:673:17: WS                            {                            mWS(); if (failed) return ;                            }                            break;                    }                    mARG(); if (failed) return ;                    // ActionTranslator.g:673:25: ( ',' ( WS )? ARG )*                    loop9:                    do {                        int alt9=2;                        int LA9_0 = input.LA(1);                        if ( (LA9_0==',') ) {                            alt9=1;                        }                        switch (alt9) {                    	case 1 :                    	    // ActionTranslator.g:673:26: ',' ( WS )? ARG                    	    {                    	    match(','); if (failed) return ;                    	    // ActionTranslator.g:673:30: ( WS )?                    	    int alt8=2;                    	    int LA8_0 = input.LA(1);                    	    if ( ((LA8_0>='\t' && LA8_0<='\n')||LA8_0==' ') ) {                    	        alt8=1;                    	    }                    	    switch (alt8) {                    	        case 1 :                    	            // ActionTranslator.g:673:30: WS                    	            {                    	            mWS(); if (failed) return ;                    	            }                    	            break;                    	    }                    	    mARG(); if (failed) return ;                    	    }                    	    break;                    	default :                    	    break loop9;                        }                    } while (true);                    // ActionTranslator.g:673:40: ( WS )?                    int alt10=2;                    int LA10_0 = input.LA(1);                    if ( ((LA10_0>='\t' && LA10_0<='\n')||LA10_0==' ') ) {                        alt10=1;                    }                    switch (alt10) {                        case 1 :                            // ActionTranslator.g:673:40: WS                            {                            mWS(); if (failed) return ;                            }                            break;                    }                    }                    break;            }            match(')'); if (failed) return ;            if ( backtracking==1 ) {              		String action = getText().substring(1,getText().length());              		String ruleName = "<outside-of-rule>";              		if ( enclosingRule!=null ) {              			ruleName = enclosingRule.name;              		}              		StringTemplate st =              			generator.translateTemplateConstructor(ruleName,              												   outerAltNum,              												   actionToken,              												   action);              		if ( st!=null ) {              			chunks.add(st);              		}              		            }            }            if ( backtracking==1 ) {                      if ( token==null && ruleNestingLevel==1 ) {                          emit(_type,_line,_charPosition,_channel,_start,getCharIndex()-1);                      }                                  }    }        finally {            ruleNestingLevel--;        }    }    // $ANTLR end TEMPLATE_INSTANCE    // $ANTLR start INDIRECT_TEMPLATE_INSTANCE    public void mINDIRECT_TEMPLATE_INSTANCE() throws RecognitionException {        try {            ruleNestingLevel++;            int _type = INDIRECT_TEMPLATE_INSTANCE;            int _start = getCharIndex();            int _line = getLine();            int _charPosition = getCharPositionInLine();            int _channel = Token.DEFAULT_CHANNEL;            // ActionTranslator.g:694:4: ( '%' '(' ACTION ')' '(' ( ( WS )? ARG ( ',' ( WS )? ARG )* ( WS )? )? ')' )            // ActionTranslator.g:694:4: '%' '(' ACTION ')' '(' ( ( WS )? ARG ( ',' ( WS )? ARG )* ( WS )? )? ')'            {            match('%'); if (failed) return ;            match('('); if (failed) return ;            mACTION(); if (failed) return ;            match(')'); if (failed) return ;            match('('); if (failed) return ; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -