言語を作成しようとしていますが、大文字と小文字を区別したくない部分がいくつかあります。これは簡単なことだと思いますが、見つけることができませんでした。
編集:読み直すと、この質問を恥ずかしく思います。これが私が何を意味するかを説明する失敗したテストです。
リテラルの代わりに正規表現を使用してください。
lazy val caseSensitiveKeyword: Parser[String] = "casesensitive"
lazy val caseInsensitiveKeyWord: Parser[String] = """(?i)\Qcaseinsensitive\E""".r
(使用される正規表現構文の詳細については、java.util.Patternのドキュメントを参照してください。)
これを頻繁に行う場合は、Stringをポン引きして構文を単純化できます。
class MyRichString(str: String) {
def ignoreCase: Parser[String] = ("""(?i)\Q""" + str + """\E""").r
}
implicit def pimpString(str: String): MyRichString = new MyRichString(str)
lazy val caseInsensitiveKeyword = "caseinsensitive".ignoreCase