antlr4

    1

    1答えて

    がSQLで2つのESCAPEタイプです:?\は」AND '' 入力が好きなことがあります。 SELECT '\'', ''''; を、私はこの文法で文字列を解析: STRING_LITERAL : '\'' ('\\\'' | '\'\'' | ~'\'')* '\'' ; しかしANTLR入力エラーを解析し、このようなツリー:私もGREEDYとSTRING_LITERAL文法の別のタ

    0

    1答えて

    に一定のルールを必須にするにはどうすれば条件式をチェックする必要があり、次の文法を書きました。以下 例としては、私はこの文法を使用して達成したいものです。 test無効 test = 1有効 test = 1 and another_test>=0.2有効 test = 1 kasd y = 1無効(2つの条件がでAND/OR分離しなければならない) a = 1 or (b=1 and c)無効(

    0

    1答えて

    BUGSのANTLRv4文法で作業しています - 私のレポはhereです。特定のコミットへのリンクはあまり古くないはずです。 下記の最小コード例。 は、私は、入力規則が入力さT(ある場合tルートに沿って行くことが、入力は以下の文法のためTある場合idルートに沿って行きたいと思います。 grammar temp; input: t | id; t: T '('; id: ID; T: '

    4

    1答えて

    私はC#を使用してAntlr4で大きなファイル(約500MB)を解析しようとしています。しかし、私はOutOfMemoryExceptionを持っています。 私の現在のコードを以下に説明する: var path = GetInput(Path.Combine(DatFilePath)); // Build the large file var inputStream = new StreamRe

    -1

    1答えて

    ANTLRを使用して、クローン検出と削除システム用のパーサーとレクサーを構築しました。 プライベート、パブリック、プロテクトされたキーワードを区別しないように文法を構築したいのは、同じものと見なしたいからですが、これを実行しようとすると正しく入力されません。 linkからグラマーの.g4ファイルを取得しましたが、以下のようにいくつか修正しました。 PRIVATE : 'public' || 'p

    1

    1答えて

    私はANTLR4のパーサーの特定のエラーメッセージを取得したいと思います。 そして、私はエラーを処理する2つの方法があることを発見しました:errorListenerとerrorHandler。 // set error handler parser.removeErrorListeners(); parser.addErrorListener(new QueryErrorListener()

    0

    2答えて

    私はどのソースコードもASTに変換できることを理解します。今度はASTをソースコードに変換したいが、言語には依存しない。私を助けるツールはありますか? 言語に依存しないため、具体的にはpythonとjavaを意味します。

    0

    1答えて

    私はこれが不可能だと確信していますが、念のために尋ねたいと思います。 は、私は、共通のIDトークンの定義を持っている: ID: LETTER (LETTER | DIG)*; 問題は、私が解析する必要が文法で、あなたは同じように、オペランドとして単一の文字を持っているいくつかの命令があるということです。 は、 a + 4 しかし ab + 4 することはできません。 だから私のようなル

    0

    2答えて

    入力内容: 文法: grammar test; p : EOF; Char : [a-z]; fragment Tab : '\t'; fragment Space : ' '; T1 : (Tab|Space)+ ->skip; T2 : '#' T1+ Char+; マッチング結果がこれです: [@0,0:6='# abc',<T2>,1:0] <<<<<<<< PLA

    1

    1答えて

    私はAntlr4/CFGに新たなんだとフォーム (IDとIDとID(またはIDまたはIDまたはIDのブールクエリDSLのためのパーサを記述しようとしています)) ロジックはまた、形をとることができる (IDまたはIDまたは(IDとIDとID)) より複雑な例では、かもしれない: (((IDおよびIDおよび(IDまたはIDまたは(IDとID))))) (括弧の任意の量で囲む) 私は2つのことを試しま