我想用EBNF表示法声明一个关键字,即switch
。
<keyword_switch> ::= "switch";
有没有办法将关键字声明为不区分大小写而不声明所有可能的字母组合?
我认为以下声明是正确的(但是,我是EBNF的新手):
<keyword_switch> ::= ("S"|"s")("W"|"w")("I"|"i")("T"|"t")("C"|"c")("H"|"h");
但它的可读性不高。还有另一种更简单的方法吗?
答案 0 :(得分:1)
<keyword_switch> ::= ("S"|"s")("W"|"w")("I"|"i")("T"|"t")("C"|"c")("H"|"h");
似乎可以使用antlr - http://www.antlr3.org/pipermail/antlr-interest/2007-August/023267.html
看似异端,我建议
<keyword_switch> ::= "switch" | "Switch" | "SWITCH";
假设sWitch
和sWiTcH
等几乎不是用户所需要的。