問題タブ [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.

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

java - ANTLR3 TreeParser で行番号を取得する方法

ANTLR3 ツリー文法で行番号を取得しようとしています (ANTLR3 によって生成されたコードは TreeParser クラスのものです)。
Googleは、悲しいことにANTLR3では機能しないANTLR2のソリューションのみを見つけました。
明確にするために、.g ファイル自体の行番号にアクセスしようとしています。

メソッドを上書きするか、クラスを拡張する必要があると思いますが、どちらかわかりません。

事前にt​​nx

編集:Java APIを使用していることを指摘する必要があります

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

antlr - Antlr3のすべての文法オプションはどこにありますか?

Antlr2には、設定できる文法オプションが多数ありました(参照)。現在、Antlr3には、オプションの量の3分の1があります(参照)。

だから私はこれに関して2つの質問があります:

  1. なぜこれほど多くのオプションが削除され、そのうちのいずれかが戻ってくるのか誰かが知っていますか?
  2. Antlr3には、これらすべてのオプションがなくても、Antlr2ができることを実行する機能がありますか?

2番目の質問をより具体的に言うと、いくつかのことができるようになりたいと思います。まず、生成されたレクサークラスとパーサークラス(つまり、Antlr2オプション "classHeaderPrefix")の可視性を変更したいと思います。

次に、「&keyword&」と「&k ey wo rd&」の両方が一致するなど、特定のキーワード内で見つかった空白トークンを無視できるようにしたい(つまり、Antlr2オプション「ignore」だと思いますか?)。

最後に、特定のキーワードで大文字と小文字を区別しないようにします(つまり、Antlr2オプション "caseSensitive")。

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

c - エラー報告のために例外をスローするのと同等のAntlr3 Cランタイムは何ですか

私は Antlr 2.X と Antlr 3.1.X の CSharp と python ターゲットにかなり精通しています。

しかし、私は現在、プロジェクトに Antlr 3 C ターゲットを使用することを余儀なくされています。

私の問題は、文法またはツリー文法のエラーをどのように報告するかです。

トークンに一致するルールを考えて、それをマップに入れます。トークンが一意であることを確認したいと考えています。通常、トークンが既にマップにある場合は例外をスローし、パーサーの外部で例外をキャッチしてエラーを報告します。

次のルールに相当する Antlr C ランタイムは何ですか?

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

java - AntlrにレクサーをインポートするとNullPointerExceptionが発生するのはなぜですか?

私はantlr3とAntlrworksを使用しています。これが私の設定です:

レクサーベース//WS、数値などの基本的なトークンが含まれています。

レクサー固有//私の言語固有のトークンが含まれています-ANDはベースレクサーから派生しています

パーサー固有の//私の言語のパーサー

結合された文法->特定のレクサーと特定のパーサーをインポートします

生成すると、常にNPE(Java)を取得します。その理由は、生成された特定のレクサーのベースレクサーへの参照が初期化されていないためです。

私は何かが足りないのですか?

0 投票する
3 に答える
259 参照

antlr - [Foo]-[Bar]-[Baz][X]-[Y][Z]のantlr文法

私はを可能にする文法を定義しようとしています

これを1つのセットとして解析したいと思います。

私は現在持っています

文法サンプル;

しかし、これはエラーになります

そして図として私は得る ここに画像の説明を入力してください

そして、私はこの鉄道図を取得します

ここに画像の説明を入力してください

どうすればこれを修正できますか?

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

antlr - Antlrルールの優先順位

まず、この文法は意味がないことを知っていますが、ANTLRルールの優先順位の動作をテストするために作成されました

この文法に「最初のトークンはここに\n2番目のトークンはここに」という入力を与えると、second_ruleと一致します。

開始点であるrule_order_listのsecond_ruleの前にfirst_ruleが表示されるため、最初のルール、次にany_left_over_tokensに一致すると予想していました。なぜこれが起こるのか誰かが説明できますか?

乾杯

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

antlr - ANTLR3:パラメーターとセマンティック述語(「シンボルが見つかりません」、「タイプの不正な開始」)

ANTLR3で「ブランチ」を実現したい。

私は使用して考えました

DFA45.specialStateTransition(...)トリックは実行されますが、生成されたソースにパラメータがないため、「シンボルが見つかりません」および「タイプの開始が不正です」というコンパイルエラーが発生しますis_a

=>¹を省略したり、のを省略したりしてみ$ました$is_a

との最初のセットは互いに素ではありませんab

実際bにはタイプ((C) => c) | aです。

{...}? => ...¹)との違いがわからないので{...}? ...

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

antlr - antlr3のツリー文法でトークンのリストをキャッチする方法は?

たとえば、ダミー言語を取り上げました。これは、1つ以上の「!」を受け入れるだけです。そのレクサーと文法の規則は次のとおりです。

ご覧のとおり、これは「!」を受け入れる言語を表しています。また '!!!' また '!!!!!'...

ASTを構築するためにいくつかの意味のあるクラスを定義しました。

これがツリーの文法です。

生成されたクラスをテストするためのサンプルデータを含むメインクラスコード:

ただし、出力される最終出力は、期待される「!!!」以外は「!」です。これは主に、このコード行が原因です。

上記の$nは1つの「!」のみをキャプチャしました。「!」の3つのトークンすべて、つまり「!」のリストをキャプチャする方法がわかりません。$nで。誰か助けてくれる人はいますか?ありがとう!

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

java - このANTLR3ログメッセージの意味は何ですか?

Antlr3は、System.out他のすべてを正しく実行しながら、に次の出力を生成します。

どんな内容ですか?

ps。問題は、構文解析中に時々私が通過することRecognitionException()です。nullこれの結果のように見えます。代わりに、null意味のあるメッセージがあるはずですが、RecognitionExceptionにはそのようなコンストラクターがありません。何をすべきか?


Foo同じパッケージのどこかにあるクラス:

今度はユニットテスト:

出力は次のとおりです。

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

java - antlr3 の解析を「前方」にする方法は?

Antlr3 で次の文法を解析しようとしています。

これは私の.gファイルです(その一部):

うまくいきません。Antlr3 は'.'、 afterをの先頭ではなく、 のATOM一部として扱います。どうすれば解決できますか?nameDOTS