文享日志

词法分析器实现

JavaScript

发表于2017年10月30日22:23:45

0条评论 196次阅读

实现大体想法:

先将文本中代码取出,各字符存储到数组中。

if else识别开头第一个字符:

主要有三种类型:变量和关键字,数字,符号。所以有三个选择路径。

C中关键字是可知的,所以将所有关键字存到数组。

当识别的第一个字符在a-z,A-Z,_时,它只可能是关键字或者变量,然后while循环读取接下来的字符,保存到字符串,条件就是该字符数字,字母,下划线。然后判断字符串是变量还是关键字。

当识别的第一个字符为数字,进入else if。然后判断第二个字符(用于判断是几进制的),接下来还是while循环判断

其他则为符号。符号用switch case。每种符号有不同的情况,逐一判断。


主函数中设置一个while循环,设置标志为条件,当扫描指针数组中最后一个字符,标志位为false;


这是部分识别结果(Node环境):

具体代码放到Github。有兴趣的可以到我的github看看

https://github.com/LuckyHH/C-lex

然后电脑网页版的在这里:

https://hanblog.herokuapp.com/C-lex

网页版实现结果

👍 0  👎 0
共有0条评论

发表新评论

提交

广告展示

腾讯云推广 阿里云推广