
编译原理
文章平均质量分 80
shiyicode
已弃用! 可以通过shiyi@threebody.xyz联系我
展开
-
c语言词法分析初试(C++实现)
开篇 所谓词法分析,就是将源代码按照构词规则分解成一系列单词符号。单词是语言中具有独立意义的最小单位,包括关键字、标识符、运算符、界符和常量等。分析 源程序分解的单词可以归为以下几类:1. 关键字 c语言关键字有不少,这里只列举其中一部分: for,while,do,continue,if,else, char,int,double,return2. 变量名 变量名原创 2016-10-08 19:19:04 · 7055 阅读 · 0 评论 -
自制Lex-词法分析器生成器(C++)
前言 前一阵子,编译原理课实验内容是要去做一个词法分析器,实现后,觉得没有把正规表达式和NFA、DFA这些知识用上,所以就产生了想自己去实现一个lex的想法,于是就有了这篇博文。 如果还不知道词法分析器该怎么实现,可以去看c语言词法分析初试(C++实现)。简介 上图是维基百科对lex的定义。 从中可以明确lex的功能:读进一个代表词法分析器规则的输入字符串流,然后输出以C语言实做的词原创 2016-10-31 23:03:26 · 15495 阅读 · 2 评论 -
正规表达式转NFA(C++)
分析 表达式里包含五种符号:左括号,右括号,连接符,选择符,闭包符。 连接符因为优先级最高,可以将其过滤掉,不予考虑。闭包符* 首先来说闭包,无非两种情况: X* 或者 (…..)* 两者都可以看做是从一个起始状态,经过诸多输入到达一个终止状态。如 1– X –>2 和 1– (……) –> 2。 那么闭包符可以看做是以下操作:原创 2016-10-02 02:56:56 · 18722 阅读 · 22 评论