Antlr 超时等待连接到远程解析器
Posted
技术标签:
【中文标题】Antlr 超时等待连接到远程解析器【英文标题】:Antlr Time-out waiting to connect to the remote parser 【发布时间】:2011-11-20 14:20:37 【问题描述】:我正在使用最新的 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;
我假设这是语法的错误,因为另一个正在编译并且工作正常。你能指出可能的错误吗?
【问题讨论】:
【参考方案1】:我看到这里没有人知道 ANTLR。幸运的是我自己想通了。问题的原因是语法内部的逻辑 - 我不知道到底是什么,可能是错误的导入,使用变量、参数或以错误的方式返回,或者最终缺少 lexer 的包声明:
@lexer::header
package parser;
【讨论】:
一派胡言!我已经告诉过您问题可能出在您的自定义代码中:您只是不想听(并且不是特别感激并且试图催促我回答您!)。没有@lexer::header
绝对不是问题:让阅读此问答的任何人都清楚这一点。
您如何解释这样一个事实,即无需更改我的自定义代码中的任何行,它仅在语法逻辑更改后才开始工作?
我认为你只是在编造它,因为你是一个恶毒的孩子。您以 “我看到这里没有人对 ANTLR 有任何了解。” 开始您的“答案”这一事实告诉了我足够多的信息。再见。
该声明基于这样一个事实,即几天后该主题没有答案。希望我让它自己工作。当然,您可以考虑到已经有某种答案的事实,但是您猜怎么着?你删除了它,因为我对它不够感激。是啊,我是个孩子,但你的行为很成熟。亲爱的 Bart Kiers,我没有义务感谢我从你那里得到的任何无用的回答。如果它解决了我的问题,我会将其标记为已接受的答案。更何况你开始无缘无故地冒犯我(就像一个“讨厌的孩子”)。
正确,您没有有感谢任何人在您的问题上花费的时间。但你知道吗,这样做只是普通的礼貌。请注意,我没有删除我的答案,因为您没有花时间表示感谢或接受答案:我真的不在乎。事实上你没有注意我的建议和你试图催我回答你的事实(你已经删掉了,但在历史记录中仍然可见)是我删除的原因我的答案。仅作记录:这个公认的答案不是任何超时问题的解决方案。任何阅读此书的人,... TBC以上是关于Antlr 超时等待连接到远程解析器的主要内容,如果未能解决你的问题,请参考以下文章
如何让 C 语言中的 ANTLR3.5 生成的解析器在 MVS EBCDIC 环境中工作?