我需要描述包含一些单词的令牌。该单词可以包含英文字母和其他一些特殊符号,但不应以某些已定义的英文字母开头(例如,“O”)。
看起来我需要 AND_SYMBOL_IN 操作什么的,但我在 javacc 文档中没有找到它。我需要这样的行为:
TOKEN : { < LETTERS: (
(~["O", "-"] AND_SYMBOL_IN ["a"-"z","A"-"Z","-",".","&","|","0"-"9"])? (["a"-"z","A"-"Z","-",".","&","|","0"-"9"])+
) > }
我可以创建特殊令牌(如下所示),但我相信还有更好的决定,不是吗?
TOKEN : { < #LETTEREX: (
["a"-"z","A"-"N","P"-"Z",".","&","|","0"-"9","-"]) > }
TOKEN : { < LETTERS: (
(< LETTEREX > ) (< LETTEREX > | ["O"])+
) > }