in javatests/de/jflex/testcase/charclass/CharclassTest.java [72:127]
public void test() throws Exception {
scanner = createScanner("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
assertWithMessage("/[A-G--CG-Z]+/ matched 'AB'")
.that(scanner.yylex())
.isEqualTo(State.SUBSTRACT_AGCGZ);
assertWithMessage("/[^[^ABC--ABZ]]/ matched 'C'")
.that(scanner.yylex())
.isEqualTo(State.NOT_ABC_ABZ);
assertWithMessage("/[A-G--CG-Z]+/ matched 'DEF'")
.that(scanner.yylex())
.isEqualTo(State.SUBSTRACT_AGCGZ);
assertWithMessage("/[^[^-GM---M]]+/ matched 'G'")
.that(scanner.yylex())
.isEqualTo(State.NOT_GMM);
assertWithMessage("/[[H-L]--K]+/ matched 'HIJ'")
.that(scanner.yylex())
.isEqualTo(State.SUBSTRACT_HLK);
assertWithMessage("/[^[^-KO--O]]+/ matched 'K'").that(scanner.yylex()).isEqualTo(State.NOT_KOO);
assertWithMessage("/[[H-L]--K]+/ matched 'L'")
.that(scanner.yylex())
.isEqualTo(State.SUBSTRACT_HLK);
assertWithMessage("/[-M-O--N]+/ matched 'M'")
.that(scanner.yylex())
.isEqualTo(State.SUBSTRACT_MON);
assertWithMessage("/[-N-P---P]+/ matched 'NO'")
.that(scanner.yylex())
.isEqualTo(State.SUBSTRACT_NPP);
assertWithMessage("/[QR[-]---R]+/ matched 'Q'")
.that(scanner.yylex())
.isEqualTo(State.SUBSTRACT_QRR);
assertWithMessage("/[^[^R[-]---]]+/ matched 'R'").that(scanner.yylex()).isEqualTo(State.NOT_R);
assertWithMessage("/[\\p{Lu}--A-RT-Z]+/ matched 'S'")
.that(scanner.yylex())
.isEqualTo(State.SUBSTRACT_PLU);
assertWithMessage("/[\\p{L}&&[T||\\p{N}]]+/ matched 'T'")
.that(scanner.yylex())
.isEqualTo(State.INTER_PLN);
assertWithMessage("/[-TUV&&-UA]+/ matched 'U''")
.that(scanner.yylex())
.isEqualTo(State.INTER_TUV_UA);
assertWithMessage("/[-TUV&&VA]+/ matched 'V'")
.that(scanner.yylex())
.isEqualTo(State.INTER_TUV_AV);
assertWithMessage("/[VW&&-WA]+/ matched 'W'")
.that(scanner.yylex())
.isEqualTo(State.INTER_VW_WA);
assertWithMessage("/[XXX&&XYZ]+/ matched 'X'")
.that(scanner.yylex())
.isEqualTo(State.INTER_XXX_XYZ);
assertWithMessage("/[^[^-AYZ&&-YBM]]+/ matched 'Y'")
.that(scanner.yylex())
.isEqualTo(State.INTER_AYZ_YMB);
assertWithMessage("/[^[^-ZR&&ABZ]]+/ matched 'Z'")
.that(scanner.yylex())
.isEqualTo(State.INTER_ZR_ABZ);
}