-3
我正在使用最新的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;
}
我假設它的文法的錯誤,導致一個又一個被編譯和工作的罰款。你能指出我可能的錯誤嗎?
絕對廢話!我已經告訴過你這個問題可能出現在你的自定義代碼中:你只是不想聽(並不是特別感激,並且試圖催促我回答你!)。缺少「@lexer :: header」絕對不是問題所在:讓讀者明白本問答。 –
如何解釋這樣一個事實,即在不改變我的自定義代碼中的任何行的情況下,僅在語法邏輯中更改後纔開始工作? – rideronthestorm
我認爲你只是因爲你是一個惡毒的孩子而做出來的。事實上,你以「我看到這裏沒有人對ANTLR知道任何事情」開始你的「答案」。「_足夠告訴我。寮步再見。 –