尝试检测语法中的空格和制表符时的奇怪行为
Strange behaviour when trying to detect spaces and tabs in grammar
我无法检测语法中的 space 和制表符。我的 space 和制表符 未 隐藏在我的语法中。
我有语法:
Model: defs+=Def*;
Def:
'actor' WS ID NEWLINE
;
还有一个终端:
terminal WS : (' '|'\t')+;
但我似乎无法正确注意到白色space。我可以在'actor'和ID之间输入任何space和制表符的组合,只要有多个space即可。如果我在它们之间只输入一个 space,我就会遇到问题。例如,这有效:
Actor Bob
但是当我只尝试一个 space:
Actor Bob
我收到这样的错误:
- extraneous input 'Bob' expecting RULE_NEWLINE
- mismatched input ' ' expecting RULE_WS
错误消息表明您在语法中某处有一个白色-space用作关键字。你必须删除那个。
我无法检测语法中的 space 和制表符。我的 space 和制表符 未 隐藏在我的语法中。
我有语法:
Model: defs+=Def*;
Def:
'actor' WS ID NEWLINE
;
还有一个终端:
terminal WS : (' '|'\t')+;
但我似乎无法正确注意到白色space。我可以在'actor'和ID之间输入任何space和制表符的组合,只要有多个space即可。如果我在它们之间只输入一个 space,我就会遇到问题。例如,这有效:
Actor Bob
但是当我只尝试一个 space:
Actor Bob
我收到这样的错误:
- extraneous input 'Bob' expecting RULE_NEWLINE
- mismatched input ' ' expecting RULE_WS
错误消息表明您在语法中某处有一个白色-space用作关键字。你必须删除那个。