gppg

    0熱度

    1回答

    我們使用GPPG(本質上是Bison的bison)來爲編程語言生成解析器。除了一個真正討厭的位,一切都很好。我們解析的語言有一種「隱式比較」規則,其中「表達式表達式」應該被解釋爲「表達式==表達式」。 例如,這是一個完全有效的語句: If SomeValue False Then EndIf 這顯然介紹解析器生成過程中的種種矛盾。我第一次嘗試解決這些問題是沿着這些方向發展的(爲簡潔起見)。我

    0熱度

    2回答

    我試着去建模EBNF表達 ("declare" "namespace" ";")* ("declare" "variable" ";")* 我已經建立了YACC(即時通訊使用MPPG)語法,這似乎來表示這一點,但它不符合我的測試表達式。 測試情況下,我試圖匹配是 declare variable; 從詞法記號流是 KW_Declare KW_Variable Separator 語

    12熱度

    3回答

    是否有可能使YACC(或我是我的案例MPPG)輸出抽象語法樹(AST)。 我正在閱讀的所有東西都表明它很容易讓YACC做到這一點,但我很努力想知道如何知道在構建它時如何在樹中移動節點。

    10熱度

    6回答

    我在理解轉換/減少關於語法的轉換/減少的問題時遇到了問題,我知道它沒有含糊之處。這種情況是if類型之一,但它不是'懸而未決'的問題,因爲我有強制性的END子句分隔代碼塊。 這裏是GPPG語法(它是一種野牛一樣編譯器編譯...這不是一個回聲): %output=program.cs %start program %token FOR %token END %token THINGS %