亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? exprparser.cs

?? 編譯原理語法分析和詞法分析綜合實驗: 源程序、可執(zhí)行程序、測試程序文件、程序運行說明文件、實驗報告。
?? CS
?? 第 1 頁 / 共 2 頁
字號:
// $ANTLR 3.0.1 G:\\expr.g 2008-05-09 16:59:12//import java.util.HashMap;using System;using Antlr.Runtime;using IList 		= System.Collections.IList;using ArrayList 	= System.Collections.ArrayList;using Stack 		= Antlr.Runtime.Collections.StackList;using Antlr.Runtime.Debug;using Antlr.Runtime.Tree;public class exprParser : DebugParser {    public static readonly string[] tokenNames = new string[] 	{        "<invalid>", 		"<EOR>", 		"<DOWN>", 		"<UP>", 		"NEWLINE", 		"ID", 		"INT", 		"WS", 		"'='", 		"'+'", 		"'-'", 		"'*'", 		"'('", 		"')'"    };    public const int WS = 7;    public const int NEWLINE = 4;    public const int INT = 6;    public const int ID = 5;    public const int EOF = -1;    public static readonly string[] ruleNames = new string[] {        "invalidRule", "prog", "stat", "expr", "multExpr", "atom"    };        public int ruleLevel = 0;    public exprParser(ITokenStream input) : base(input)    {        }    public exprParser(ITokenStream input, IDebugEventListener dbg)    	: base(input, dbg)    {    }        protected bool EvalPredicate(bool result, string predicate)     {        dbg.SemanticPredicate(result, predicate);        return result;    }        protected ITreeAdaptor adaptor = new DebugTreeAdaptor(dbg, new CommonTreeAdaptor());    public ITreeAdaptor TreeAdaptor    {    	get { return this.adaptor; }    	set { this.adaptor = new DebugTreeAdaptor(dbg, value); }    }    override public string[] TokenNames	{		get { return tokenNames; }	}    override public string GrammarFileName	{		get { return "G:\\expr.g"; }	}        /** Map variable name to Integer object holding value */    //HashMap memory = new HashMap();        public class prog_return : ParserRuleReturnScope     {        internal CommonTree tree;        override public object Tree        {        	get { return tree; }        }    };        // $ANTLR start prog    // G:\\expr.g:17:1: prog : ( stat )+ ;    public prog_return prog() // throws RecognitionException [1]    {           prog_return retval = new prog_return();        retval.start = input.LT(1);                CommonTree root_0 = null;            stat_return stat1 = null;                            try         {        	dbg.EnterRule("prog");        	if ( ruleLevel==0 ) {dbg.Commence();}        	ruleLevel++;        	dbg.Location(17, 1);            try     	{            // G:\\expr.g:17:5: ( ( stat )+ )            dbg.EnterAlt(1);                        // G:\\expr.g:17:9: ( stat )+            {            	root_0 = (CommonTree)adaptor.GetNilNode();                        	dbg.Location(17,9);            	// G:\\expr.g:17:9: ( stat )+            	int cnt1 = 0;            	try { dbg.EnterSubRule(1);            	            	do             	{            	    int alt1 = 2;            	    try { dbg.EnterDecision(1);            	            	    int LA1_0 = input.LA(1);            	                	    if ( ((LA1_0 >= NEWLINE && LA1_0 <= INT) || LA1_0 == 12) )            	    {            	        alt1 = 1;            	    }            	                	            	    } finally { dbg.ExitDecision(1); }            	            	    switch (alt1)             		{            			case 1 :            			    dbg.EnterAlt(1);            			            			    // G:\\expr.g:17:9: stat            			    {            			    	dbg.Location(17,9);            			    	PushFollow(FOLLOW_stat_in_prog54);            			    	stat1 = stat();            			    	followingStackPointer_--;            			    	            			    	adaptor.AddChild(root_0, stat1.Tree);            			                			    }            			    break;            	            			default:            			    if ( cnt1 >= 1 ) goto loop1;            		            EarlyExitException eee =            		                new EarlyExitException(1, input);            		            dbg.RecognitionException(eee);            	            		            throw eee;            	    }            	    cnt1++;            	} while (true);            	            	loop1:            		;	// Stops C# compiler whinging that label 'loop1' has no statements            	} finally { dbg.ExitSubRule(1); }                        }                retval.stop = input.LT(-1);                        	retval.tree = (CommonTree)adaptor.RulePostProcessing(root_0);            	adaptor.SetTokenBoundaries(retval.Tree, retval.start, retval.stop);            }        catch (RecognitionException re)     	{            ReportError(re);            Recover(input,re);        }        finally     	{        }        dbg.Location(17, 15);                }        finally        {            dbg.ExitRule("prog");            ruleLevel--;            if ( ruleLevel==0 ) {dbg.Terminate();}        }            return retval;    }    // $ANTLR end prog    public class stat_return : ParserRuleReturnScope     {        internal CommonTree tree;        override public object Tree        {        	get { return tree; }        }    };        // $ANTLR start stat    // G:\\expr.g:19:1: stat : ( expr NEWLINE | ID '=' expr NEWLINE | NEWLINE );    public stat_return stat() // throws RecognitionException [1]    {           stat_return retval = new stat_return();        retval.start = input.LT(1);                CommonTree root_0 = null;            IToken NEWLINE3 = null;        IToken ID4 = null;        IToken char_literal5 = null;        IToken NEWLINE7 = null;        IToken NEWLINE8 = null;        expr_return expr2 = null;        expr_return expr6 = null;                        CommonTree NEWLINE3_tree=null;        CommonTree ID4_tree=null;        CommonTree char_literal5_tree=null;        CommonTree NEWLINE7_tree=null;        CommonTree NEWLINE8_tree=null;            try         {        	dbg.EnterRule("stat");        	if ( ruleLevel==0 ) {dbg.Commence();}        	ruleLevel++;        	dbg.Location(19, 1);            try     	{            // G:\\expr.g:19:5: ( expr NEWLINE | ID '=' expr NEWLINE | NEWLINE )            int alt2 = 3;            try { dbg.EnterDecision(2);                        switch ( input.LA(1) )             {            case INT:            case 12:            	{                alt2 = 1;                }                break;            case ID:            	{                int LA2_2 = input.LA(2);                                if ( (LA2_2 == 8) )                {                    alt2 = 2;                }                else if ( (LA2_2 == NEWLINE || (LA2_2 >= 9 && LA2_2 <= 11)) )                {                    alt2 = 1;                }                else                 {                    NoViableAltException nvae_d2s2 =                        new NoViableAltException("19:1: stat : ( expr NEWLINE | ID '=' expr NEWLINE | NEWLINE );", 2, 2, input);                                    dbg.RecognitionException(nvae_d2s2);                    throw nvae_d2s2;                }                }                break;            case NEWLINE:            	{                alt2 = 3;                }                break;            	default:            	    NoViableAltException nvae_d2s0 =            	        new NoViableAltException("19:1: stat : ( expr NEWLINE | ID '=' expr NEWLINE | NEWLINE );", 2, 0, input);                        	    dbg.RecognitionException(nvae_d2s0);            	    throw nvae_d2s0;            }                        } finally { dbg.ExitDecision(2); }                        switch (alt2)             {                case 1 :                    dbg.EnterAlt(1);                                    // G:\\expr.g:19:9: expr NEWLINE                    {                    	root_0 = (CommonTree)adaptor.GetNilNode();                                        	dbg.Location(19,9);                    	PushFollow(FOLLOW_expr_in_stat81);                    	expr2 = expr();                    	followingStackPointer_--;                    	                    	adaptor.AddChild(root_0, expr2.Tree);                    	dbg.Location(19,14);                    	NEWLINE3 = (IToken)input.LT(1);                    	Match(input,NEWLINE,FOLLOW_NEWLINE_in_stat83);                     	NEWLINE3_tree = (CommonTree)adaptor.Create(NEWLINE3);                    	adaptor.AddChild(root_0, NEWLINE3_tree);                    	dbg.Location(19,22);                    	(expr2.value);                                        }                    break;                case 2 :                    dbg.EnterAlt(2);                                    // G:\\expr.g:20:9: ID '=' expr NEWLINE                    {                    	root_0 = (CommonTree)adaptor.GetNilNode();                                        	dbg.Location(20,9);                    	ID4 = (IToken)input.LT(1);                    	Match(input,ID,FOLLOW_ID_in_stat95);                     	ID4_tree = (CommonTree)adaptor.Create(ID4);                    	adaptor.AddChild(root_0, ID4_tree);                    	dbg.Location(20,12);                    	char_literal5 = (IToken)input.LT(1);                    	Match(input,8,FOLLOW_8_in_stat97);                     	char_literal5_tree = (CommonTree)adaptor.Create(char_literal5);                    	adaptor.AddChild(root_0, char_literal5_tree);                    	dbg.Location(20,16);                    	PushFollow(FOLLOW_expr_in_stat99);                    	expr6 = expr();                    	followingStackPointer_--;                    	                    	adaptor.AddChild(root_0, expr6.Tree);                    	dbg.Location(20,21);                    	NEWLINE7 = (IToken)input.LT(1);                    	Match(input,NEWLINE,FOLLOW_NEWLINE_in_stat101);                     	NEWLINE7_tree = (CommonTree)adaptor.Create(NEWLINE7);                    	adaptor.AddChild(root_0, NEWLINE7_tree);                    	dbg.Location(21,9);                    	memory.put(ID4.Text, new Integer(expr6.value));                                        }                    break;                case 3 :                    dbg.EnterAlt(3);                                    // G:\\expr.g:22:9: NEWLINE                    {                    	root_0 = (CommonTree)adaptor.GetNilNode();                                        	dbg.Location(22,9);                    	NEWLINE8 = (IToken)input.LT(1);                    	Match(input,NEWLINE,FOLLOW_NEWLINE_in_stat121);                     	NEWLINE8_tree = (CommonTree)adaptor.Create(NEWLINE8);                    	adaptor.AddChild(root_0, NEWLINE8_tree);                                        }                    break;                        }            retval.stop = input.LT(-1);                        	retval.tree = (CommonTree)adaptor.RulePostProcessing(root_0);            	adaptor.SetTokenBoundaries(retval.Tree, retval.start, retval.stop);            }        catch (RecognitionException re)     	{            ReportError(re);            Recover(input,re);        }        finally     	{        }        dbg.Location(23, 5);                }        finally        {            dbg.ExitRule("stat");            ruleLevel--;            if ( ruleLevel==0 ) {dbg.Terminate();}        }            return retval;    }    // $ANTLR end stat    public class expr_return : ParserRuleReturnScope     {        public int value;        internal CommonTree tree;        override public object Tree        {        	get { return tree; }        }    };        // $ANTLR start expr    // G:\\expr.g:25:1: expr returns [int value] : e= multExpr ( '+' e= multExpr | '-' e= multExpr )* ;    public expr_return expr() // throws RecognitionException [1]    {           expr_return retval = new expr_return();        retval.start = input.LT(1);                CommonTree root_0 = null;            IToken char_literal9 = null;        IToken char_literal10 = null;        multExpr_return e = null;                        CommonTree char_literal9_tree=null;        CommonTree char_literal10_tree=null;            try         {        	dbg.EnterRule("expr");        	if ( ruleLevel==0 ) {dbg.Commence();}        	ruleLevel++;        	dbg.Location(25, 1);            try     	{            // G:\\expr.g:26:5: (e= multExpr ( '+' e= multExpr | '-' e= multExpr )* )            dbg.EnterAlt(1);                        // G:\\expr.g:26:9: e= multExpr ( '+' e= multExpr | '-' e= multExpr )*            {            	root_0 = (CommonTree)adaptor.GetNilNode();                        	dbg.Location(26,10);            	PushFollow(FOLLOW_multExpr_in_expr146);            	e = multExpr();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美人体做爰大胆视频| 99久久99久久综合| 久久色成人在线| 国产成人啪免费观看软件| 久久嫩草精品久久久精品一| 粉嫩av一区二区三区| 亚洲同性gay激情无套| 欧美午夜精品久久久久久超碰| 亚洲国产欧美日韩另类综合| 欧美丰满少妇xxxbbb| 国内精品国产成人| 亚洲欧美另类在线| 亚洲影视资源网| 日韩三级高清在线| 高清国产一区二区三区| 亚洲精品成人精品456| 欧美精品丝袜中出| 国产真实乱偷精品视频免| 国产精品情趣视频| 欧美人与z0zoxxxx视频| 国产成人a级片| 亚洲国产精品人人做人人爽| 欧美精品一二三| 成人午夜av影视| 日韩高清不卡在线| 国产精品二三区| 欧美一级艳片视频免费观看| 成人午夜私人影院| 手机精品视频在线观看| 国产片一区二区| 欧美一区二区国产| 91网站最新网址| 久久国产欧美日韩精品| 亚洲女性喷水在线观看一区| 精品久久久久一区二区国产| 色婷婷激情综合| 国产一区久久久| 亚洲午夜精品网| 欧美国产成人精品| 日韩一区二区三区四区五区六区| 97se亚洲国产综合自在线| 美女国产一区二区三区| 一个色综合av| 自拍偷拍亚洲综合| 久久精品视频免费| 91精品国产麻豆| 色天天综合久久久久综合片| 国内精品嫩模私拍在线| 日韩专区在线视频| 亚洲一区在线观看网站| 国产精品久久久久婷婷| 日韩欧美国产综合在线一区二区三区| 91国产精品成人| 成人永久免费视频| 国产一区二区在线视频| 日韩成人一区二区| 午夜一区二区三区在线观看| **欧美大码日韩| 欧美高清在线精品一区| 精品精品国产高清一毛片一天堂| 欧美日本不卡视频| 欧美日韩一区三区四区| 日本精品裸体写真集在线观看| 成人看片黄a免费看在线| 国产在线国偷精品免费看| 美腿丝袜亚洲色图| 日本中文一区二区三区| 天堂影院一区二区| 日韩福利电影在线| 免费国产亚洲视频| 免费观看在线综合色| 裸体在线国模精品偷拍| 美女爽到高潮91| 狠狠色丁香婷综合久久| 精品一区二区三区免费视频| 欧美日韩精品一区二区天天拍小说| 一本在线高清不卡dvd| 色屁屁一区二区| 欧美婷婷六月丁香综合色| 欧美日韩一级视频| 欧美三级日本三级少妇99| 欧美日韩一区在线| 宅男噜噜噜66一区二区66| 91麻豆精品国产91久久久久| 欧美一区二区三区婷婷月色| 日韩亚洲欧美一区二区三区| 精品国产在天天线2019| 久久免费美女视频| 国产精品网站在线播放| 亚洲人成7777| 亚洲电影一区二区三区| 毛片av一区二区三区| 国产成人午夜精品影院观看视频| 成人自拍视频在线观看| 色婷婷综合久久久| 3d成人动漫网站| 国产日韩欧美a| 一区二区在线观看免费| 亚洲aaa精品| 国内精品久久久久影院薰衣草| 岛国一区二区三区| 色婷婷av一区二区三区之一色屋| 69p69国产精品| 久久久99精品久久| 亚洲欧美日韩系列| 免费观看成人鲁鲁鲁鲁鲁视频| 精品一区精品二区高清| 99精品久久只有精品| 欧美一区二区三区影视| 欧美国产一区二区在线观看| 亚洲在线观看免费视频| 国产原创一区二区| 色94色欧美sute亚洲线路一ni| 8x福利精品第一导航| 欧美国产日产图区| 秋霞av亚洲一区二区三| 丁香天五香天堂综合| 欧美性videosxxxxx| 久久久久久久久久久久久久久99| 亚洲视频中文字幕| 国产在线播精品第三| 欧美无砖砖区免费| 国产精品五月天| 麻豆久久久久久久| 91国偷自产一区二区三区成为亚洲经典 | 波多野结衣精品在线| 欧美年轻男男videosbes| 国产婷婷一区二区| 五月天一区二区| 99精品欧美一区二区三区小说| 日韩精品一区在线观看| 一区二区欧美在线观看| 国产夫妻精品视频| 91精品免费在线观看| 一区二区三区日韩在线观看| 久久久久青草大香线综合精品| 亚洲成人午夜电影| 色婷婷亚洲精品| 国产精品国产a| 国产精品亚洲а∨天堂免在线| 欧美精品欧美精品系列| 亚洲色欲色欲www| 国产91色综合久久免费分享| 欧美不卡一区二区| 日本欧美一区二区三区| 精品1区2区3区| 一区二区三区日韩| av福利精品导航| 精品久久久久久久久久久久久久久久久| 亚洲综合在线第一页| 91美女福利视频| |精品福利一区二区三区| 成人精品视频一区| 国产女同互慰高潮91漫画| 久久精品国产免费| 欧美一区二区三区电影| 亚瑟在线精品视频| 欧美三级视频在线播放| 亚洲国产中文字幕| 色噜噜狠狠成人中文综合| 亚洲视频1区2区| 色婷婷久久综合| 亚洲高清中文字幕| 欧美亚洲高清一区二区三区不卡| 一区二区三区高清不卡| 在线观看精品一区| 婷婷夜色潮精品综合在线| 在线精品国精品国产尤物884a| 中文字幕一区二区三区不卡 | caoporen国产精品视频| 国产精品久久久久毛片软件| 成人性生交大合| 亚洲国产精品国自产拍av| 成人妖精视频yjsp地址| 国产精品女同互慰在线看| av亚洲产国偷v产偷v自拍| 综合久久综合久久| 欧洲av一区二区嗯嗯嗯啊| 天天做天天摸天天爽国产一区| 正在播放亚洲一区| 国产精品一区二区久久精品爱涩 | 国产亚洲精品超碰| 成人av电影在线播放| 亚洲精品国产无天堂网2021| 欧美羞羞免费网站| 日本在线观看不卡视频| 国产日韩精品视频一区| 一本色道**综合亚洲精品蜜桃冫| 亚洲va韩国va欧美va| 日韩欧美国产综合一区 | 在线观看亚洲成人| 日韩在线一区二区| 精品国产99国产精品| 成人黄页毛片网站| 亚洲综合男人的天堂| 91精品国产乱码久久蜜臀| 国产麻豆日韩欧美久久| 亚洲四区在线观看| 日韩三级免费观看| 91视视频在线观看入口直接观看www |