問題タブ [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.
c# - Irony パーサーでの式の優先順位
私のvbscript文法のこの部分を考慮してください
そしてこのvbscriptプログラム:
if (2=1)+1 then x = 5
の代わりにこれを解析していif 2=(1+1) then x = 5
ます。BINARY_EXPR
以前に指定したことがありますCOMPARE_EXPR
が、「+」は演算子の優先順位が高いため、最初に加算操作を探す必要があることを伝える方法がわかりません。これを他にどのように表現すれば、Irony が意図したとおりに解析できるでしょうか?
c# - IronyでASTを使用するにはどうすればよいですか?
Ironyコンソールで正常に機能および解析できる文法がありますが、ASTツリービューには何も表示されません。私はここにあるBASIC->Javascriptの記事をフォローしていました:http://www.codeproject.com/Articles/25069/JSBasic-A-BASIC-to-JavaScript-Compiler、しかしAstのものはすべてされているようです移動/削除されました。いくつかのAstのものが含まれているIrony.Interpreter.dllを見つけましたが、Expressionサンプルの実装ではすべてが拘束されているようです。
ここで何が欠けていますか?ツリーを歩いてソースコードを生成したいのですが、どこから始めればよいのかわかりません。
私はビジターパターンを使用することについていくつか言及しましたが、それを実装して、Ironyが好む方法で実行する方法がわかりません。
c# - Ironyを使用したSQLステートメントの解析
通常のSQLステートメントをc#オブジェクトに変換するメソッドを作成しようとしているので、Ironyを使用してSQLステートメントを解析し、ステートメントのタイプとそれに応じた値を含むアクションとしてステートメントを返すことにしました。タイプ
これが私の未完成のコードです[それから何をすべきかわからないのでイライラしたので]
したがって、ここでの質問は次のとおりです。Ironyを使用して文字列SQLステートメントをac#オブジェクトに変換するにはどうすればよいですか?
これが私が達成したいことの例です:
Persons VALUES(4、'Nilsen'、'Johan'、'Bakken 2'、'Stavanger')に挿入
そしてそれをに変換してもらいます
メソッドがステートメントから読み取った内容に動的に依存します。
あなたが私を助けることができるように私が私の考えをよく説明したことを願っています、そして何か不明なことがあれば教えてください、そして私はそれを説明しようとします。
c# - Irony Grammar 仕様エラー
私は Irony を初めて使用し (約 10 年前に大学で BNF を学びました)、準実数の座標パーサーを作成することから始めています。
以下は、入力を解析できるはずだと私が信じてい た文法クラスです (完全なコードはhttps://github.com/spadger/notam-visualiserにあります)。
ただし、文法エクスプローラーで実行すると、1:4 で「expected: space」という構文エラーが発生します。
私のコードの何が問題なのか分かりますか?
ありがとう、
ジョン
c# - Ironyの単純な文法が期待どおりに機能しない
私はIronyを使用していくつかのXMLコードを解析しようとしています。文法を次のように定義しました。
さて、私がこのようなものを解析しようとすると、
<a condition ='i'><a condition ='i'></a><b a='i'></b></a>
それは正常に機能します(期待どおり)。
しかし、私がこのようなことをしようとすると
<a condition ='i'><a condition ='i'></a></a>
、それは機能せず<b a='i'>
、最初の後に期待することを教えてくれ</a>
ます。
私が間違っている場合は訂正してください。ただし、これも解析可能ではありませんか?<b a='i'>
最後のルールの最初の生成は、後である必要はないことを明確に示しています</a>
。パーサーが最初の後に別の「<」に遭遇した後、</a>
最後のルールifTagClose + elseIfTagBlockの2番目の生成を適用しようとするため、が期待されると思い<b a='i'>
ます。すべての端末の先頭から削除すると、期待どおりに機能するため、「<」の先頭に問題があると確信しています。
カスタム解析アクションを除いて、これに対する回避策はありますか?または、これに対処する方法を知っているc#用の他の解析エンジンはありますか?
parsing - この Shift/Reduce エラーについて Irony は何を教えてくれますか?
ここで説明されている文法を使用して、PowerShell 言語のパーサーを作成しています: http://www.microsoft.com/en-us/download/details.aspx?id=9706。
私は Irony を使用しましたが、Irony Grammar Explorer はシフト/リデュースおよびリデュース/リデュース エラーを報告しています。何を言っているのかわからないので、これは私を困惑させます。
自分自身を見たい場合、コードはこちら: https://github.com/Pash-Project/Pash/tree/method-invocation/Source/Pash.System.Management
編集:これが混乱する入力は次のとおりだと思います:
これは追加ですか、それともキャストですか?
c# - Irony の空白ターミネータと MakePlusRule
Ironyを使用してかなり単純なパーサーを作成しようとしていますが、この特定のケースには Irony が適していない可能性があるという結論に達しています。
これらは、私が解析しようとしているものの例です:
ターミネータとしてスペースまたはセミコロンを使用して FreeTextLiterals を使用しています
次に、MakePlusRule を使用して、1 つ以上の server_name 値を取得しています。
ただし、この場合、FreeTextLiteral のターミネータとして空白を使用することに問題があると思います。これを実行すると、パーサー エラーが発生します。空白をターミネータとして機能する別の特定の文字に置き換えると (また、これを MakePlusRule の呼び出しで区切り文字に追加すると)、正常に動作します。
Ironyでこれをどのように処理できるかについて、誰かアイデアがありますか?
c# - Ironyでインデントに敏感な言語を扱うには?
hello
2 つの構造 (ステートメントとfun
ブロック定義)のみを使用して、非常に素朴なインデントに敏感な言語を解析しようとしています。
そのために、Irony を使用して次の文法を作成しました。
ただし、サンプルの解析はエラーで失敗します(4,3) Syntax error, expected: INDENT
誰かが私が間違っていることを特定できますか?