2013-03-19 73 views
0

我在PLY中爲包含兩種子語言的語言編寫解析器:「正常」表達式語言和類型註釋語言。問題是它們共享一些令牌,並且這兩種語言的優先順序不同。子語言的優先級

例如,在表達式語言a | b, c應相當於(a | b), c(和裝置一樣在Python),而在類型語言相同的應相當於a | (b, c)(鍵入或者a或鍵入b, c,這是一個元組類型爲b,類型爲c)。

真正的問題比這個更復雜一些,但它仍然基本相同。

在PLY中可以暫時改變優先級嗎?如果不是,我會申請另一個解決方案嗎?

回答

0

事實證明,您可以在生產結束時以不同的優先順序使用%prec fakeToken,並在優先順序列表的正確位置插入facetoken