expression3.l

来自「语法分析 语法分析」· L 代码 · 共 43 行

L
43
字号
%{ {*    下面的例子改编自lex和yacc第二版    识别简单算术表达式的lex    用法:Lex Expression3 ExpressionL3 *}unit ExpressionL3;interface uses  SysUtils, LexLib, Yacclib;const  NUMBER=258;  NAME=257;//注意这里的token必须是hard-coding的常数,yacc生成的和lex生成的是不匹配的function yylex: Integer;implementationuses ExpressionY3;%}%%([0-9]+|([0-9]*\.[0-9]+)([eE][-+]?[0-9]+)?) begin                                              yylval.yyreal:=StrToFloat(yytext); 					      return(NUMBER);                                            end;[ \t]	;		 {* 忽略空格 *}[a-z]	begin          yylval.yyinteger := ord(yytext[1]) - ord('a');	  return(NAME); 	end;"$"	return(0); {* 输入结束 *}\n	|.	returnc(yytext[1]);%%end.

⌨️ 快捷键说明

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