問題タブ [antlr3]
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.
antlr - ANTLRv3: Setting a custom Lexer and Parser Class names
Is there a way to specify custom class name (meaning independent of the grammar name) for the ANTLRv3 generated Parser and Lexer classes?
So in the case of
Automatically it would crate MDDParser and MDDLexer, but I would like to have them as MDDBaseParser and MDDLexer.
java - これをマップしたり、Gmail のようにカレンダーに追加したりするにはどうすればよいですか?
Gmail はこの機能をどのように実装していたでしょうか?
そのような機能を実現するためには、どのような技術が必要ですか? 自然言語処理と関係ありますか?
ポインタやプログラミング リソースは役に立ちますか?
それは、言語に依存しないか、任意の言語に固有のものである可能性がありますか? Java/Python である可能性があります。
上記を達成するために、彼らはantlrなどで何かをしていると思いますか?
inheritance - ANTLR-3の親クラスを変更するにはどうすればよいですか?
デフォルトでは、ANTLR-3を使用して生成されたパーサーはorg.antlr.runtime.Parserから拡張されます。代わりにカスタムクラスを拡張するにはどうすればよいですか?
antlr - ANTLR字句解析が「...」とフロートで混乱する
ANTLRレクサーは、範囲式での私の試みを"1...3"
フロートとして扱っていると思います。次のトークン定義を使用したときのように、式"x={1...3}"
はレクサーから出てきます。"x={.3}"
FLOATを変更して整数をチェックするようにすると、次のようになります。
次に、式"x={1...3}"
は正しくトークン化されます。誰かが私がこれを修正するのを手伝ってもらえますか?
ありがとう!
antlr - この antlr の例は正しく機能していません
この ANTLR の例は、入力 "1;" を解析しません。. 理由を説明できますか?「11;」を解析します。
c# - C#ターゲットでAntlrのパーサーの現在のバイト位置を取得するにはどうすればよいですか?
Antlr 3を使用して何かを解析するときに、ストリーム内の現在のバイト位置に興味が
あります。同様の質問があることを確認しましたが、実際の答えはありませんでした。だから私はもう一度やってみます。
トークンインデックス、行のバイト位置などには興味がありません...
誰か教えてもらえますか?一部のコードを記述/オーバーライドする必要があることは明らかです。誰かが書くための特定のコードを持っていますか?私はC#を使用しています。
antlr - ANTLR: stringTemplate の使用
(私は Antlr の Noob です)... StringTemplates で文法を取得するのに苦労しています。基本的に、私は小さな DSL を書こうとしています。思い通りの文法を取得できます (正しく解析されます) が、ターゲット コードの生成をテンプレートで動作させることができません。だからここに私の文法のスニペットがあります:
本質を理解するために、かなり単純化しました。基本的に、lex/parse が「GlobalName: Foo」に遭遇したときに、「localConf」と呼ばれる StringTemplate に基づいてテキストを吐き出したいのです。とても簡単です。
それでは、テスト アプリでパーサーを起動して、入力ファイルを処理してみましょう。
パーサー コードをステップ実行して、テキストが正しく識別され、stringTemplate が正しく適用されていることを確認できます。問題は、この 'globalName' ルールが 'conf' のサブルールであるため、直接実行されないことです。メソッドはそれを見つけて返すだけです。しかし、'Conf' メソッドの呼び出しは、サブルールからの戻り値を保持しません。これは、最終行の結果のテンプレートが null であることを意味します。
文法で「conf」ルールを取り除き、「globalName」を直接呼び出すと、機能します (スタック上の唯一のルールであるため)。しかし、明らかに複数のルールが必要です。Java でパーサーを生成しましたが、同じことを行います。
テンプレート アプローチが Antlr でどのように機能するかについて、基本的な概念を理解していないことは簡単にわかります。これは私の問題だと確信していますが、私は自分が何を間違っているかを知るのが苦手です...私が見た例は、実際のコードのテンプレート出力を実際に示していません.
parsing - ログファイルの解析を支援する(ANTLR3)
ゲームAionのログファイルを解析するための文法を書くための少しのガイダンスが必要です。私はAntlr3を使用することにしました(それは仕事をすることができるツールのようであり、それを使用することを学ぶのは私にとって良いことだと思ったからです)。ただし、ログファイルが正確に構造化されていないため、問題が発生しました。
解析する必要のあるログファイルは次のようになります。
ご覧のとおり、ほとんどの行はタイムスタンプで始まりますが、例外があります。Antlr3で実行したいのは、タイムスタンプで始まる行のみを使用し、他の行はサイレントに破棄するパーサーを作成することです。
これは私がこれまでに書いたものです(私はこれらのものの初心者なので、笑わないでください:D)
したがって、必要なのは、タイムスタンプのない行のエラーを生成せずにこれを解析する方法の例です。
ありがとう!
antlr - antlr3のあいまいさ
いくつかの簡単なルールを書こうとすると、このあいまいさが生じます
あいまいさは理解できますが、先読みがこれを解決しない理由がわかりません。
私は簡単な解決策を持っていますが、それは好きではありません:
ルール:(nsf1(nsf2 |whatever2))| (whatever1(nsf2 | what2));
誰かがもっとエレガントな解決策を持っていますか?
どうもありがとう、クリス
c - Cターゲットでantlr3を使用して特定のステートメントを解析する
C ターゲットでツリー文法を使用する antlr3 についていくつか質問があります。
インタープリター (関数、変数、ブール式、数学式は問題ありません) をほぼ完成させ、最後に最も難しいステートメント (if、switch など) を保持しました。
1) 単純なループ文を解釈したい:
私は多くの例を見てきましたが、ツリー ウォーカーについては何も見ていません (マクロ MARK() / REWIND(m) + @init / @after を含むトピックのみがここにありますが、機能していません (antlr エラーがあります: "unexpected node at offset 0 "))。Cでこのステートメントをどのように解釈できますか?
2) 単純な if ステートメントを使用した同じ質問:
問題は、条件が false の場合にステートメントをスキップし、他の elseif/else ステートメントをテストすることです。
3) スクリプトを停止できるステートメントがいくつかあります (「break」や「exit」など)。ツリー ウォーカーを中断して次のトークンをスキップするにはどうすればよいですか?
4) レクサーまたはパーサーのエラーが検出されると、antlr はエラーを返します。しかし、自家製のエラーメッセージを作成したいと思います。パーサーがクラッシュした行番号を取得するにはどうすればよいですか?
詳細が必要な場合はお尋ねください。
どうもありがとうございました(そして私の下手な英語をお詫びします)