📄 expression4.l
字号:
%{ {* 下面的例子改编自lex和yacc第二版 识别简单算术表达式的lex 用法:Lex Expression4 ExpressionL4 *}unit ExpressionL4;interface uses SysUtils, LexLib, Yacclib;const NUMBER=258; NAME=257;//注意这里的token必须是hard-coding的常数,yacc生成的和lex生成的是不匹配的function yylex: Integer;type TOneParamFunc = function (argc: extended): Extended; TSymtab=class(TObject) Name:string; Value:double; FuncPtr:TOneParamFunc;//函数指针 end;var sp:TSymtab;implementationuses ExpressionY4;%}%%([0-9]+|([0-9]*\.[0-9]+)([eE][-+]?[0-9]+)?) begin yylval.yyreal := StrToFloat(yytext); return(NUMBER); end;[ \t] ; {/* 忽略空格 */}[A-Za-z][A-Za-z0-9]* begin //返回一个符号对象 sp := symlook(yytext); yylval.yyinteger := integer(sp); return(NAME); end;"$" return(0);\n |. returnc(yytext[1]);%%end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -