【发布时间】:2014-09-12 16:17:27
【问题描述】:
在 ANTLR 中有没有办法将某些标记标记为具有规范输出?
例如,给定语法(摘录)
words : FOO BAR BAZ
FOO : [Ff] [Oo] [Oo]
BAR : [Bb] [Aa] [Rr]
BAZ : [Bb] [Aa] [Zz]
SP : [ ] -> channel(HIDDEN);
words 将匹配“FOO BAR BAZ”、“foo bar baz”、“Foo bAr baZ”等。
当我调用TokenStream#getText(Context) 时,它会返回连接在一起的标记的实际文本。
有没有办法“规范化”这个输出,这样无论输入是什么,所有FOO 标记都呈现为“Foo”,BAR 标记呈现为“Bar”,BAZ 标记呈现为“巴兹”(例如)?
鉴于上述任何输入,我希望输出“Foo Bar Baz”。
【问题讨论】: