Holub on Patternsを読んでいるときに、理解できないコードを見つけました。
コードは次のようになります。必要に応じて、ここで本の一部を読むことができます。
/** Matches a simple symbol that doesn't have to be on a "word"
* boundary; punctuation, for example. SimpleToken
* is very efficient, but does not recognize characters in
* a case-insensitive way, as does {@link WordToken} and
* {@link RegexToken}.
*
* @include /etc/license.txt
*/
public class SimpleToken implements Token
{
private final String pattern;
/** Create a token.
* @param pattern a string that defines a literal-match lexeme.
*/
public SimpleToken( String pattern )
{ this.pattern = pattern.toLowerCase();
}
public boolean match( String input, int offset )
{ return input.toLowerCase().startsWith( pattern, offset );
}
public String lexeme() { return pattern; }
public String toString(){ return pattern; }
}
コメント (および本) には、SimpleToken クラスは「大文字と小文字を区別しない方法で文字を認識しないmatch
」と書かれていますが、メソッドは小文字でパターンを比較し、大文字と小文字を区別しない方法で認識していることを意味します。
ここで何が欠けていますか?
編集
これをエラッタリストで検索しましたが(公式ではありません)、ありませんでした。そして、これを正誤表と見なすのは難しいです。これについては何度か言っています。