几天前我开始玩 xtext 并且刚刚浏览了教程。也许解决方案已在某处的参考资料中有所提及,但我无法很快得到它。
我的问题是这个。我试着写一个简单的语法,混合在org.eclipse.xtext.common.Terminals
. 然后我想像这样插入一个 cusotm 终端FILE_NAME
:
terminal FILE_NAME:
( !('/' | '\\' | ':' | '*' | '?' | '"' | '<' | '>' | '|') )+
;
这基本上就是在 Windows 下允许的文件名。但是,通过这样做,继承的规则(如 ID、INT 等)将永远不会匹配,因为它们总是在自定义终端之后生成。
可以优雅地避免这种问题吗(尽可能不重复和尽可能普遍)?提前致谢!