将代码传递给生成的 lex 程序

在下面的环境中,lex 命令将 C 代码不变地传递给词法分析器:

  • 将定义部分中或者在规则部分起始处第一条规则之前以空格或者制表符起始的行复制到词法分析器。 如果该项在定义部分,那么它被复制到 lex.yy.c 文件的外部声明区域。 如果该项在规则部分的起始处,那么它被复制到 lex.yy.c 文件中 yylex 子例程的局部变量声明区域。
  • 位于仅包含的定界符行之间的行%{(百分号,左花括号) 和%}定义部分或规则部分开头的 (百分号,右花括号) 将以与以空格或制表符开头的行相同的方式复制到词法分析器中。
  • 在第二行之后出现的任何行%%(百分号,百分号) 定界符将复制到词法分析器而不受格式限制。