说我有这个C程序。
#include <stdio.h>
int main(void)
{
int monday = 1;
int tuesday = 2;
if(monday == tuesday) { fprintf("I should quit my day job"); }
return 1;
}
令牌是什么?
作为程序员,bison为我提供了什么?? Certianly,bison只用解析器语法不生成机器代码?那么我如何与野牛界面?我不希望在这里得到完整的答案,只是指向好网站和书籍的指针。
答案 0 :(得分:4)
Bison实现了一个通用的LR解析器。有关示例,请参阅http://www.gnu.org/software/bison/manual/bison.html以获取相当广泛的文档。你本身不会得到一个解析树;相反,你写下每次减少时激活的“动作”。当然,如果您的操作只是构建一个解析树,那么如果您想获得一个解析树,那就可以了。现代野牛也有很多可以插入的额外调整。
答案 1 :(得分:3)
标记,逐行:
#include <stdio.h>
上述行不是C语句,但由C preprocessor使用。
int main(void)
五个令牌:关键字int
,标识符main
,符号(
,关键字void
和符号)
。
{
一个标记:符号{
。
int monday = 1;
五个令牌:关键字int
,标识符monday
,符号=
,整数1
和符号;
。
......等等
还应该注意,=
和==
是两个单独的标记,并且该字符串是一个单独的标记。