in javatests/de/jflex/testcase/charclass/CharclassTest.java [220:278]
public void symetricDifference() throws Exception {
scanner =
createScanner(
"-,,,-\n"
+ "-!!!-\n"
+ "&+&+&\n"
+ "-//..-\n"
+ "(-(((-)\n"
+ "[-[[[-]\n"
+ "!$```$!\n"
+ "-_!_||_!_-\n"
+ "<-@@@->\n"
+ "{-\\\\\\-}\n"
+ "/??\";\"??/\n");
assertWithMessage("/[^[^-KO--O]]+/ matched `-`").that(scanner.yylex()).isEqualTo(State.NOT_KOO);
assertWithMessage("/[^[^,.:&&-*(),]]+/ matched `,,,`")
.that(scanner.yylex())
.isEqualTo(State.INTER_PUNCTUATION1);
assertWithMessage("/[^[^-KO--O]]+/ matched `-`").that(scanner.yylex()).isEqualTo(State.NOT_KOO);
assertWithMessage("/[^[^-KO--O]]+/ matched `-`").that(scanner.yylex()).isEqualTo(State.NOT_KOO);
assertWithMessage("/[^[^!&#&&\\^~!]]+/ matched `!!!`")
.that(scanner.yylex())
.isEqualTo(State.INTER_PUNCTUATION2);
assertWithMessage("/[^[^-KO--O]]+/ matched `-`").that(scanner.yylex()).isEqualTo(State.NOT_KOO);
assertWithMessage("/[[\\p{L}||+]~~[\\p{L}||&]]+/ matched `&+&+&`")
.that(scanner.yylex())
.isEqualTo(State.SYM_1);
assertWithMessage("/[^[^-KO--O]]+/ matched `-`").that(scanner.yylex()).isEqualTo(State.NOT_KOO);
assertWithMessage("/[-.~~-/]+/ matched `//..`").that(scanner.yylex()).isEqualTo(State.SYM_2);
assertWithMessage("/[^[^-KO--O]]+/ matched `-`").that(scanner.yylex()).isEqualTo(State.NOT_KOO);
assertWithMessage("/[-()~~)]+/ matched `(-(((-`").that(scanner.yylex()).isEqualTo(State.SYM_3);
assertWithMessage("/[^[^-KO--O]]+/ matched `-`").that(scanner.yylex()).isEqualTo(State.NOT_KOO);
assertWithMessage("/[\\[\\]~~\\[-]+/ matched `-]`")
.that(scanner.yylex())
.isEqualTo(State.SYM_4);
assertWithMessage("/[^[^!&#&&\\^~!]]+/ matched `!`")
.that(scanner.yylex())
.isEqualTo(State.INTER_PUNCTUATION2);
assertWithMessage("/[#!~~!#`$]+/ matched `$```$`").that(scanner.yylex()).isEqualTo(State.SYM_5);
assertWithMessage("/[^[^!&#&&\\^~!]]+/ matched `!`")
.that(scanner.yylex())
.isEqualTo(State.INTER_PUNCTUATION2);
assertWithMessage("/[^[^-KO--O]]+/ matched `-`").that(scanner.yylex()).isEqualTo(State.NOT_KOO);
assertWithMessage("/[^[^-=%_|~~-%=!]]+/ matched `_!_||_!_`")
.that(scanner.yylex())
.isEqualTo(State.SYM_6);
assertWithMessage("/[^[^-KO--O]]+/ matched `-`").that(scanner.yylex()).isEqualTo(State.NOT_KOO);
assertWithMessage("/[^[^-<>~~<@>]]+/ matched `-@@@-`")
.that(scanner.yylex())
.isEqualTo(State.SYM_7);
assertWithMessage("/[^[^{}~~-{\\\\}]]+/ matched `-\\\\\\-`")
.that(scanner.yylex())
.isEqualTo(State.SYM_8);
assertWithMessage("/[-.~~-/]+/ matched `/`").that(scanner.yylex()).isEqualTo(State.SYM_2);
assertWithMessage("/[^[^;?/~~\"?/]]+/ matched `\";\"`")
.that(scanner.yylex())
.isEqualTo(State.SYM_9);
assertWithMessage("/[-.~~-/]+/ matched `/`").that(scanner.yylex()).isEqualTo(State.SYM_2);
}