如何解决正式语言和编译器 30 问题
让 G 是字母表 {a,b} 上的正则表达式的以下语法,带有替代运算符(+ 运算符)、连接(通过正则表达式并列呈现)、克林星(* 运算符)和括号:
R -> R + R | RR | R* | (R) | |
-
为 L(G) 的产生提供 LALR(1) 文法 G',它按照操作符的优先级和二元操作符的结合性的通常约定来解决 G 的歧义:替代和串联是左-联想; Kleene 星具有最高优先级(意味着它优先于串联和替代);串联优先于替代。
-
显示使用 G' 获得的 a+ba* 的推导树。
我通过创建以下明确的语法解决了 1.:
R -> R + S | S
S -> ST | T
T -> T* | U
U -> (R) | a | b
然后用这个语法我画了 a+b*a 的派生树。
问题在于第 3 题。
如果有人能帮助我,我将不胜感激!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。