zoukankan      html  css  js  c++  java
  • 词法生成器Flex

    每一种编程语言都有相应的词法模型(词分为哪些类别,每一种类型的词由哪些字符组成),需要词法分析器对输入的字符串进行解析,拆分为词法元素。Flex是一种词法分析器的自动生成工具,是生成词法模型的元模型,核心是模式匹配,给出以正则表达式方式描述的一系列匹配规则和与该规则匹配后执行的动作,Flex会生成用户指定词法模型的状态机,当输入字符串中的状态与某一条规则匹配时,与规则匹配的动作自动执行。
    Flex的输入文件由四部分组成:声明区、辅助定义区、识别规则区、用户子函数区
    声明区:以%{开始,以%}结束所包含的区域,内容会直接复制到输出文件的开始
    辅助定义区:声明Flex中的宏定义,语法为MACRO_NAME (expression) expression是该宏对应的正则表达式,引用宏的语法为{MACRO_NAME}
    识别规则区:以%%开始,以%%结束所包含的区域,每条规则单独占一行,语法为RULE {ACTION} RULE为用正则表达式描述的匹配规则,ACTION是用C/C++描述的匹配动作,会被复制到目标文件的适当位置,当规则匹配时动作被执行
    用户子函数区:跟在识别规则区%%结束符的后面,这个区的内容直接复制到输出文件中

    上善若水
  • 相关阅读:
    windows下安装python模块
    红包demo
    如何查看python 的api
    vscode 与 python 的约会
    默认构造函数
    关于重载
    转类型转换
    asm-offset.h 生成
    debian 7 安装
    emacs 定制进缩风格
  • 原文地址:https://www.cnblogs.com/netbuddy/p/2771797.html
Copyright © 2011-2022 走看看