编译器----词法分析器(python实现)

词法分析器的任务:

  1. 读入每个单词或者字符
  2. 判断每个字符或者单词是否合法
  3. 如果所有字符或者单词合法,则为每个单词或字符附加上相关信息输出(token)。

补充:

  • 单词或字符合法:这需要预先定义什么是合法字符,我定义的t语言(暂且这么称呼)中对合法单词的定义是:变量名必须以[a-z|A-Z|_]开头单词中可以包含数字.

  • 每识别一个单词,不是直接输出该单词,而是将它和它相关信息打包成一个token,以供后面部分的分析过程使用。而我的将token定义成<属性,单词,行,列>,输出给语法分析器。

关于词法分析器的实现方法:

  1. 手工编码实现:
    转移图算法,结合自身定义词法规则。
    我的词法分析python实现—github

  2. 使用词法分析器的生成器
    只需要输入合法单词的正则表达式,即可生成一个词法分析器

    原文作者:拉丁吴
    原文地址: https://www.jianshu.com/p/96306b5dda44
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞