摘要: 前面已经实现了SLR语法分析表,但是可能会出现即使语法不是二义性文法,也存在移入/规约冲突 状态 i 包含项[A ->α ],当状态 i 出现在栈顶时,栈中的可行前缀时βα且在任何最后句型中a都不可能跟在βA之后, 那么当输入a时不应该A->α进行规约 为了解决这个问题, 引入更强大的构造语法分析表 阅读全文
posted @ 2023-11-11 11:51 kashin05 阅读(301) 评论(0) 推荐(0)
摘要: 构造SLR语法分析表 方法: 1)构造G‘的规范LR(0)项集族 2)根据规则生成动作 3)生成转换 4)设置报错 /** * P157 规范LR(0)项集族 * @param grammar */ public List<SetOfItems> items(Grammar grammar) { i 阅读全文
posted @ 2023-11-04 11:39 kashin05 阅读(190) 评论(0) 推荐(0)
摘要: 自底向上的语法分析 一、一个串ω归约(reduction)为文法开始符号的过程 关键问题: 1.何时进行规约,2.用哪个产生式规约 句柄右边的串ω一定只包含终结符号。 如果文法是无二义性的,那么文法的每个右句型都有且只有一个句柄 二、LR(0) 自动机 Automaton 项 1.定义:产生式加上位 阅读全文
posted @ 2023-10-29 10:42 kashin05 阅读(65) 评论(0) 推荐(0)
摘要: 语法分析器的两个重要函数 FIRST和FOLLOW 一、FOLLOW的定义 在句型中紧跟在A右边的终结符号的集合 如果A是某些句型的最右符号,那么$在FOLLOW(A)中 A:非终结符 二、计算方法 循环应用下面的规则 1)将$放到FOLLOW(S)中,S是开始符号,$是输入右端的结束标记 2)如果 阅读全文
posted @ 2023-10-26 23:43 kashin05 阅读(149) 评论(0) 推荐(0)
摘要: 语法分析器的两个重要函数 FIRST和FOLLOW FIRST的定义 FIRST(α),可从α推导得到的串的首符号的集合 1.如果X是一个终结符,那么FIRST(X) = X 2.如果X是一个非终结符,且X -> Y1Y2...Yk 是一个产生式, 1)如果Y1..Yj-1=>ε 那么 FIRST( 阅读全文
posted @ 2023-10-21 09:29 kashin05 阅读(56) 评论(0) 推荐(0)