Регистронезависимое сопоставление в Marpa
Связанный с моим предыдущим вопросом о регистрозависимом сопоставлении ключевых слов с использованием регулярных выражений.
Можно ли сопоставлять строки без учета регистра в Marpa? Если так, то как?
Предположим, у меня есть грамматика
:start ::= script
identifier ~ [\w]+
script ::= 'script' identifier code
code ::= command*
command ::= 'run' | 'walk' | 'stop'
Как я могу сделать так, чтобы он соответствовал любому из script
, Script
, SCRIPT
или любая другая комбинация строчных и прописных букв?
1 ответ
Не существует простого способа указать регистронезависимость. Конечно, вы можете связать воедино классы символов: [sS] [cC] [rR] [iI] [pP] [tT], но это довольно неловко.
Сожалею. Нечувствительные к регистру строки будут хорошей возможностью для добавления.
ОБНОВЛЕНИЕ: Начиная с 2.076000, последней индексированной версии, Marpa::R2 теперь имеет модификатор: ic для строк и классов символов, что делает их без учета регистра. В документах см. https://metacpan.org/pod/Marpa::R2::Scanless::DSL и https://metacpan.org/pod/Marpa::R2::Scanless::DSL.