本项目为《编译原理》课程设计,旨在通过实现一个语法分析器来深入理解语言解析过程。采用自顶向下或自底向上的方法,实践上下文无关文法的应用,并完成词法规则和语法规则的定义与测试。
项目要求创建一个使用LR(1)方法的语法分析程序。该程序有两个输入:一是包含2型文法(上下文无关文法)产生式集合的文本段落件;二是词法分析器输出的token令牌表,格式为(行数, token分类, token内容),以便与指定的词法分析器配套使用。
程序应提供以下功能:
1. 输出“YES”或“NO”,表示源代码字符串是否符合给定的2型文法。
2. 生成错误提示文件,在语法出错时标示具体的行号,并给出大致的原因说明。
项目简介:该程序读取上下文无关文法,进行拓广处理后将产生式依次转化为项目存储。设定起点并根据这些项目集族之间的转换来构建action和goto表。然后使用词法分析器生成的token列表按照之前得到的action和goto表执行语法分析,并检查源代码是否符合预设的语法规则。在出现错误时,程序会形成缺失或错误报告,并将结果输出至result.txt文件中(正确情况下的输出为‘YES’)。