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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cm_scan.l

?? 小型編譯系統(tǒng)的源代碼
?? L
字號(hào):
%{
#include "globals.h"
#include "util.h"
#include "scan.h"
#include "symtab.h"

char tokenString[MAXTOKENLEN+1];

/* set NO_PARSE to TRUE to get a scanner-only compiler */
#define NO_PARSE FALSE
/* set NO_ANALYZE to TRUE to get a parser-only compiler */
#define NO_ANALYZE FALSE

/* set NO_CODE to TRUE to get a compiler that does not
 * generate code
 */
#define NO_CODE FALSE

#include "util.h"
#if NO_PARSE
#include "scan.h"
#else
#include "parse.h"
#if !NO_ANALYZE
#include "analyze.h"
#if !NO_CODE
#include "cgen.h"
#endif
#endif
#endif

/* allocate global variables */
int lineno = 1;
FILE *source;
FILE *listing;
FILE *code;

/* allocate and set tracing flags */
int TraceScan = FALSE;
int TraceParse = FALSE;
int TraceAnalyze = FALSE;
int TraceCode = FALSE;

int Error = FALSE;

%}

id          [a-zA-Z_]+[a-zA-Z0-9_]*
num         (-?[1-9]+[0-9]*)|(-?[1-9])|0
floatnum		(-?[1-9]+[0-9]*\.[0-9]+)|(-?0\.[0-9]+)
constchar		'.'
newline     \n
whitespace  [ \t]+

%%

"int"       {return INT;}
"char"      {return CHAR;}
"float"     {return FLOAT;}
"void"      {return VOID;}
"if"        {return IF;}
"else"      {return ELSE;}
"while"     {return WHILE;}
"for"       {return FOR;}
"return"    {return RETURN;}
"=="        {return EQ;}
"<="        {return LE;}
">="        {return GE;}
"!="        {return NE;}
"="         {return ASSIGN;}
"<"         {return LT;}
">"         {return GT;}
"+"         {return PLUS;}
"-"         {return MINUS;}
"*"         {return TIMES;}
"/"         {return OVER;}
";"         {return SEMICOLON;}
","         {return COMMA;}
"("         {return LPAREN;}
")"         {return RPAREN;}
"["         {return LBRACKET;}
"]"         {return RBRACKET;}
"{"         {return LBRACE;}
"}"         {return RBRACE;}
"||"        {return OR;}
"&&"        {return AND;}
"!"         {return NOT;}
"/*"        {
                char c;
                LABEL:
                do
                {
                    c = input();
                    if( c == '\n')
                    	lineno++;
                }while(c != '*');
                
                do
                {
                    c = input();
                    if(c == '/')
                        break;
                    if( c == '\n')
                    	lineno++;
                    if(c != '*')
                        goto LABEL;
                }while(c == '*');
            }
{id}        {strncpy(tokenString,yytext,MAXTOKENLEN);	return ID;}
{num}       {strncpy(tokenString,yytext,MAXTOKENLEN);	return NUM;}
{floatnum}	{strncpy(tokenString,yytext,MAXTOKENLEN);	return FLOATNUM;}
{constchar}	{strncpy(tokenString,yytext,MAXTOKENLEN);	return CONSTCHAR;}
{newline}   {lineno++;}
{whitespace} {/* skip whitespace */}
.           {return ERROR;}

%%

int main( int argc, char * argv[] )
{ 
  TreeNode * syntaxTree;
  char pgm[120]; /* source code file name */
  
	if (argc != 2 && argc != 3)
  { 
		fprintf(stderr, "usage: CMinusC <filename>\n");
    exit(1);
  }

  if(argc == 3)
	{
		if(strpbrk(argv[2], "S") != 0)
			TraceScan = TRUE;
		if(strpbrk(argv[2], "P") != 0)
			TraceParse = TRUE;
		if(strpbrk(argv[2], "A") != 0)
			TraceAnalyze = TRUE;
		if(strpbrk(argv[2], "C") != 0)
			TraceCode = TRUE;
	}
  strcpy(pgm, argv[1]) ;
  if (strchr(pgm, '.') == NULL)
    strcat(pgm, ".cm");

  yyin = fopen(pgm,"r");
  if (yyin == NULL)
  {
		fprintf(stderr,"File %s not found\n",pgm);
    exit(1);
  }
	source = yyin;

  listing = stdout; /* send listing to screen */
  fprintf(listing,"\nC-Minus COMPILATION: %s\n", pgm);
#if NO_PARSE
  while (getToken() != ENDFILE);
#else
  syntaxTree = parse();
  if (TraceParse) 
	{
    fprintf(listing,"\nSyntax tree:\n");
    printTree(syntaxTree);
  }
#if !NO_ANALYZE
  if (! Error)
  { 
		if (TraceAnalyze) 
			fprintf(listing,"\nBuilding Symbol Table...\n");
    buildSymtab(syntaxTree);
    st_reset();
		if (TraceAnalyze) 
		{
			fprintf(listing,"\nSyntax tree:\n");
		  printTree(syntaxTree);
	  }
	}

	if(! Error)
	{
		if (TraceAnalyze) 
			fprintf(listing,"\nChecking Types...\n");
	   typeCheck(syntaxTree);
	  st_reset();
		if (TraceAnalyze) 
			fprintf(listing,"\nType Checking Finished\n");
	}
#if !NO_CODE
  if (! Error)
  { 
		char * codefile;
    int fnlen = strcspn(pgm,".");
    codefile = (char *) calloc(fnlen+4, sizeof(char));
    
		strncpy(codefile,pgm,fnlen);
    strcat(codefile,".p");
    code = fopen(codefile,"w");
    if (code == NULL)
    {
			printf("Unable to open %s\n",codefile);
      exit(1);
    }
    codeGen(syntaxTree,codefile);
    st_reset();
    fclose(code);
  }
#endif
#endif
#endif

	fclose(source);
  return 0;
}

int getToken()
{ 
	static int firstTime = TRUE;
  int currentToken;
  if (firstTime)
  { 
		firstTime = FALSE;
    lineno++;
    yyin = source;
    yyout = listing;
  }

  currentToken = yylex();
  if(currentToken == 0)
  	currentToken = ENDFILE;
  strncpy(tokenString,yytext,MAXTOKENLEN);
  if (TraceScan)
	{
    fprintf(listing,"\t%d: ",lineno);
    printToken(currentToken,tokenString);
  }
  return currentToken;
}

int yywrap()
{
    return 1;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产91丝袜在线观看| 97成人超碰视| 亚洲精品视频在线| 欧美一区2区视频在线观看| 国产v综合v亚洲欧| 蜜桃精品视频在线| 亚洲精品视频一区| 久久九九全国免费| 欧美喷水一区二区| 99视频国产精品| 久久99国产精品麻豆| 亚洲v日本v欧美v久久精品| 国产精品天天摸av网| 日韩精品一区国产麻豆| 91福利在线播放| 成+人+亚洲+综合天堂| 激情五月激情综合网| 日韩精彩视频在线观看| 一区二区成人在线| 国产精品传媒在线| 久久美女艺术照精彩视频福利播放 | 欧美一区二区视频在线观看2022| 处破女av一区二区| 激情综合色综合久久综合| 日韩精品欧美精品| 午夜精品在线视频一区| 一区二区三区**美女毛片| 中文字幕日本不卡| 中文乱码免费一区二区 | 亚洲精品视频在线看| 国产精品无人区| 国产亚洲精品bt天堂精选| 日韩亚洲欧美在线观看| 欧美猛男gaygay网站| 欧美在线视频你懂得| 色综合久久久久久久久久久| 99久久精品国产毛片| 不卡高清视频专区| av资源网一区| 成人激情小说网站| 不卡av免费在线观看| 成人avav影音| 91在线观看美女| 91原创在线视频| 91麻豆精品在线观看| 99久久精品国产麻豆演员表| 99久久久久免费精品国产 | 一本久久综合亚洲鲁鲁五月天| 成人av资源在线观看| 福利一区福利二区| 99v久久综合狠狠综合久久| av亚洲精华国产精华| 91免费版在线| 欧美亚洲国产怡红院影院| 在线免费观看日本欧美| 欧美日韩成人综合天天影院| 欧美一区二区三区爱爱| 久久一留热品黄| 国产欧美日韩另类一区| 亚洲人快播电影网| 性久久久久久久久久久久| 开心九九激情九九欧美日韩精美视频电影| 麻豆免费看一区二区三区| 国产麻豆精品久久一二三| 成人av电影免费在线播放| 91国产成人在线| 日韩精品中文字幕一区| 欧美经典一区二区| 亚洲乱码精品一二三四区日韩在线| 亚洲激情五月婷婷| 免费观看在线综合| 成人高清免费在线播放| 欧美色中文字幕| 久久婷婷色综合| 日韩毛片一二三区| 天堂精品中文字幕在线| 国产成人aaa| 在线欧美小视频| 精品粉嫩超白一线天av| 1024精品合集| 青娱乐精品视频| 99精品欧美一区二区蜜桃免费| 欧美三级三级三级| 国产日韩欧美不卡| 亚洲国产精品嫩草影院| 国产在线精品视频| 欧美综合在线视频| 久久久久久久久99精品| 亚洲精品成人悠悠色影视| 黄色小说综合网站| 欧美视频在线播放| 国产日韩成人精品| 免播放器亚洲一区| 色久优优欧美色久优优| 久久久精品免费观看| 亚洲一区二区视频| 国产91精品入口| 欧美一区二区女人| 一区二区三区在线视频观看58| 国产一区999| 欧美精品18+| 亚洲人亚洲人成电影网站色| 精品在线观看视频| 欧美日韩国产首页| 亚洲人一二三区| 丁香天五香天堂综合| 在线播放欧美女士性生活| 国产精品理论在线观看| 激情六月婷婷综合| 欧美人妖巨大在线| 中文字幕制服丝袜成人av| 韩国欧美国产一区| 国产精品视频一二三区 | 国产精品久久久久久久第一福利 | 91在线精品一区二区三区| 欧美大片顶级少妇| 午夜国产精品一区| 色老综合老女人久久久| 国产女主播在线一区二区| 狂野欧美性猛交blacked| 在线不卡a资源高清| 亚洲一区电影777| 99国产欧美另类久久久精品 | 亚洲成人久久影院| 色94色欧美sute亚洲线路一ni| 亚洲国产精品av| 高潮精品一区videoshd| 久久精品一区二区三区不卡牛牛 | 亚洲与欧洲av电影| 91麻豆精品视频| 亚洲视频免费在线| 99久久99久久综合| 成人欧美一区二区三区小说| 成人高清免费观看| 国产精品久久免费看| 成人精品小蝌蚪| 中文字幕一区二区三区av| 国产成人免费高清| 国产精品色婷婷久久58| 成人av综合一区| 中文字幕一区不卡| 91免费精品国自产拍在线不卡| 中文字幕人成不卡一区| 91在线一区二区| 亚洲欧美另类小说| 欧美亚洲图片小说| 免费在线看成人av| 欧美va天堂va视频va在线| 精久久久久久久久久久| 国产亚洲成aⅴ人片在线观看| 粗大黑人巨茎大战欧美成人| 国产精品黄色在线观看| 色婷婷综合五月| 午夜精品久久久久久久99樱桃| 欧美一区二区三区系列电影| 蜜臀精品一区二区三区在线观看 | 国产在线视频一区二区| 久久久99精品久久| 99久久久国产精品免费蜜臀| 亚洲美腿欧美偷拍| 在线电影欧美成精品| 麻豆精品久久精品色综合| 久久精品一级爱片| 色一情一乱一乱一91av| 三级影片在线观看欧美日韩一区二区| 制服丝袜日韩国产| 国产成人在线观看免费网站| 亚洲欧美日本韩国| 日韩视频在线永久播放| 国产成人免费在线观看| 一区二区免费在线播放| 日韩精品中文字幕在线一区| 成人午夜精品一区二区三区| 亚洲国产裸拍裸体视频在线观看乱了| 欧美精品视频www在线观看| 国产呦精品一区二区三区网站| 亚洲天堂av老司机| 亚洲午夜久久久久久久久电影网 | 91免费国产在线观看| 日本不卡一区二区| 中国av一区二区三区| 欧美日韩中文一区| 国产精品66部| 亚洲在线观看免费| 日本一区二区三区电影| 欧美人妖巨大在线| 成人精品国产一区二区4080| 天堂资源在线中文精品| 国产亚洲欧美日韩俺去了| 欧美日韩在线播放| 国产成人免费网站| 日本不卡一二三区黄网| 亚洲视频免费观看| 久久久天堂av| 666欧美在线视频| 色哟哟一区二区在线观看| 国产精品一二一区| 天堂久久一区二区三区| 《视频一区视频二区| 久久综合久久综合久久|