Marpa中不区分大小写的匹配

oni*_*ake 7 regex case-insensitive marpa

我之前关于使用正则表达式进行不区分大小写的关键字匹配的问题相关.

Marpa中是否可以不区分大小写地匹配字符串?如果是这样,怎么样?

假设我有语法

:start ::= script
identifier ~ [\w]+
script ::= 'script' identifier code
code ::= command*
command ::= 'run' | 'walk' | 'stop'
Run Code Online (Sandbox Code Playgroud)

我怎样才能使它符合任何script,Script,SCRIPT或更低和大写字母任何其他组合?

Jef*_*ler 3

没有直接的方法来指定不区分大小写。当然,您可以将字符类串在一起:[sS] [cC] [rR] [iI] [pP] [tT],但这非常尴尬。

对不起。不区分大小写的字符串将是一个很好的添加功能。

更新:从最新的索引版本 2.076000 开始,Marpa::R2 现在为字符串和字符类提供了 :ic 修饰符,使它们不区分大小写。在文档中,请参阅https://metacpan.org/pod/Marpa::R2::Scanless::DSL#Single-quoted-stringshttps://metacpan.org/pod/Marpa::R2::Scanless: :DSL#字符类