标签: antlrv3ide

Eclipse中的Antlr IDE不起作用

我正在使用Antlr v3和java进行项目,并且在AntlrWorks中一切顺利,但是当我切换到eclipse的插件Antlr IDE时,解释器无法匹配我写的句子,告诉我不匹配.在我看来,它无法识别我在lexer中指定的要跳过的单词列表.然而,它在AntlrWorks中完美运行是一样的.

有什么建议?

我在eclipse中设置了antlr buider:Antlr Parser Generator v3.4

java eclipse antlr antlrv3ide

9
推荐指数
1
解决办法
8591
查看次数

Eclipse不会自动生成分析器和Lexer文件

我在Eclipse Indigo上使用了antlr-3.4-complete-no-antlrv2.jar版本的ANTLR.

我已经安装了ANTLR IDE插件以及ZEST和GEF.当我生成组合语法文件并添加标题,词法分析器标头和规则时,Eclipse不会生成Parser和Lexer文件.

如果我使用antlr-3.2.jar就可以了.我可以使用java -classpath antlr-3.4-complete-no-antlrv2.jar org.antlr.Tool Sample.g在Eclipse之外生成Lexer和Parser文件(使用antlr-3.4.*).

有没有办法在Eclipse版本3.4中启用它?

eclipse antlr antlr3 antlrv3ide

8
推荐指数
1
解决办法
2183
查看次数

ANTLR - 允许关键字之间的任何字符

我想为一种简单的语言定义语法.

该语言允许某种分配.

keyworda: this is the 1 keyword-A
keywordb: this is the second keywordb
...
Run Code Online (Sandbox Code Playgroud)

问题是,在关键字和':'任何char之后应该是可能的(关键字也是)

我尝试过很多东西,但我认为我仍然没有进入词法分析器和解析器思考...

我最后的想法失败了:

rule 
  :  'keyworda' ':' anychar* 'keywordb' ':' anychar* EOF 
  ;

anychar
  :  .
  ;

NEWLINE
  :  ('\r'? '\n') {$channel=HIDDEN;}
  ;
Run Code Online (Sandbox Code Playgroud)

编辑

首先:谢谢你的回答!

我通读了手册并查看了scott stanchfield的教程.

问题是,我没有得到"anychar"的东西!

你是对的,我上面提到的语法错了,因为我很着急.

这是一个更好的尝试.问题仍然是,Tokenizer在定义ala中识别例如keyworda

keyworda : this is keyworda.
keywordb : this is another key!
...
Run Code Online (Sandbox Code Playgroud)

语法:

rule
    :   KEYA ':' STRING_LITERAL* NEWLINE
        keybdefinition*
         EOF
    ;

keybdefinition
    :   KEYB ':' STRING_LITERAL* NEWLINE
    ;


KEYA: 'keyworda';
KEYB:'keywordb'; …
Run Code Online (Sandbox Code Playgroud)

antlr keyword antlrv3ide

4
推荐指数
1
解决办法
9988
查看次数

在评估不符合我的语法定义的字符串时,ANTLR不报告错误

这是我第一次与ANTLR合作在伦敦帝国理工学院开展项目,直到现在它才非常有用.我已经定义了一个简单的递归语法如下

grammar Hello;      

execution: workflow;

workflow : Task 
         | workflow OPERATOR workflow 
         |'(' workflow OPERATOR workflow ')'                        
         |'(' workflow OPERATOR workflow ')' (OPERATOR workflow)*                        
          ;


Task : 'T' ('0'..'9')+ | 'WF' ('0'..'9')+;

OPERATOR: 'AND' | 'OR'  | 'XOR' |';' ;

WS  :   [ \t\n\r]+ -> channel(HIDDEN) ; 
Run Code Online (Sandbox Code Playgroud)

评估字符串,如:

T6 ; (T4 AND T7) ; T5 ; ( (WF23 OR WF2) OR (T3 AND WF4) AND T4) AND T5 OR T11
Run Code Online (Sandbox Code Playgroud)

并且它完美地运行,当我尝试评估不正确的字符串时,我的问题就出现了

T6 ; (T4 AND T7) ; T5 ; ( …
Run Code Online (Sandbox Code Playgroud)

antlr antlrworks antlr3 antlrv3ide antlr4

3
推荐指数
1
解决办法
103
查看次数

标签 统计

antlr ×4

antlrv3ide ×4

antlr3 ×2

eclipse ×2

antlr4 ×1

antlrworks ×1

java ×1

keyword ×1