newplan

阿基米德在洗澡時發現浮力原理,高興得來不及穿㆖褲子,跑到街㆖大喊:Eureka(我找到了)。
posts - 39, comments - 26, trackbacks - 0, articles - 4
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

B3.L

Posted on 2008-09-17 00:01 山泉弯延 阅读(172) 评论(0)  编辑 收藏 引用

/*
编译原理实验3
B3.L
*/
%{
#include"y.tab.h"
#include<string.h>
extern FILE * yyin;
extern FILE * yyout;
extern int yylineno;
%}

delim      [  \t]
ws           {delim}+
letter       [A-Za-z]
digit        [0-9]
id           {letter}({letter}|{digit})*
number       {digit}+
addop        [+-]
mulop        [*/]
%%
\r\n         {yylineno++;}
{ws}         {/*d*/}
while        {return WHILE;}
do           {return DO;}
if           {return IF;}
else         {return ELSE;}
for          {return FOR;}
int          {return INT;}
char         {return CHAR;}
void         {return VOID;}
return       {return RETURN;}
\'[a-zA-Z0-9]\'    {strcpy(yylval._ident,yytext);return CONST_CHAR;}
\"[a-zA-Z]+\" {strcpy(yylval._ident,yytext);return STRING;}
{id}         {strcpy(yylval._ident,yytext);return ID;}
{number}     {strcpy(yylval._ident,yytext);return NUM;}
"["          {return '[';}
"]"          {return ']';}
"<"          {return LT;}
"="          {return '=';}
">"          {return GT;}
"<="         {return LE;}
">="         {return GE;}
"!="         {return NE;}
"=="         {return EQ;}
{addop}      {yylval._op=yytext[0]; return ADDOP;}
{mulop}      {yylval._op=yytext[0]; return MULOP;}
";"          {return ';';}
"{"          {return '{';}
"}"          {return '}';}
"("          {return '(';}
")"          {return ')';}
","          {return ',';}
%%
int yywrap(){
   return 1;
}


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理