7

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

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

假设我有语法

:start ::= script
identifier ~ [\w]+
script ::= 'script' identifier code
code ::= command*
command ::= 'run' | 'walk' | 'stop'

如何使其匹配任何script,ScriptSCRIPT任何其他小写和大写字母组合?

4

1 回答 1

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#Character-classes

于 2013-07-09T04:27:04.197 回答