antlr

    1

    1答えて

    コンパイラ関連のクラスのプログラミング割り当ての一部として、私は教師にフレックス・バイソンの代わりにANTLRを使用するように提案しました。ここで彼は私に欲しいもの、つまり字句解析、構文解析、意味解析(以下の画像の最初の3つのステップ) ANTLRを使ってそのようなアナライザを作るのはとても簡単だと確信しています。コンパイラの中間コードとオブジェクトコードの生成フェーズ(以下の画像の残りのフェーズ

    0

    1答えて

    私はPython 3.4.2でANTLR4を学んでいます。ここでの目標はルールの{}内に複数行のPythonコードを書くことです。私は、パーサーのルールを定義するとき、私は、次のコードブロックを持っている:コンパイルして「:予期しないインデント印刷( 『A』)IndentationError」を提起しない ... term : term '*' fact | term '/'

    0

    1答えて

    構文解析中にすべてのパスが関数内で復帰していることを確認する方法を知りました。だから私はレクサー RETURN: 'return'; PRINT: 'print'; IF:'if'; ELSE: 'else'; THEN:'then'; PLUS: '+'; MINUS:'-'; EQUALS: '=='; DIGIT: '0'..'9'; OPEN:'{'; CLOSE:'}

    1

    1答えて

    ANTL文法: grammar Java; // Parser compilationUnit: classDeclaration; classDeclaration : 'class' CLASS_NAME classBlock ; classBlock: OPEN_BLOCK method* CLOSE_BLOCK ; method: methodRet

    1

    1答えて

    次の文法を考慮してください。オペレータの優先順位に問題があります。たとえば、res = 2 * a + bはres = 2 *(a + b)と同じ構文解析ツリーを持ちます。私は問題がどこにあるのか知っていますが、相互に残った再帰のない「美しい」解決策は私の心にはありません。あなたは少し私を助けてくださいできますか?文法はカスタムビジターと一緒に使用されます。優先順位、左再帰、と結合性に対処The

    0

    1答えて

    ANTLRをC#で使用して、Cのような構造の単純なパーサーを作成しています。ランタイムバージョンは4.7です。 文法のようになります。私はこのようなパーサ実行すると structDef : STRUCT ID OPENBLOCK (fieldDef)+ CLOSEBLOCK ; fieldDef : (namespaceQualifier)+ ID ID SEMICOLON ; namespa

    0

    1答えて

    私は、この質問が何度も尋ねられたことを知っています。私はANTLRを使って文法を作ろうとしています。 Predicate : LOWERCASE | Predicate VarChars ; VarChars : LOWERCASE | UPPERCASE; fragment LOWERCASE : [a-z] ; fragment UPPERCASE : [A-Z] ;

    0

    2答えて

    私は同じ単語にマッチする複数のレクサールールを持つantlr文法を持っています。レキシング中に解決することはできませんが、文法ではあいまいになります。 例: conversion: NUMBER UNIT CONVERT UNIT; NUMBER: [0-9]+; UNIT: 'in' | 'meters' | ......; CONVERT: 'in'; 入力:1 in in mete

    0

    1答えて

    ファイルの次の行を解析して、学生名と年齢を別々に識別したいと考えています。 Student Tim Jonh (25) Student Mack Woo (30) 年齢は数字で、名前には空白が含まれている場合とそうでない場合があります。私は上記のANTLR文法の後に作成しました。 しかし、これは複数の単語として名前を解析します。しかし、私はそれを "Tim Jonh"や "Mack Woo"