与我之前关于使用正则表达式进行不区分大小写的关键字匹配的问题有关。
有可能在Marpa中不区分大小写地匹配字符串吗?如果是,如何?
假设我有语法
:start ::= script
identifier ~ [w]+
script ::= 'script' identifier code
code ::= command*
command ::= 'run' | 'walk' | 'stop'
如何使其匹配script
、Script
、SCRIPT
中的任何一个或任何其他小写字母和大写字母的组合?
没有一种简单的方法可以指定不区分大小写。当然,您可以将字符类串在一起:[sS][cC][rR][iI][pP][tT],但这相当尴尬。
对不起。不区分大小写的字符串将是一个很好的添加功能。
更新:从最新的索引版本2.076000开始,Marpa::R2现在为字符串和字符类都有一个:ic修饰符,使它们不区分大小写。在文档中,请参阅https://metacpan.org/pod/Marpa::R2::Scanless::DSL#Single-带引号的字符串和https://metacpan.org/pod/Marpa::R2::Scanless::DSL#Character-类。