happy

    5熱度

    2回答

    所以我想實現一個行語句一個非常簡單的語法: # Grammar c : Character c [a-z0-9-] (v) : Vowel (= [a,e,u,i,o]) (c) : Consonant (?) : Any character (incl. number) (l) : Any alpha char (= [a

    0熱度

    1回答

    我正在研究解析器,我真的很沮喪。在語言中,我們可以有一個像表達式: new int[3][][] 或 new int[3] 它的大部分解析正確的,除了在端部的空陣列。 在我的解析器,我有: Expression : int char null (...many others...) new NewExpression 然後NewE

    1熱度

    2回答

    你好優秀的程序員, 我已經建立以下語法快樂(哈斯克爾):現在 P : program C {Prog $2} E : int {Num $1} | ident {Id $1} | true {BoolConst True} | false {BoolConst False} | read {ReadInput} |

    0熱度

    1回答

    所以解析switch語句,我試圖解析代碼方含switch語句像這樣 function (a : Boolean) equals (b : Boolean) : Boolean { switch (a) { case true: switch (b) { case true: return (true);

    3熱度

    2回答

    我目前在玩高分析器生成器。 其他解析器生成器可以給出很好的消息,如「意外的結束,預期的」,然後「」。 隨着快樂,我只是得到當前令牌和錯誤的位置。 你能給我一個如何得到上述錯誤信息的例子嗎?

    3熱度

    2回答

    我在BNF遇到了一些麻煩。我不知道什麼似乎是做事的標準方式(如果有的話),以及是否有類似char或int或其他內置類型。 但是,我的主要問題是瞭解花括號中的BNF部分是如何工作的。 鑑於這樣的: exp : term {$$ = $1;} | exp '+' term {$$ = $1 + $3;} | exp '-' term {$$ = $1 - $3;} ;

    12熱度

    2回答

    我正在爲我正在編寫的類編寫一個編譯器。該類不是特別的Haskell,但我使用Haskell編寫我的編譯器和解釋器。我有一個cabal包安裝程序,希望可以讓我的教授輕鬆運行/編譯。我有兩個可執行文件在build-tools字段中都很開心,但是Cabal忽略了這一點,然後抱怨說找不到Happy和Alex應該生成的模塊。如果我手動運行: alex LimpScanner.x happy LimpPar

    5熱度

    1回答

    我建立與快樂的解析器,發現這是online documentation: YACC一樣,我們包括%%這裏,沒有真正的理由。 %% 必須有一個原因,不過,即使是微不足道的。有誰知道它是什麼?

    11熱度

    1回答

    我正在使用快樂來生成一個解析器。 我發現當我給它的符合語法低於頂層的語法部分的標記(比如給它一個表達式,它不是語句的一部分)時,我會得到一個「內部快樂錯誤」而不是解析錯誤。 有沒有辦法覆蓋notHappyAtAll,這樣我就可以打印比「Internal Happy Error」更好的錯誤信息了?顯然,除了更改自動生成的解析器文件外,我每次更新語法時都必須這樣做。

    2熱度

    4回答

    我很快就會被迫在Haskell中展示一個應該讓Java語法突出顯示的項目。我做了一些研究,發現Happy可能是一個解決方案(因爲它是一個類似yacc的解析器)。還有人提到了Bison和Parsec。 因爲我是Haskell的新手,所以我真的不知道如何開始這個項目。 任何提示都會有所幫助。 謝謝!