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 + -
显示快捷键?