用yacc做个编译器(LR分析方法的)的语法分析程序,具体步骤应是怎样的?

发布于 2022-09-23 15:03:48 字数 239 浏览 18 评论 0

用yacc做个编译器(LR分析方法的)语法分析程序,具体步骤应是怎样的?

1,写出产生式
2,用程序生成"分析表(action+goto表)",
3,根据分析表写出yacc的规则文件,供yacc处理

对么?

还是其它步骤?
谢谢

[ 本帖最后由 liuzq71 于 2009-2-8 11:29 编辑 ]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

雪落纷纷 2022-09-30 15:03:48

一般用yacc与lex混编,yacc进行语法分析,lex进行词法分析.
《lex&yacc》
http://linux.chinaunix.net/bbs/viewthread.php?tid=896629

樱花坊 2022-09-30 15:03:48

当然,除了yacc,还有一些别的词法分析工具,不过我不太了解。

零時差 2022-09-30 15:03:48

哪里能找到用yacc生成的简单的"语言编译器"的例子?想看看它的规则是如何编写的?(最好是LR(1)分析的方法的)
书上,网上讲解yacc时大多是用的"四则运算计算器"的例子,不免简单了一点,不得要领,

背叛残局 2022-09-30 15:03:48

太好了,谢谢prolj (爱好者)

陈年往事 2022-09-30 15:03:48

原帖由 liuzq71 于 2009-2-8 15:48 发表
哪里能找到用yacc生成的简单的"语言编译器"的例子?想看看它的规则是如何编写的?(最好是LR(1)分析的方法的)
书上,网上讲解yacc时大多是用的"四则运算计算器"的例子,不免简单了一点,不得要领,

YACC分析的方法可由不得你,YACC用的应该是LALR(1),与LR(1)差不多。

纵性 2022-09-30 15:03:48

对,正如cjaizss所说,Yacc是LALR(1)的,要找LR(1)的还真不好找。SLR的比LALR弱。

橘味果▽酱 2022-09-30 15:03:48

可是,
这几个打包文件中的规则文件用yacc处理时,都提示:

yacc: 1 shift/reduce conflict
(yacc: 1 移进/规约 冲突)

国际总奸 2022-09-30 15:03:48

http://www.quut.com/c/ANSI-C-grammar-l-1998.html
http://www.quut.com/c/ANSI-C-grammar-y-1998.html
这两个比较权威
好像不同的lex和yacc之间有区别
ANSI C99标准手册上有 C99 的 BNF ,不知道你那个PLC的...
自己找《Lex&Yacc》看看吧,那书上有SQL的例子。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文