mih*_*jlv 3 c lex bison flex-lexer
我正在关注该网站上有关如何使用 flex 解析字符串的其他示例:
\n\nyy_scan_string(string);\nyylex();\nyyparse(); \nyy_delete_buffer( YY_CURRENT_BUFFER );\nRun Code Online (Sandbox Code Playgroud)\n\n第 4 行给出了它所说的问题
\n\n error: \xe2\x80\x98YY_CURRENT_BUFFER\xe2\x80\x99 undeclared (first use in this function)\nRun Code Online (Sandbox Code Playgroud)\n\n我也没有得到 YY_BUFFER_STATE,顺便说一句,我从野牛文件(.y)调用它们,所以它们应该可用。\n我不知道为什么它找不到 typedef。我没有在谷歌上的前十几个链接中找到任何内容任何帮助将不胜感激。
\nYY_CURRENT_BUFFER和YY_BUFFER_STATE是由 flex 而不是 bison 定义的,因此它们是在lex.yy.cflex 生成的文件中定义(和使用)的。所以你只能从.l文件中访问它们,而不能从.y文件中访问它们。
如果您想在野牛语法中访问它们,最简单的方法是将它们的使用封装在您在文件的第三部分中定义的小函数中.l。.y然后您从该文件或任何其他源文件调用该函数。
| 归档时间: |
|
| 查看次数: |
3193 次 |
| 最近记录: |