リモートパーサーへの接続を待機しているAntlrタイムアウト

antlr antlrworks connection grammar timeout
リモートパーサーへの接続を待機しているAntlrタイムアウト

最新のANTLRを使用しています。 この文法をデバッグしようとすると、このエラーメッセージが表示されます。

grammar Grammar;

options {   language = Java;
}

@header {
package parser;
import java.util.HashMap;
import viewmodel.*;
import java.util.List;
}

@members {
/** Map variable name to Integer object holding value */
HashMap memory = new HashMap();
}

prog returns [DiagramNode node]
    :   clas
        {$node = $clas.node;}
    ;

clas returns [DiagramNode node]
    :VISIBILITY* CLASSORINTERFACE name=NAME '{' classDef '}' NEWLINE
        {$node = $classDef.node;
        $node.setName(name.getText());
        }
    ;

classDef returns [DiagramNode node]
    :{$node = new DiagramNode();    }
    fieldDef ';' NEWLINE?
        {$node.getFields().add($fieldDef.field);}
    ;

fieldDef returns [DiagramField field]
    :{$field = new DiagramField();}
    type=NAME name=NAME ';' NEWLINE?
        {$field.setType(type.getText());
        $field.setName(name.getText());
        }
    ;


VISIBILITY
    :   ('public' | 'private' | 'protected');
CLASSORINTERFACE
    :   ('class' | 'inerface');
NAME
    :   ('a'..'z'|'A'..'Z') ('a'..'z'|'A'..'Z'|'0'..'9') *;
INT :   '0'..'9'+ ;
NEWLINE:'\r'? '\n' {skip();};
WS  :   (' '|'\t')+ {skip();} ;

入力は次のとおりです。

class Abc {
    Type1 Name1;
    Type2 Name2;
}

私はそれが文法のせいだと思っています。別のものがコンパイルされてうまく機能していたからです。 エラーの可能性を指摘してもらえますか?

  -3  0


ベストアンサー

ANTLRについて何かを知っている人はここにいないようです。 幸いなことに、私は自分でそれを見つけました。 問題の原因は、文法内のロジックでした-正確なことはわかりませんが、インポート、変数、引数、戻り値の使い方が間違っているか、最終的にレクサーのパッケージ宣言が欠落している可能性があります:

@lexer::header{
    package parser;
}

-5


タイトルとURLをコピーしました