問題タブ [bnfc]
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.
bnfc - BNFC が個々の機能を解析していない
次の BNFC コードがあります。
ただし、以下は解析されません
fun(X)
以下のものを解析している間
x # fun(Y)
要約すると、関数を制約の一部として解析しますが、個別には解析しません。両方を解析する必要があります。
誰かが理由を指摘できますか?
logic - BNFC を使用してロジック プログラミング言語の型をどのように実装しますか?
私は、BNFC を使用したロジック プログラミング言語の実装に取り組んでいます。私が抱えている問題は、入力規則に関連しています。A.Ranta による「Implementing Programming Languages」の本では、型は次のように LBNF 構文に含まれています。
C のような文法では、型を追加することが重要であることを理解しています。型は宣言に組み込まれているため、フロントエンドで解析する必要があるためです。さらに本では、型チェッカーは Haskell または Java で書かれています。ただし、ロジック PL では、型はそれほど明示的ではなく、個別に宣言されます。型の構文例は次のようにエンコードされます。
問題は、型の構文がコードのどこにあるのかということです。BNFC に型を追加しようとするたびに、あまり意味がなく、テストされた入力が適切に解析されません。この本には C 文法の良い例がありますが、BNFC によって作成されたフロントエンドと型チェッカーがどのように接続されているか、情報がどのように相互に渡されるかなどの全体像は示されていません。
c++ - C++ の LBNF Grammar を使用したプログラムの解析に関する問題
この文法を変更して C++ プログラムを解析できるようにしようとしていますが、using ステートメントで問題が発生し、エラーがスローされます。syntax error at line 10 before using std::cin ; using
問題のプログラム:
文法で SUsing として定義したため、「using」キーワードが認識されない理由がわかりません。どんな助けでも大歓迎です。ありがとう!
haskell - Haskell スタックの不一致モジュール名を解決する方法
Par.hs
で名前が付けられたいくつかの haskell モジュールが生成されていますBnfc/Par.hs
生成されたモジュールは
これを参照している私のライブラリでは
私のpackage.yaml
withstack
はそのように構成されています
それでも、実行時に上記のエラーが発生しますstack ghci
。私が間違ったことを理解していませんか?