【发布时间】:2014-06-02 11:25:47
【问题描述】:
我想调整 kconfig-libs (/<path-to-kconfig>/libs/parser) 的 yacc-parser。但是我在解析各种符号、变量、函数、令牌等方面遇到了问题。我想问题是,编译时并未包含 kconfig-parser 的所有文件。这是我的工作:
lex lconf.l
bison -d -y ./yconf.y
gcc -o yconf y.tab.c
我收到如下错误消息:
./yconf.y 499:44: Error: >>ROOTMENU<< not declared (first use in this function)
rootmenu.prompt = menu_add_prompt(P_MENU, ROOTMENU, NULL);
^
./yconf.y:576:2: Error: »zconfnerrs« not declared (first use in this function)
zconfnerrs++;
^
./yconf.y:546:3: Error: »zconfnerrs« not declared (first use in this function)
zconfnerrs++;
^
解析器的目录中有更多文件(.c 和 .h),(我猜)需要包含在编译器进程中:hconf.c, lconf.c util.c symbol.c menu.c expr.c confdata.c, lkc.h lkc_proto.h(但在源代码中已经有特定的 @ 987654326@ 命令)
我直接使用此代码。当我在该目录中使用 makefile 时,它可以毫无问题地编译,但是像上面显示的那样手动执行它似乎不起作用。不幸的是,makefile 对我来说看起来相当神秘 - 因为我不是 makefile 专业人士 - 所以查找他们做了什么并不容易。
感谢有关“传递”这些文件的位置的建议,以便正确完成编译。
亲切的问候
[编辑:]
kconfiglib 的源代码可以在http://ymorin.is-a-geek.org/projects/kconfig-frontends 找到。解析器的源码位于:/<path-to-kconfig>/libs/parser
【问题讨论】:
-
请问您是从哪里下载这些文件的吗?并非我们所有人都对宇宙中的全部源存储库有百科全书式的了解,了解更多细节会有所帮助。
-
对不起,我忘了这个。我在顶部帖子的末尾添加了来源
标签: parsing compiler-errors bison yacc flex-lexer