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