我正在尝试学习 xtext,发现 ANY_OTHER 完全令人困惑,并且几乎没有问题。
我的 .xtext 文件中只有一个作品。
document: text = '<' ANY_OTHER* '>';
当我将其作为“eclipse 应用程序”运行时,以下输入正常工作:
<>
< >
<.>
<....>
<.. ..>
但以下出现失败:
<a>
错误无关输入 'a' 期望 '>'。
Q1)为什么 ANY_OTHER 匹配文字“。” 特点?
我尝试将 ANY_OTHER 覆盖为
terminal ANY_OTHER: .;
我相信这是Common Terminals here中的原始定义。
现在行为发生了变化。输入错误离开了。但如果我尝试
<aa>
, 给出错误无关输入 'aa' 期望 '>'。
Q2) 为什么覆盖 ANY_OTHER 会改变行为?
Q3)为什么是“。” 与“a”的处理方式不同?<..> 被接受,但不是。