現在、スキャナーとパーサーを使用しており、ASCII 文字の文字を受け入れるパーサーが必要なので、char.isLetter
.
私は自分で2つの解決策を思いつきました。私はそれらの両方が好きではありません。
正規表現
def letter = elem("ascii letter", _.toString.matches("""[a-zA-Z]"""))
これは、このような単純なことを正規表現でチェックするのはかなり「やり過ぎ」のようです。
レンジチェック
def letter = elem("ascii letter", c => ('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z'))
私の意見では、これがJavaで進むべき道です。しかし、それは実際には読めません。
この問題に対する、よりクリーンでより Scala に似た解決策はありますか? この場合は問題にならないので、パフォーマンスについてはあまり心配していません。