词法分析器

基础介绍:

任务:从字符流到记号流
字符流:我们程序的源代码
记号流:把一些有意义的一段字符流识别为一些记号,比如if、括号、变量名字等等。


token中第一个是枚举变量,赋值为IF、ELSE等,但变量的名字是不同的,因此我们需要lexeme来进一步说明变量的字符内容。

手工编码实现:

比较的实现转移图:

伪代码实现:

标识符的转移图:

关键字是标识符的一部分,识别出关键字之后可以通过哈希算法来看看是否是关键字,哈希表不是关键, 表才是关键,哈希表只是为了加快查找速度。

词法分析器的生成器:

程序员写声明规范,然后用生成器生成。


有限状态自动机:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 词法分析器 词法分析器又称扫描器。词法分析是指将我们编写的文本代码流解析为一个一个的记号,分析得到的记号(Toke...
    435fa00b72e7阅读 1,645评论 0 3
  • 任务 你将使用图转移算法手工实现一个小型的词法分析器。 分析器的输入:存储在文本文件中的字符序列,字符取自ASCI...
    hzxiao阅读 797评论 0 0
  • 词法分析器的任务: 读入每个单词或者字符 判断每个字符或者单词是否合法 如果所有字符或者单词合法,则为每个单词或字...
    拉丁吴阅读 7,925评论 0 8
  • 词法分析器的自动生成器的作用: 只需输入合法词的正则表达式,就可以输出一个确定有限状态自动机(DFA),而DFA的...
    拉丁吴阅读 5,756评论 2 6
  • 昨天有了如何将表达式与scope相结合的思路,今天开始实现这个思路的第一步。如果想要编译一个表达式,其实就是实现一...
    蚊子爸爸阅读 1,159评论 9 3