happy

    3

    1答えて

    私はHaskellのAlexとHappyを使ってモナドパーサーを書いています。 私の誤差関数は次のように定義されています parseError :: Token -> Alex a parseError _ = alexError "error occurred" (数に文字列を追加しようとしたときに誤ったタイプのように)私は解析中にカスタムエラーを送信するにはどうすればよいですか?私は、オ

    3

    1答えて

    私はHappyによって生成された無効なコードのように見えます。この問題は、GHCが関数の多形型シグネチャを推論していないことから始まります。ここではその一例です: {-# Language MagicHash #-} f x =() main = pure (f 1#) GHCがf :: a ->()どこa :: *を推測しているので、これは • Couldn't match a li

    0

    1答えて

    最新バージョンのハッピー(1.19.5)でa bugと競合しています。 git repoでのみ見つかったHappy(1.19.6)のさらに新しいバージョンを探すためにスタックに向けるにはどうすればよいですか?今、スタックをすべて管理しています。ハッピーへの唯一の言及は私のカバールファイルにあります。関連セクションは次のとおりです。 ... library: hs-source-dir

    2

    1答えて

    これらは私が得るリンカエラーは以下のとおりです。VM 幸せ-1.19.5で happy-1.19.5: configure cpphs-1.20.2: download th-reify-many-0.1.6: download time-qq-0.0.1.0: download th-reify-many-0.1.6: configure th-reify-many-0.1.6: bu

    6

    1答えて

    ここでは、通常の優先順位ルールを使用するハッピーコードとコンテキスト依存優先順​​位ルールを使用するスニペットがあります(どちらもhereと記載されています)。 ノーマル: %left '+' %left '*' %% Exp :: { Exp } : Exp '+' Exp { Plus $1 $3 } | Exp '*' Exp { Times $1 $3 }

    0

    2答えて

    Happyの公式サイトにあるこの幸福なパーサにこの文法セクションがありますが、括弧内のルールの意味についてのより深い説明が必要です。ここでトークン定義 %token let { TokenLet } in { TokenIn } int { TokenInt $$ } var { TokenVar $$ } '='

    0

    1答えて

    私は現在、言語を解析するのにhappyを使用していますが、パーサーがLALRパーサーであると言う以外はパーサーとは関係ありません。文法の抜粋は次のとおりです。 ArithExpr -> ArithExpr + ArithExpr ArithExpr -> (ArithExpr) ArithExpr -> ... BoolExpr -> ArithExpr == ArithExpr Boo

    1

    1答えて

    私は現在、ハッピー&アレックスを使って、おもちゃの言語 のコンパイラのパーサを書いています。任意のレイアウトのオプションが必要なので、私は アレックスの状態をblock非端末に合わせる前に変更しなければなりません。残念ながら ハッピーに必要な先読みトークンが先に読み取られているようです 私はアレックスの状態を変更するチャンスがあります。ここで は、問題を実証する小さなスニペットです: funcDe

    4

    2答えて

    this pageのソースからGHCをビルドしようとしています。 configureを実行しているとき、私は、エラーメッセージを取得まだ $ cabal install alex happy Resolving dependencies... Configuring alex-3.2.1... Configuring happy-1.19.5... Building happy-1.19.

    2

    2答えて

    私は<と<<の両方を持つ言語を解析しています。私のアレックスの定義では、私はへのより少なくよりよう tokens :- "<" { token Lt } "<<" { token (BinOp Shl) } 私は <<が発生した時はいつでもそう、左シフトとしてトークン化されます とないのようなものが含まれている何かを持っています。これはトークン化の後に空白を投げ捨てて、1 <