B.10 LEX源程序格式总结
为使用方便起见,将LEX源程序的格式,LEX的正规式的格式等总录于此。
LEX源程序的一般格式为:
{definitions}
%%
{rules}%%
{user subroutines}
辅助定义部分包括以下项目:
1) 辅助定义,格式为:
name translation
2) 直接照抄的代码,格式为:
空格代码
3) 直接照抄的代码,格式为:
%{
代码
%}
4) 开始条件,格式为:
%S name1 name2 …
还有几个其他项目,不常使用故略去。
识别规则部分的格式是
expression action
其中expression必须与action用空格分开,动作如果多于一行,要用花括号括起来。
LEX的正规式用的运算符有以下一些:
x 字符x
"x" 字符x,若为运算符,则不起运算符作用
\x 同上
[xy] 字符x或y
[x-z] 字符x,或y,或z
[∧x] 除x以外的所有字符
· 除回车换行外的所有字符
∧x 出现在一行开始处的x
<y>x 当LEX处于开始条件y时,x
x$ 出现在一行末尾处的x
x。 可有可无的xx0个或多个x
x+ 1个或多个x
x|y x或y
(x) 字符x
x/y 字符x但仅当其后紧随y
{xx} 辅助定义xx的展开
x{m,n} m到n个x
|