Регистронезависимое сопоставление в 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.

Другие вопросы по тегам