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

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

?? c.lex

?? 一個小型的c語言編譯器,做的非常好,不過不是我做的.
?? LEX
字號:
/*
* C.lex
* Lexical Analyzer for C Compiler
*
* Copyright (c)  2001 by  Lin Ying and Ren Qi
* All Rights Reserved.
*
*/

%{

// include file
#include	"Header.h"
#include	"Debug.h"
#include	"Error.h"
#include    "convert.h"
#include	"Common.h"
#include	"SymTab.h"
#include	"stack.h"
#include	"Lex.h"

// for strcpy etc. string operation to string
#include	<string.h>

// used to contain cSTRING
extern	char	g_String[MAX_STR_LEN];

#define	LEX_INFO(x)		StrToDebug(x, "\nIn yylex() : ", "  --- LEX");

int	yylook();
int	yywrap();
int	yyback(int *p,int m);

%}

letter      [_a-zA-Z]
alnum       [_a-zA-Z0-9]
dec         [0-9]
hex         [0-9a-fA-F]
oct         [0-7]

%%	

"/*"	while ( 1 )
		{
			int i;

			i = input();

			// or i == EOF, see input() source code for when file
			// meet EOF return what?
			
			if ( !i )
			{
				yyerror( "End of file in comment\n" );
				user_exit(1);
			}

			if ( i == '*' )
				if ( ( i = input() )== '/' )
					break;
				else
					unput( i );
		}

"//"	while ( 1 )
		{
			int	currlineno = yylineno;

			if  ( !input() || currlineno != yylineno )
				break;
		}

\"([^\"])*\"	{
				// keep the "..." used in code gen
				// cSTRING db "..."
				strncpy(g_String, yytext, MAX_STR_LEN );
				return	cSTRING;
				}

"<"([^>])*">"	{
				// keep the <...> used in code gen
				strncpy(g_String, yytext, MAX_STR_LEN );
				return	pINCLDNAME;
				}

[1-9]+{dec}*	{
				yylval.num = stoi(yytext,10);
				return cINT;
				}

0{oct}*         {
				yylval.num = stoi(yytext,8);
				return cINT;
				}

0(x|X){hex}+    {
				yylval.num = stoi(yytext,16);
				return cINT;
				}

([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([eE][-+]?[0-9]+)?	{
													strcpy(yylval.p_char,yytext);
													return cREAL;
													}

'([^']|'')'     {
				// keep '.'
				strcpy(yylval.p_char, yytext);
				return cCHAR;
				}

"("				return oLP;
")"				return oRP;
"{"				{
					LEX_INFO("new_compound_symtab()")
					new_compound_symtab();
					return oLC;
				}
"}"				return oRC;
"["				return oLB;
"]"				return oRB;

"+"				return oPLUS;
"-"				return oMINUS;
"*"				return oMUL;
"/"				return oDIV;
"%"				return oMOD;
"="				return oASSIGN;

"|"				return oBITOR;
"&"				return oBITAND;
"~"				return oBITNOT;
"^"				return oBITXOR;
"<<"			return oLFTSHT;
">>"			return oRITSHT;

"||"			return oOR;
"&&"			return oAND;
"!"				return oNOT;


"=="            return oEQUAL;
"!="			return oUNEQU;
"<"             return oLT;
">"             return oGT;
"<="            return oLE;
">="            return oGE;

"+="			return oPLUSASSIGN;
"-="			return oMINUSASSIGN;
"*="			return oMULASSIGN;
"/="			return oDIVASSIGN;
"%="			return oMODASSIGN;
"|="			return oBITORASSIGN;
"&="			return oBITANDASSIGN;
"^="			return oBITXORASSIGN;
"<<="			return oLFTSHTASSIGN;
">>="			return oRITSHTASSIGN;

","				return oCOMMA;
";"             return oSEMI;
":"				return oCOLON;
"'"				return oQUOTE;
"..."			return oDOTDOTDOT;
"?"				return oQUESTION;

"++"			return	oADDADD;
"--"			return	oSUBSUB;

"#include"		return	pINCLUDE;

{letter}{alnum}*    {
					strcpy(yylval.p_char,yytext);
					return id_or_keyword(yytext);
					}

%%

static	int		sg_Keytable_size = 0;

KEYENTRY Keytable[] =
{
	{"00000000",0 },
	{"auto",	kAUTO},
	{"break",	kBREAK},
	{"case",	kCASE},
	{"char",	kCHAR},
	{"const",	kCONST},
	{"continue",kCONTINUE},
	{"default",	kDEFAULT},
	{"do",		kDO},
	{"double",	kDOUBLE},
	{"else",	kELSE},
	{"extern",	kEXTERN},
	{"float",	kFLOAT},
	{"for",		kFOR},
	{"goto",	kGOTO},
	{"if",		kIF},
	{"int",		kINT},
	{"long",	kLONG},
	{"register",kREGISTER},
	{"return",	kRETURN},
	{"short",	kSHORT},
	{"signed",	kSIGNED},
	{"sizeof",	kSIZEOF},
	{"static",	kSTATIC},
	{"switch",	kSWITCH},
	{"typedef",	kTYPEDEF},
	{"unsigned",kUNSIGNED},
	{"void",	kVOID},
	{"volatile",kVOLATILE},
	{"while",	kWHILE},
	{"zzzzzzzz",LAST_ENTRY}
};

void	set_Keytablesize()
{
	// set  Keytable_size, call in Init_yacc()
	sg_Keytable_size = 0;

	while ( LAST_ENTRY != Keytable[sg_Keytable_size].key )
		sg_Keytable_size++;
}

int		id_or_keyword(char *lex)
{
	// alose return  typedef name, so find in current Symbol and father Symbol for typedef name
	int left = 0, right = sg_Keytable_size;
	int mid = (left+right)/2;
	
	if ( !sg_Keytable_size )
	{
		yyerror( "lex error : Keytable not init\n " );
		user_exit(1);
	}

    while (mid!=left && mid!=right)
	{
		int i;

        if ( ! (i = strcmp(Keytable[mid].name, lex) ) )
		// found
            return Keytable[mid].key;
		else if ( i < 0 )
			left = mid;
		else if ( i > 0 )
			right = mid;
		mid = (left+right)/2;
	}

	// search for typedef name
	// return not NULL means found
	if ( find_symtab_typedef( lex ) )
		return	idTYPEDEF;

	return yNAME;
}

yywrap()
{
	return	pop_include();
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩成人伦理电影在线观看| 粗大黑人巨茎大战欧美成人| 一道本成人在线| 综合网在线视频| 色噜噜狠狠色综合欧洲selulu| 亚洲视频狠狠干| 欧美少妇性性性| 久久国产尿小便嘘嘘| 国产人妖乱国产精品人妖| 99精品视频在线观看| 亚洲一区二区在线免费观看视频| 欧美日韩综合一区| 久久国产精品第一页| 国产视频一区二区在线| 色综合色狠狠天天综合色| 亚洲高清在线精品| 精品国产凹凸成av人网站| 韩国精品主播一区二区在线观看| 国产午夜三级一区二区三| 91视频国产观看| 欧美亚洲综合在线| 亚洲国产毛片aaaaa无费看| 欧美国产日韩一二三区| 久久av老司机精品网站导航| 成人深夜在线观看| 国产麻豆午夜三级精品| 91国偷自产一区二区三区成为亚洲经典| 91在线观看视频| 亚洲午夜久久久久中文字幕久| 亚洲精品成人精品456| 亚洲蜜臀av乱码久久精品| 亚洲国产精品一区二区www在线| 成人h动漫精品一区二区| 久久久久久久久一| 国产一区二区视频在线播放| 精品国产sm最大网站| 亚洲激情校园春色| 午夜视频在线观看一区二区| 亚洲日本丝袜连裤袜办公室| 日韩电影免费在线看| 国产91在线看| 国产精品国产三级国产普通话三级| 久久精品国内一区二区三区| 欧美裸体一区二区三区| 蜜桃久久久久久| 久久中文娱乐网| av电影在线观看不卡| 国产精品久久久久影院亚瑟 | 国产精品久久网站| 成人app软件下载大全免费| 亚洲欧美偷拍卡通变态| 在线观看不卡视频| 久久国产精品区| 国产精品毛片高清在线完整版| 91色综合久久久久婷婷| 日韩二区三区在线观看| 在线免费观看不卡av| 亚洲一区二区三区不卡国产欧美| 欧美放荡的少妇| aaa欧美日韩| 久久成人免费网站| 亚洲中国最大av网站| 国产精品美女久久久久久久久久久| 精品一区二区在线视频| 日本久久一区二区| 国产精品三级在线观看| 欧美午夜视频网站| 国产精品888| 精品一区中文字幕| 亚洲欧美日韩国产综合| 日韩欧美不卡在线观看视频| 欧洲色大大久久| av激情成人网| 成人av在线观| 国产成人在线色| 中文字幕在线不卡| 欧美剧情片在线观看| 色噜噜狠狠成人中文综合| 久久久久青草大香线综合精品| 午夜精品免费在线| 国产精品乱码人人做人人爱| 久久久久久电影| 国产日韩成人精品| 精品国产区一区| 日韩欧美国产系列| 在线观看一区二区精品视频| 欧美aaa在线| 亚洲成人激情av| 色婷婷av一区二区三区之一色屋| 成人va在线观看| 三级在线观看一区二区| 蜜桃视频免费观看一区| 久88久久88久久久| 亚洲一区二区欧美| 亚洲欧洲性图库| 欧美综合一区二区三区| 日韩精品中文字幕在线不卡尤物| 亚洲精品高清视频在线观看| 欧美日韩在线精品一区二区三区激情 | 日本午夜精品视频在线观看 | 久久久久久久久蜜桃| 欧美xxxxx牲另类人与| 欧美激情中文字幕| 亚洲天堂2016| 日日摸夜夜添夜夜添国产精品| 奇米色一区二区| 国产999精品久久| 欧美亚洲禁片免费| 成人av在线网站| 欧美日韩三级在线| 91精品国产一区二区三区| 欧美蜜桃一区二区三区| 日韩欧美一级二级三级| 国产亚洲精久久久久久| 久久久国际精品| 国产精品日韩成人| 亚洲精品乱码久久久久久日本蜜臀| 亚洲男同性视频| 国产精品一区免费在线观看| 奇米精品一区二区三区四区 | 亚洲激情自拍偷拍| 精品久久久久久综合日本欧美| 欧美sm美女调教| 一区二区高清视频在线观看| 亚洲成a人v欧美综合天堂| 久久99深爱久久99精品| 欧美日韩成人综合在线一区二区| 亚洲人成人一区二区在线观看| 日韩一区在线看| 中文字幕日韩欧美一区二区三区| 日韩西西人体444www| 一区在线观看免费| 91麻豆国产自产在线观看| 日韩视频一区在线观看| 欧美性大战xxxxx久久久| 91精品视频网| 久久99在线观看| 日本欧美韩国一区三区| 日本在线不卡视频| 欧美在线啊v一区| 欧美精品一区二区三区视频| 一卡二卡欧美日韩| 成人激情午夜影院| 欧美变态tickle挠乳网站| 亚洲宅男天堂在线观看无病毒| 国产成人在线免费观看| 日韩一区二区精品| 午夜免费久久看| 在线视频国内自拍亚洲视频| 六月丁香婷婷久久| 欧美三级欧美一级| 捆绑紧缚一区二区三区视频| 91精品国产福利在线观看| 亚洲精品va在线观看| 色系网站成人免费| 国产精品美女久久久久久| 国产精品一二三| 国产精品网曝门| 91亚洲国产成人精品一区二三| 中文字幕精品一区| 国产91清纯白嫩初高中在线观看| 国产精品国产三级国产aⅴ原创| 国产激情一区二区三区四区| 国产精品福利av| 91福利视频网站| 激情综合网av| 国产精品污污网站在线观看| 91丨九色丨黑人外教| 亚洲精品国产高清久久伦理二区| 日本高清免费不卡视频| 亚洲成va人在线观看| 日韩免费电影一区| av日韩在线网站| 美腿丝袜亚洲综合| 国产精品久久免费看| 精品视频一区二区不卡| 国产永久精品大片wwwapp| 国产精品免费视频一区| 日韩欧美国产综合在线一区二区三区| 老司机精品视频一区二区三区| 国产精品一区二区免费不卡 | 成人黄页毛片网站| 国产精品99久久久久久有的能看 | 老司机精品视频在线| 欧美日韩国产美女| 视频一区国产视频| 日韩欧美亚洲国产另类| 国产乱码精品1区2区3区| 国产精品三级视频| 91国偷自产一区二区三区观看 | 午夜精品免费在线观看| 日韩一二三区视频| 国产成人无遮挡在线视频| 91麻豆精品国产91久久久| 色综合一个色综合| 成人黄色免费短视频| 成人久久视频在线观看| 国产成人亚洲精品狼色在线| 国产在线精品视频| 麻豆国产精品一区二区三区|