【发布时间】:2012-05-21 22:07:55
【问题描述】:
我想为我的时间表应用程序编写一个简约的 XML 解析器。我不想使用任何支持 XML 解析的库或解析器,因为它们对我的使用效率较低(因为我只需要识别几个标签)。因此,我决定使用 lex 和 yacc 编写一个解析器。 有什么方法可以直接在我的代码中使用由 lex 和 yacc 创建的 .h 文件中的函数,而不是在 yacc 本身中编写应用程序代码。
【问题讨论】:
我想为我的时间表应用程序编写一个简约的 XML 解析器。我不想使用任何支持 XML 解析的库或解析器,因为它们对我的使用效率较低(因为我只需要识别几个标签)。因此,我决定使用 lex 和 yacc 编写一个解析器。 有什么方法可以直接在我的代码中使用由 lex 和 yacc 创建的 .h 文件中的函数,而不是在 yacc 本身中编写应用程序代码。
【问题讨论】:
您的 lex 和 yacc 生成的程序导出的函数很少。通过调用yyparse 调用解析器。它在词法分析器中调用yylex。其他一切都可以在外面。
在 lex 和 yacc 文件本身中有一些解析支持例程是方便且习惯性的(由 lexing 和解析操作调用的帮助程序,而不是由其他任何东西调用)。但不是应用程序逻辑。 (除了非常琐碎的 Yacc 教科书示例。)
【讨论】: