Lex词法分析器

  • Lex是一个生成词法分析器的程序。它与YACC解析器生成器一起使用。
  • 词法分析器是一个将输入流转换为标记序列的程序。
  • 它通过在C程序中实现词法分析器来读取输入流并生成源代码作为输出。
Lex的功能如下:
  • 首先, 词法分析器以Lex语言创建程序lex.1。然后, Lex编译器运行lex.1程序并生成一个C程序lex.yy.c。
  • 最后, C编译器运行lex.yy.c程序并生成一个目标程序a.out。
  • a.out是词法分析器, 它将输入流转换为令牌序列。
Lex词法分析器

文章图片
Lex文件格式 Lex程序由%%分隔符分为三部分。 Lex的正式形式如下:
{ definitions } %% { rules } %% { user subroutines }

定义包括常量, 变量和常规定义的声明。
规则定义形式为p1 {action1} p2 {action2} … . pn {action}的语句。
其中pi描述正则表达式, 而action1描述动作, 当模式pi匹配词素时, 词法分析器应采取什么动作。
【Lex词法分析器】用户子例程是操作所需的辅助过程。该子例程可以与词法分析器一起加载并单独编译。

    推荐阅读