2017-07-10 59 views
2

我正在考慮自永遠以來(自從Uni上的編譯器類以來,我主要已經忘記了)編寫基本上我的第一個解析器。使用Boost Spirit X3編寫解析器的前景如何?

由於我使用C++,我正在考慮使用Boost Spirit。然後我注意到有「常規」2.5.2,並且有一些名爲Spirit X3的代碼有一些神奇的子集。

我也注意到Boost Spirit X3在兩年前已經發布/討論/預發佈,但Boost Spirit的正式版本是2.5.2。最後,我讀:

Where is boost-spirit 3? Is it abandoned?

所以我「知道」,這不是一個廢棄的項目 - 但不是一個非常積極的維護項目。對於我來說用Spirit X3編寫解析器有多「安全」?它有可能會失敗/被丟棄/被遺棄,還是一定會成爲Boost Spirit發佈的主線?

回答

1

它已經發布,所以它幾乎沒有機會消失。

即使在生產代碼中,我也會自由地使用X3:畢竟,我們有測試的原因。

這就是說,我知道圍繞着跨越不同翻譯單位1的規則鏈接¹的一些毛病問題。

這裏的事情,讓我在下列情況下使用X3考慮列表:

略少於緊迫的差異時:

不過請注意,有明確的領域,其中X3眼前一亮:


¹看到的郵件列表,例如x3 linker error with separate TUlinking errors while separate parser using boost spirit x3

²事實上,它可能是「易」通過創建一個自定義的解析器,建立在with<>any_parser<>

+0

所以創建一個,我+ 1你的詳細解答,但 - 不你的答案意味着它將把主幹線的「使用不足的兄弟」留在未來呢?或者他們是否正在努力通過有狀態規則,獨立的詞法分析器等來改進? – einpoklum

+0

我只是確認它是正式實驗(不穩定:界面可能會改變,有疣)。我對未來沒有任何要求(我不認爲它會保持較少使用,這可能取決於廣泛採用C++ 14)。他們正在研究鏈接問題,但在這方面我不太樂觀(TBF:我根本不認爲外部鏈接是一項要求,但這就是我)。 Lexer的支持不會發生(我使用[我的水晶球](https://chat.stackoverflow.com/transcript/10?m=20528855#20528855)) – sehe

相關問題