簡體   English   中英

Bison 語法/解析器的多個起點

[英]Multiple start points for Bison grammar/parser

好的,所以我有一個完整的(和有效的)Bison 語法。

如果我願意,我希望能夠設置另一個起點( %start )。

這是如何可行的,而不必創建單獨的語法/解析器?

我將嘗試組合一個執行此操作的 yacc 版本。 有一個復雜因素使這一切並不像看起來那么簡單:什么構成“結束”符號的問題。 這種方法最有用的地方是在中游處理塊(例如,Knuth 的 [c]Web 的 TeX 處理器就是這樣做的)。 沿着這些思路,另一個可以使用它的示例是為預處理層和語言層提供統一的解析器,並將單個宏本身作為整個解析單元進行處理(以及能夠說明哪些宏主體是常見的句法單元,如“表達式”或“語句”,而哪些不是)。

在這些類型的應用程序中,沒有自然的“結束”符號來標記要解析的段的邊界。 通常,LR 方法需要這樣做,以便識別何時采取“接受”操作。 否則,您將面臨接受減少(甚至接受轉移)沖突!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM