happy

    19

    1答えて

    のバージョンを保持していない:私はcabal install happyをしようとすると Configuring haskell-src-exts-1.13.5... setup: The program happy version >=1.17 is required but it could not be found. それが正常に終了するようだが、あなたはバージョンが[ Unknown

    1

    1答えて

    私はこの文法を言語に対して持っていますが、文法には多少のあいまい性が含まれていますが、これを修正するのは非常に困難です。以下は、言語のBNF文法であり、私の幸せなパーサファイルのその部分の下にあります。 提案言語のBNF: <program> ::= Skel program "program" <id> ":" <pars> "." --> <pars> ::=

    15

    1答えて

    私はverilog(またはvhdl)言語のパーサーを作成し、解析されたデータの操作(並べ替え)を行います。私は本当に大きなファイル(完全なVerilogデザイン、最大10K行)を解析するつもりで、私は最終的にVerilogのほとんどをサポートします。私は入力しても構いませんが、他のルールのサポートを追加するたびにコードの一部を書き直したくありません。 ハスケルでは、どのライブラリをお勧めしますか?

    5

    2答えて

    だから私は1行の文のための非常にシンプルな文法を実装しようとしています: # Grammar c : Character c [a-z0-9-] (v) : Vowel (= [a,e,u,i,o]) (c) : Consonant (?) : Any character (incl. number) (l) : Any al

    20

    1答えて

    AlexとHappyを使用して小さなコンパイラを書く方法を学んでいます。意味のあるエラーメッセージをユーザーに提供できるように、私のASTノードの行と列の情報を維持したい。どのように私はそれを行う予定かを説明するために、私は小さな例を書いています(下記のコードを参照してください)、私は問題に近づいたかどうかを知りたいと思います(AlexPosnをトークンに付ける、多形属性フィールドをASTノード、

    1

    1答えて

    ハッピーの最新バージョンは、インスタンスのスーパークラスから生じるGHC 7.10.4 (ApplicativeのHappyIdentity)なしインスタンス と、次のエラーメッセージを表示します宣言 私は幸せにしてはいけないと思いますが、どうすれば問題を解決できますか?

    5

    1答えて

    私は幸せでパーサを構築することだし、これはonline documentationで気づい: yaccのと同じように、私たちは本当の理由で、ここ%%含まれています。 %% それは些細だ場合でも、しかし理由がなければなりません。誰がそれが何であるか知っていますか?

    11

    1答えて

    私はパーサを生成するために幸せ使用しています。 トップレベルよりも低いレベルの文法の一部に一致するトークンを与えると(それはそれ自身の式を与えるなど、文の一部ではありません)、私はパースエラーではなく、内部的なハッピーエラーです。 は、私が「内部ハッピーエラー」よりも優れたエラーメッセージを印刷できるように notHappyAtAllを上書きする方法はありますか?明らかに、自動生成されたパーサファ

    0

    1答えて

    私はパーサーに取り組んでいます。私は本当に不満です。 new int[3][][] または new int[3] そのほとんどが最後に空の配列を除いて、正しく解析します。言語では、我々のような表現を持つことができます。 Expression : int char null (...many others...) new NewExpr

    1

    1答えて

    一見独立したルールの順序が奇妙な方法でその動作に影響を与えるハッピー(Haskell解析パッケージ)を使用してケースに入りました。私は、パースconstFoo [Foo]とconstBar [Bar]の両方がどのようにハッピーな作品成功する必要があります理解したよう { module Parser where } %name constFoo %name constBar %tokent