antlr3

    0

    1答えて

    私はunicodeをサポートする小さなDSLのantlr3文法を書こうとしていますが(ドイツ語のウムラウト、äöüÄÖÜßには必要です)、うまくいかないようです。私は(うまく動作します)「Xayの」または「Xayの」のようなUnicode文字の任意のシーケンスに一致することになっている最小限のテスト文法、書いた (しません。) がここにあります文法: line 1:1 mismatched cha

    2

    1答えて

    文字列変数の宣言には次の文法を書いています。文字列は一重引用符間の何かのように定義されますが、文字列値に単一引用符を追加するには、$文字を使用してエスケープする方法が必要です。 grammar test; options { language = Java; } tokens { VAR = 'VAR'; END_VAR = 'END_VAR';

    0

    1答えて

    この問題は何度も起こりました。 私は完全に問題を完全に理解していません。 私の構文は次のようになります。 grammar Syntax; options { language = Java; backtrack = true; } rule: ('syntax' (INTEGER | HEX) ';')? (structure | packet)+; struct

    1

    1答えて

    たとえば最大8桁の整数だけを受け入れるLexerを作成する必要があります。このように書くのではなく、これを行うための代替手段はありますか? INTEGER : (DIG | DIG DIG | DIG DIG DIG | ...)

    5

    1答えて

    私は最近The Definitive ANTLR Referenceを購入しました。ANTLRの使用を開始することに興奮しています。第一章で は、この文法が示されている: grammar T; options { language = Java; } r : 'call' ID ';' {System.out.println("invoke " + $ID.text);} ;

    1

    1答えて

    要約:ANTLRで動的変数を実装するにはどうすればよいですか? 私は基本的なANTLRの質問でもう一度あなたに来ます。 私はこの文法があります grammar Amethyst; options { language = Java; } @header { package org.omer.amethyst.generated; import java.ut

    1

    1答えて

    私は演算子の優先順位を持たない文法を作ろうとしていますが、1つの演算子を使うか、かっこで囲むかのどちらかが必要です。 (簡略化のために有効な演算子のリストの代わりにid|int_literal etcと+の代わりにtestを使用)。したがって、たとえば: test + test ///valid! (test + test) + test ///valid! (test + test) + (

    1

    1答えて

    Antlr 3.2を使用していますが、コメント行を無視する文法を書くのに問題があります。具体的には、コメント行が入力の最後の行で、その後に改行がない場合はエラーになります。 私の入力は効果的なアセンブリ言語です。コメントは、セミコロンで行のどこからでも始まり、行の最後に移動します。他のすべてはコマンドとして解析されます。 問題を呈する私の文法の切開のバージョンは次のとおりです。 grammar T

    1

    1答えて

    最初のルールは動作しません。それは 'ID1.ID2.ID3.ID4.ID5'のようなものを処理する必要があります。 しかし、他のルールは期待どおりに機能します。何が問題なの? grammar testInt; data_source: (ID '.' ID '.' ID ('.' ID)+)=>program_ref | (ID '.' ID '.' ID)=>var_r

    8

    1答えて

    グローバルスコープまたは@メンバー宣言のどちらの変数を宣言したいですか?彼らは同じ目的のために働くことができると私には思われますか? UPDATEここに私が何を意味するのかを説明する文法があります。 grammar GlobalVsScope; scope global{ int i; } @lexer::header{package org.inanme.antlr;} @p