2013-06-12 68 views
1

我有一個單一的Bison解析器定義應用於多個流。每個流都以一定的時間間隔以塊形式生成,因此我想要保存給定解析實例的狀態,以便在不同的流之間切換,同時保持每個解析實例的狀態(及其關聯的堆棧)。如何在解析不同流的塊時保持Bison狀態?

我知道有從掃描儀幾個緩衝區之間切換的可能性,但是這並不能幫助我建立一個不同的解析樹我分析每個數據流。

是否有野牛功能,這使執行yy_switch_to_buffer()確實在flex什麼功能?

+1

標記時請小心。 Flex標籤用於Adobe/Apache UI框架。 Flex-lexer用於詞法分析器。 – JeffryHouser

回答

2

我認爲你正在尋找pure (reentrant) parser interface,它可以讓你保持獨立的解析器的狀態。您可能還需要使用reentrant flex lexer,以便每個解析器狀態都有其自己的詞法分析器狀態。 (你可以使用一個單一的詞法分析器和開關每次調用它緩衝時間,但折返詞法分析器接口是很多清潔和更普遍的,因爲它保留了所有詞法分析器狀態,包括,例如,啓動條件和緩衝棧。)

相關問題