問題タブ [irony]

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.

0 投票する
1 に答える
516 参照

c# - EBNF を皮肉に翻訳する

スクリプト言語用のパーサーを作成するために Irony を使用していますが、ちょっとした問題に遭遇しました。

私はすでにいくつかのトリックを試しました

しかし、それは醜く、それが本来の方法で機能するかどうかさえわかりません(まだ試していません...)。誰か提案はありますか?

編集:私はこれらのヘルパー メソッド (MakeStarList、MakePlusList) を見つけましたが、Irony のドキュメントが完全に不足しているため、それらの使用方法を見つけることができませんでした...誰か手がかりはありますか?

0 投票する
1 に答える
182 参照

c# - Irony パーサーで親ノードを取得する

代数的な構文の単純な構造を取得するために、NET 用の Irony パーサーを使用しています。

解析は正常に機能ParseTreeNodeし、入力の各ノードの参照を取得するために使用しています。ParseTreeNode 特定のノードの親ノードを取得するにはどうすればよい ですか?

0 投票する
0 に答える
285 参照

c# - Irony.Net では、変数に 2 つのプレフィックスを使用できます

次の構文で Irony.Net を使用しようとしています。

where !!test- グローバル変数および!test1- ローカル変数

私はこのコードを書きました:

そして、シフト削減エラーが発生します

私が間違っていることは何ですか?

codeplex ( https://irony.codeplex.com/discussions/546013 ) の助けを借りて、問題を解決します。結果コードは次のとおりです。

0 投票する
2 に答える
1037 参照

c# - Yacc のオプションの演算子 ("?") に相当する Irony の演算子は何ですか?

私は Yacc 記法で文法の断片を持っています:

このフラグメントを Irony に実装するにはどうすればよいですか? に相当するものが見つかりません?。これは、Yacc で 0 または 1 回出現することを意味します。

0 投票する
1 に答える
360 参照

c# - Irony の C99 文法 - 宣言/ステートメントの競合

Ironyを使用して C99 を解析しようとしていますが、オンラインで文法を見つけました

宣言とステートメントの競合に問題があります。次のルールは、イニシャライザを使用したポインタ宣言の検出に失敗します。

失敗している行のタイプは次のとおりです。

ステートメントのルール (どちらも識別子で始まる可能性があります) から、labeledStatement と expressionStatement を削除すると、このタイプの宣言が正しく認識されます。

ステートメントを試す前に、Irony に宣言ルールを使い果たすように強制する最良の方法は何ですか? または、Irony が解析するときに文法に追加して、MyType を識別子ではなく端末として登録できるようにすることはできますか?

0 投票する
2 に答える
1033 参照

c# - Irony のオプション式

私は皮肉なプログラミングが初めてです。私が取り組んでいる最初のテスト例は、数学的形状 (面積、体積、...) を計算することです。

シンプルモードでは正常に動作しています。しかし、課題は、それをオプションにしたいということです。たとえば、形状として円を選択した場合、必要なのは半径だけです。さらに、形状として長方形を選択した場合、高さと幅が必要です。そこで、形が円の場合は半径として1つの数値を取得する方法と、形状が長方形の場合は2つまたは3つの数値を取得する方法を知りたいです。

これは次のように動作します: 円形状の例では、コードに半径のみを受け取り、それ以上は受け取りません (以下のコード - リスト 1 のように)。しかし、構文がリスト2のような場合にも機能するので、コンパイル時に特定の状況が必要です。

リスト 1

リスト 2

どちらも結果は同じで、リスト 2 のパラメーターが間違っていることがわかっています。