問題タブ [alex]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - Cabal ビルドでエラーが発生 - コードは手動で問題ないように見えますか?
私の開発中、alex/happy を手動で実行してパーサー ファイルを生成し、ghci を実行してコードをテストしてきました。これは問題なく動作し、GHCI に読み込まれますがcabal repl
、プログラムを実行するとファイルにエラーがスローされParser.hs
ます。
エラーは型エラーです:Couldn't match type '[a]' with 'Expression'
しかし、このコードを手動でテストしていたときはいつでもghci main
、コードは正常に動作しますか?
cabal がどのように機能するかを完全に理解していないかどうかはわかりませんが、happy から生成された haskell パーサーと cabal から生成された haskell パーサーがまったく異なることに気付きました。
以下に、cabal build コマンドのエラー メッセージの冒頭を添付しました。
編集
したがって、cabal ビルドが実行されるたびに Alec が指摘したように、それは-agc
フラグに満足して呼び出されますが、私はこれに気づいていなかったため、コードを微調整する必要がありました。
解決策は、フラグを使用して Happy パーサーをビルドし、-agc
そのようにコンパイルされるようにすることです。これにより、結果のパーサーがわずかに異なるため、パーサー内でいくつかの新しいエラーが発生する可能性がありますが、私の調査によるとcabal repl
、前述のフラグなしで幸せに実行する方法はありません。
haskell - レクサーで数字のパターンを取得したときのバイトのパターン
レクサーに数字のパターンがあります
バイトに別のパターンを追加したい。バイトにはダイアポゾン 0 ~ f の 2 つのシンボルが含まれます。バイトにはどのパターンを書くべきですか? 11 :: byte と 11 :: num を正しく区別できますか?