exprlex.l

来自「编译原理基础」· L 代码 · 共 29 行

L
29
字号

  (* Lexical analyzer for the sample Yacc program in Expr.y. *)

L				[A-Za-z]
D				[0-9]

%%

  var result : integer;

{D}+(\.{D}+)?([Ee][+-]?{D}+)?	begin
				  val(yytext, yylval.yyReal, result);
				  if result=0 then
				    return(NUM)
				  else
				    return(ILLEGAL)
				end;

{L}				begin
				  yylval.yyInteger := ord(upCase(yytext[1]))-
				                      ord('A')+1;
				  return(ID)
				end;

" "             		;

.				|
\n				returnc(yytext[1]);

⌨️ 快捷键说明

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