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

📄 scan.l

📁 在linux下实行的简单的c语言编译器
💻 L
字号:
/*File: Scan.l *Lex description of C token */%{#include "Global.h"#include "Parse.h"#include "Utils.h"char tokenString[MAXTOKENLEN+1];	/*the token string received*/TokenType getToken();				/*get the token type and print token									 *in the list file 									 */%}letter		[_a-zA-Z]letnum		[_a-zA-Z0-9]identifier	{letter}{letnum}*digit		[0-9]number		{digit}+fnumber		{number}"."{number}constchar	'.'newline		\nws		[ \t]+%%"int"		{	return INT;	}"float"		{	return FLOAT;	}"char"		{	return CHAR;	}"void"		{	return VOID;	}"if"		{	return IF;	}"else"		{	return ELSE;	}"while"		{	return WHILE;	}"continue"	{	return CONTINUE;}"break"		{	return BREAK;	}"return"	{	return RETURN;	}"+"		{	return PLUS;	}"-"		{	return SUB;	}"*"		{	return MUT;	}"/"		{	return DIV;	}"<"		{	return LT;	}"<="		{	return LE;	}">"		{	return GT;	}">="		{	return GE;	}"=="		{	return EQ;	}"!="		{	return NEQ;	}"&&"		{	return AND;	}"||"		{	return OR;	}"!"		{	return NOT;	}"="		{	return ASSIGN;	}","		{	return COMMA;	}";"		{	return SEMI;	}"("		{	return LP;	}")"		{	return RP;	}"["		{	return LSP;	}"]"		{	return RSP;	}"{"		{	return LFP;	}"}"		{	return RFP;	}{identifier}	{	return ID;	}{number}	{	return NUM;	}{fnumber}	{	return FNUM;	}{constchar}	{	return SCHAR;	}{newline}	{	g_lineno++;	}{ws}		{	/*do nothing*/	}"/*"		{			char c;			int done = FALSE;			do			{				while ((c=input())!='*')					if (c==EOF) return ERROR;				while ((c=input())=='*');				if (c=='/') done = TRUE;				}while (!done);			}.		{	return ERROR;	}%%TokenType getToken(){	static int firstTime = TRUE;	TokenType curToken;	/*if it is first time to enter, initiate yyin and yyout*/	if (firstTime)	{		firstTime = FALSE;		g_lineno++;		yyin = g_src_file;		yyout = g_lst_file;	}	curToken = yylex();	strncpy(tokenString, yytext, MAXTOKENLEN);	fprintf(g_lst_file, "line %0.3d: ", g_lineno);	printToken(curToken, tokenString);		return curToken;}

⌨️ 快捷键说明

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