在ANTLR中未验证对包含点(.)的输入字符串的分析
我有一个应用程序“abc”,我正试图解析一个作业(输入字符串) 如果作业名称包含点(.),则显示作业状态的abc抛出错误 Lexar的片段:在ANTLR中未验证对包含点(.)的输入字符串的分析,antlr,Antlr,我有一个应用程序“abc”,我正试图解析一个作业(输入字符串) 如果作业名称包含点(.),则显示作业状态的abc抛出错误 Lexar的片段: DOT : '.' ; ID: [a-zA-Z0-9_]([a-zA-Z0-9_@{}()#$%^~!`'-] | '[' | ']' )*; 错误消息: 命令语法错误。无关输入“.1”应为{,作业,作业所有者,作业类型,作业状态} 有人能建议我需要做哪些更改吗。根据您的具体要求,在ID中指定一个允许的字符,或者更改 (id | DOT | strin
DOT : '.' ;
ID: [a-zA-Z0-9_]([a-zA-Z0-9_@{}()#$%^~!`'-] | '[' | ']' )*;
错误消息:
命令语法错误。无关输入“.1”应为{,作业,作业所有者,作业类型,作业状态}
有人能建议我需要做哪些更改吗。根据您的具体要求,在
ID
中指定一个允许的字符,或者更改
(id | DOT | stringWithQuotes)
到
现在,您可以使用带引号的字符串、标识符或单个点-而不是标识符与点混合。谢谢@Jiri Tousek,我会检查这一点。
DOT : '.' ;
ID: [a-zA-Z0-9_]([a-zA-Z0-9_@{}()#$%^~!`'-] | '[' | ']' )*;
(id | DOT | stringWithQuotes)
(
id (DOT id)*
| stringWithQuotes
)