900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 基于Python实现的类Pascal语言的词法分析和语法分析器

基于Python实现的类Pascal语言的词法分析和语法分析器

时间:2018-11-20 12:07:09

相关推荐

基于Python实现的类Pascal语言的词法分析和语法分析器

类Pascal语言的语法分析器

功能

使用Python实现的类Pascal语言的词法分析和语法分析器。

语法分析实现的功能有:

利用文法推导式构造LR(1)分析表使用LR(1)分析表对输入的Token串进行语法分析,构建语法树树形输出语法树词法语法检错,显示出错代码上下文和出错原因

程序运行

python3 main.py src_path

对输入路径为src_path的源文件进行语法分析

python3 main.py make-parse-table

根据 parser/bnf.txt 所定义的语言BNF范式构造语言的LR(1)语法分析表,并将分析表以文件的形式保存到项目目录的data文件夹中;

运行截图

下面为语法分析器对以下源程序进行语法分析的结果

letconst ten = 10;func power(a: Integer, n: Integer): Integer isif n == 0then 1else a * power(a ,n-1)inpower(ten)

程序语法树构造结果:

源文件存在词法错误时的输出:

源文件存在语法错误时的输出:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。