算法基本思想: 消除了左递归和左公共因子的文法,每个产生式左边的非终结符对应一个函数,在子程序中实现对该非终结符所在产生是的右部语法成分的识别,分析过程是按产生式规则自顶向下一层一层调用相关子程序来完成的。
具体实现过程是扫描源文件,先做语法分析,建立各种表格存放单词;然后进行语法分析,遇到终结符进行匹配,遇到非终结符调用相关子程序,输出分析过程和结果。
用C#实现了一个可视化的语法分析器。在textBox1中输入语句,单击START按钮,开始语法分析,在textBox2中输出语法分析过程和语法分析结果。
分析成功实例:
遇到不符合文法的语句分析出错: