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

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

?? util.cpp

?? 完成一個簡化的C語言編譯程序
?? CPP
字號:
#include "globals.h"
#include "util.h"
#include "parse.h"

void printToken(TokenType token,const char* tokenString)
{
			switch(token)
			{
			case IF:
			case ELSE:
			case WHILE:
			case INT:
			case FLOAT:
			case CHAR:
			case BREAK:
			case RETURN:
			   fprintf(listing,"resverved word:%s\n",tokenString);
			break;

			case ASSIGN: fprintf(listing,"=\n");  break;
			case LT:     fprintf(listing,"<\n");  break;
			case EQ:     fprintf(listing,"==\n"); break;
			case GT:     fprintf(listing,">\n");  break;
			case LE:     fprintf(listing,"<=\n"); break;
			case GE:     fprintf(listing,">=\n"); break;
            case NE:     fprintf(listing,"!=\n"); break;
			case LPAREN: fprintf(listing,"(\n");  break;
			case RPAREN: fprintf(listing,")\n");  break;
			case LBRACKET:fprintf(listing,"[\n"); break;
			case RBRACKET:fprintf(listing,"]\n"); break;
			case LBC:    fprintf(listing,"{\n");  break;
			case RBC:    fprintf(listing,"}\n");  break;
			case SEMI:   fprintf(listing,";\n");  break;
			case COMMA:  fprintf(listing,",\n");  break;
			case PLUS:   fprintf(listing,"+\n");  break;
			case MINUS:  fprintf(listing,"-\n");  break;
			case TIMES:  fprintf(listing,"*\n");  break;
			case OVER:   fprintf(listing,"/\n");  break;
			case AND:    fprintf(listing,"&&\n"); break;
			case OR:     fprintf(listing,"||\n"); break;
			case NOT:    fprintf(listing,"!\n");  break;
			case ENDFILE:fprintf(listing,"EOF\n"); break;
			case CONSTCHAR:
			         fprintf(listing,"constchar,val=%s\n",tokenString);
							 break;
			case NUM:
			         fprintf(listing,"NUM, val= %s\n",tokenString);
							 break;
			case FLOATNUM:
			         fprintf(listing,"FLOATNUM,val=%s\n",tokenString);
							 break;
			case ID:
			         fprintf(listing,"ID, name=%s\n",tokenString);
							 break;
			case ERROR:
			         fprintf(listing,"ERROR, %s\n",tokenString);
							 break;
			default:
			         fprintf(listing,"Unknown token: %d\n",token);
							
			
			
			}
}

TreeNode * newStmtNode(StmtKind kind)
{
		TreeNode * t=new TreeNode;
		int i;
		if(t==NULL)
		{
			 fprintf(listing,"Out of memory error at line %d\n",lineno);
		}
		else
		{
		     for(i=0;i<MAXCHILDREN;i++)  t->child[i]=NULL;
			 t->sibling=NULL;
			 t->nodekind=StmtK;
			 t->kind.stmt=kind;
			 t->lineno=lineno;
			 t->tablep=NULL;
		}
		return t;
}

TreeNode * newExpNode(ExpKind kind)
{
        TreeNode * t=new TreeNode;
	    int i;
	    if(t==NULL)
		{
			 fprintf(listing,"Out of memory error at line %d\n",lineno);
		}
		else
		{
		     for(i=0;i<MAXCHILDREN;i++) t->child[i]=NULL;
			 t->sibling=NULL;
			 t->nodekind=ExpK;
			 t->kind.exp=kind;
			 t->lineno=lineno;
			 t->tablep=NULL;
			 t->type=Void;


		}

		return t;

}

TreeNode * newDeclNode(DeclKind kind)
{
        TreeNode * t=new TreeNode;
	    int i;
	    if(t==NULL)
		{
			 fprintf(listing,"Out of memory error at line %d\n",lineno);
		}
		else
		{
		     for(i=0;i<MAXCHILDREN;i++) t->child[i]=NULL;
			 t->sibling=NULL;
			 t->nodekind=DeclK;
			 t->lineno=lineno;
			 t->tablep=NULL;
			 t->kind.decl=kind;
			 t->type=Void;
			

		}

		return t;

}

char* copyString(char *s )
{
     int n;
		 char* t;
		 if(s==NULL)  return NULL;
		 n=strlen(s)+1;
		 t=(char*)malloc(n);
		 if(t==NULL)
		    fprintf(listing,"Out of memory error at line %d\n",lineno);
		 else strcpy(t,s);
		 return t;
}

static indentno=0;
#define INDENT indentno+=2
#define UNINDENT indentno-=2

static void printSpaces(void)
{
 int i;
 for(i=0;i<indentno;i++)
	 fprintf(listing," ");
}

void printTree(TreeNode * tree)
{
	int i;
	INDENT;
	while(tree!=NULL)
	{
	       printSpaces();
		   if(tree->nodekind==StmtK)
		   {
		           switch(tree->kind.stmt)
				   {
				   case IfK:
					   fprintf(listing,"If \n");
					   break;
				   case WhileK:
					   fprintf(listing,"While\n");
					   break;
				   case ReturnK:
					   fprintf(listing,"Return\n");
					   break;
				   case CompoundK:
					   fprintf(listing,"Compound \n");
					   break;
				   case BreakK:
					   fprintf(listing,"Break \n");
					   break;
				   case ExpStmtK:
					   fprintf(listing,"ExpStmt \n");
					   break;
				   case AssignK:
					   fprintf(listing,"AssignStmt \n");
					   break;
				   }
		   }
		   else if(tree->nodekind==ExpK)
		   {
		            switch(tree->kind.exp)
					{
					case OpK:
						fprintf(listing,"Op:  ");
						printToken(tree->attr.op,"\0");
						break;
					case ConstK:
						switch(tree->type)
						{
						case Integer:
						    fprintf(listing,"const: %d \n",tree->attr.vali);
						    break;
						case Float:
							fprintf(listing,"const: %f \n",tree->attr.valf);
							break;
						case Char:
							fprintf(listing,"const: %c  \n",tree->attr.valc);
							break;
						}
					    break;
					case IdK:
						fprintf(listing,"Id: %s \n",tree->attr.name);
						break;
					case CallK:
						fprintf(listing,"Call:%s \n",tree->attr.name);
						break;
					case ArrayK:
						fprintf(listing,"Array:%s \n ",tree->attr.name);
						break;
					default:
						fprintf(listing,"Unknown ExpNode Kind \n");
						break;

					}
		   }
		   else if(tree->nodekind==DeclK)
		   {
		             switch(tree->kind.decl)
					 {
					 case SingleVarK:
						 fprintf(listing,"Declaration SingleVar:%s \n",tree->attr.name);
						 break;
					 case ArrayVarK:
						 fprintf(listing,"Declaration ArrayVar:%s[%d] \n",tree->attr.name,tree->array_size);
						 break;
					 case FuncVarK:
						 fprintf(listing," ReturnType %d Declaration FuncVar: %s \n",tree->type,tree->attr.name);
						 break;
					 }
		   }
		   else fprintf(listing,"Unknown node kind\n");
		   for(i=0;i<MAXCHILDREN;i++)
			    printTree(tree->child[i]);
		   tree=tree->sibling;
	}
	UNINDENT;

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人国产在线观看| 日韩中文字幕一区二区三区| 欧美一区二区免费| 欧美精品久久99| 欧美日韩1234| 日韩视频免费观看高清在线视频| 欧美亚洲国产一区在线观看网站 | 亚洲精品福利视频网站| 亚洲色图欧洲色图| 一区二区三区国产精华| 一级中文字幕一区二区| 日韩av成人高清| 精品一区二区三区在线播放| 国产伦精品一区二区三区在线观看| 黑人精品欧美一区二区蜜桃| 99久久精品情趣| 成人在线综合网| 不卡电影一区二区三区| 7777精品伊人久久久大香线蕉的 | 精品中文av资源站在线观看| 久久爱www久久做| 成人午夜又粗又硬又大| 欧美午夜一区二区| 久久综合九色综合97婷婷| 中文字幕成人网| 五月激情六月综合| 国产99久久久久久免费看农村| 成人av第一页| 欧美群妇大交群的观看方式| 26uuu精品一区二区| 一区二区在线免费观看| 老司机免费视频一区二区 | 99精品国产99久久久久久白柏 | 欧美日本在线视频| 精品99久久久久久| 亚洲美女视频一区| 国产最新精品精品你懂的| av激情亚洲男人天堂| 91麻豆精品国产91久久久久久久久| 久久综合九色综合欧美98| 亚洲国产成人91porn| 国产乱子轮精品视频| 欧美午夜精品免费| 国产精品你懂的在线| 韩国视频一区二区| 欧美日韩久久久一区| 国产精品美女一区二区| 九九九久久久精品| 欧美最猛黑人xxxxx猛交| 欧美国产精品一区| 免费观看久久久4p| 欧美视频你懂的| 中文字幕一区二区视频| 久久99精品久久久久| 91精品国产综合久久福利软件| 亚洲乱码日产精品bd| 国产一区 二区 三区一级| 在线不卡免费av| 一区二区三区日韩欧美精品| 成人av集中营| 国产色综合久久| 国产一区二区不卡在线| 欧美成人三级电影在线| 日韩av一区二区在线影视| 欧美日本一区二区三区| 亚洲va欧美va国产va天堂影院| 91在线观看视频| 亚洲人成网站影音先锋播放| 成人免费观看av| 国产精品传媒视频| www.在线欧美| 亚洲欧洲在线观看av| 99久久99久久精品国产片果冻| 国产日韩欧美电影| 成人激情校园春色| 国产精品久久久久久妇女6080 | 欧美日韩免费一区二区三区视频| 1024成人网色www| 91视视频在线观看入口直接观看www | 欧美三级三级三级| 亚洲午夜久久久久久久久电影网| 91福利在线看| 婷婷综合另类小说色区| 日韩一级免费观看| 国产一区二区在线影院| 国产午夜亚洲精品不卡| 成人久久视频在线观看| 亚洲女厕所小便bbb| 欧美色电影在线| 久久精品国产精品亚洲精品| 久久久精品欧美丰满| 成人黄色小视频| 亚洲一区二区三区爽爽爽爽爽| 精品国产乱码久久久久久老虎| 精品在线免费观看| 亚洲欧美在线视频观看| 欧美日韩中文字幕精品| 美女视频黄免费的久久| 国产欧美一区二区精品性| 一本色道a无线码一区v| 日韩不卡手机在线v区| 久久久亚洲高清| 一本大道久久精品懂色aⅴ| 日韩高清在线一区| 国产欧美综合色| 欧美性色欧美a在线播放| 久久成人久久鬼色| 亚洲精品国产第一综合99久久 | 国产一区二区精品久久91| 亚洲老司机在线| 日韩美女视频一区二区在线观看| 北条麻妃国产九九精品视频| 日韩经典一区二区| 亚洲欧美日韩中文播放| 久久综合狠狠综合久久综合88| 色中色一区二区| 国产不卡视频在线观看| 三级欧美在线一区| 亚洲美女少妇撒尿| 国产女主播在线一区二区| 欧美日韩不卡一区| 色又黄又爽网站www久久| 国产成人午夜精品5599| 偷拍与自拍一区| 亚洲欧美成aⅴ人在线观看| 久久久久久**毛片大全| 欧美一二三区在线| 欧美日韩一区高清| 91福利小视频| 成人精品免费网站| 国产毛片精品一区| 免费看欧美女人艹b| 26uuu欧美| xnxx国产精品| 欧美私模裸体表演在线观看| 精品一区二区三区不卡 | 午夜日韩在线电影| 最新国产の精品合集bt伙计| 久久久国产一区二区三区四区小说| 欧美无人高清视频在线观看| 成人深夜在线观看| 丰满少妇在线播放bd日韩电影| 美腿丝袜一区二区三区| 免费看日韩精品| 日韩成人免费看| 日韩在线一区二区| 五月婷婷激情综合| 天天综合网 天天综合色| 亚洲影视在线观看| 亚洲丝袜另类动漫二区| 亚洲品质自拍视频网站| 亚洲精品一二三| 亚洲精品国产a| 亚洲风情在线资源站| 色综合久久久久综合99| 欧美优质美女网站| 天堂一区二区在线| 日韩主播视频在线| 老汉av免费一区二区三区| 视频在线观看一区二区三区| 亚洲无人区一区| 天堂在线亚洲视频| 激情综合色播五月| 福利电影一区二区| 91美女在线看| 欧美日韩精品一区二区三区四区| 欧美精品一二三四| 久久久美女毛片| 亚洲精品成a人| 丝袜亚洲另类丝袜在线| 日日骚欧美日韩| 国产乱码一区二区三区| 成人高清视频在线| 欧美系列一区二区| 日韩视频一区二区在线观看| 国产精品欧美一区喷水| 一区二区三区蜜桃网| 狂野欧美性猛交blacked| 成人丝袜视频网| 欧美日韩1区2区| 亚洲精品中文字幕乱码三区| 7777精品伊人久久久大香线蕉的 | 一区二区视频在线| 亚洲123区在线观看| 美女视频黄频大全不卡视频在线播放| 韩国av一区二区三区四区| 国产夫妻精品视频| 欧美日韩国产美| 国产欧美视频一区二区三区| 一区二区在线观看av| 国产另类ts人妖一区二区| 欧美性猛交xxxx黑人交| 久久综合久久久久88| 亚洲午夜久久久久久久久电影院 | 色屁屁一区二区| 久久麻豆一区二区| 亚洲成人黄色小说| www.日韩av| 久久久精品免费免费| 日本最新不卡在线|