使用ANTLR4解析字符串

时间:2016-06-21 17:51:07

标签: antlr antlr4

我正在尝试使用以下结构解析字符串:

  

客户:Heli Maintenance Ltd,网站:总部,设备:ORDERS-W10

并且想要提取ClientName,SiteName和DeviceName。

我定义了以下语法。

grammar AuditIdentifier;

row: 'Client:' customer ',' 'Site:' site ',' 'Device:' device '\r'? '\n';

customer : TEXT | STRING  ; 
site : TEXT | STRING  ;

device : TEXT | STRING  ;

TEXT: ([a-zA-Z0-9]|' ')+  ;   
STRING: '"' (ESC|.)*? '"' ; 
fragment ESC: '\\"' | '\\\\' ; // 2-char sequences \" and \\ 
WS  :   [ \t\n\r]+ ->
skip ; COMMA: (',')->skip;

然而它似乎没有按预期运行。它只识别客户标签。 当我尝试使用示例文本运行时,这是我的grunt输出。 客户:Heli Maintenance Ltd,网站:总部,设备:ORDERS-W10

grunt工具还会输出以下错误: 客户:Heli Maintenance Ltd,网站:总部,设备:ORDERS-W10 第1:34行令牌识别错误:':' 第1:55行令牌识别错误:':' 第1:63行令牌识别错误:' - ' 第1:29行丢失'网站:'在'网站'

第1:48行缺少'设备:''设备'

0 个答案:

没有答案