小编use*_*800的帖子

在评估不符合我的语法定义的字符串时,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 ×1

antlr3 ×1

antlr4 ×1

antlrv3ide ×1

antlrworks ×1