2
我在yacc中编写我的第一个解析器。我想分析的是具有3“模式”文件:使用yacc的模态解析器
- 声明模式
- 表标题模式
- 表行模式
我希望我的解析器在声明中开始了模式,然后当它看到由负号组成的一行时,切换到表格标题模式。当它看到的减号另一条线,切换到表行模式,它看到最后当第三组的减号切换到发言模式:
是occures给我,statement...
statement...
statement...
----
table heading
----
table row
table row
table row
----
statement
statement
statement
一件事是,我能有3个独立的语法,我将在我的line feed loop之间切换。但是,我不知道如何在一个.y
文件中创建多个文法。
看起来像是一种可能性的另一件事是使用"Lexical Tie-ins"(不幸的是,您必须在文档中搜索该字符串)。然而,yacc教程的作者并没有真正告诉我任何关于这些“词法联系”的内容,除了“这种”后门“方法可以被阐述到有害的程度之外。然而,它代表了一种方式做一些困难的事情,如果不是不可能的话,做其他事情。“这并不令人鼓舞。
这看起来并不像它野牛isthe答案一门语言,但没有描述的结构“模式”,所以我可能是错的。在(f)lex中切换词法模式是很容易的;只需在Flex手册中搜索起始条件即可。这可能是你所需要的。 – rici