Я хочу объявить с обозначением EBNF ключевым словом, то есть switch
.Объявить нечувствительное к регистру ключевое слово с EBNF
<keyword_switch> ::= "switch";
Есть ли способ объявить ключевое слово как нечувствительное к регистру без объявления всех возможных комбинаций букв?
Я думаю, что следующее заявление правильно (но unsire, я новичок с EBNF):
<keyword_switch> ::= ("S"|"s")("W"|"w")("I"|"i")("T"|"t")("C"|"c")("H"|"h");
, но это не очень читаемым. Есть ли еще более простой способ?
Но он не будет чувствителен к регистру. Если нет простого решения, я сохраню свой код для реальной нечувствительности к регистру. – Jepessen
Да, это не так. Для реального случая безвредности ANTLR, например, имеет [Aa] токены или фрагменты - http://stackoverflow.com/a/22160240/4007818 – rns
С другой стороны, у Marpa есть модификаторы:: ic и «i» для реальной нечувствительности к регистру - https://metacpan.org/pod/distribution/Marpa-R2/pod/Scanless/DSL.pod#Single-quoted-strings – rns