in jflex/src/main/java/jflex/generator/Emitter.java [1360:1469]
public void emit() {
String functionName = (scanner.functionName() != null) ? scanner.functionName() : "yylex";
setupEOFCode();
reduceColumns();
findActionStates();
emitHeader();
emitUserCode();
emitClassName();
skel.emitNext();
println(" private static final int ZZ_BUFFERSIZE = " + scanner.bufferSize() + ";");
if (scanner.debugOption()) {
println(" private static final String ZZ_NL = System.getProperty(\"line.separator\");");
}
skel.emitNext();
emitLexicalStates();
emitCharMapTables();
emitActionTable();
reduceRows();
emitRowMapArray();
emitDynamicInit();
skel.emitNext();
emitAttributes();
skel.emitNext();
emitLookBuffer();
emitVarDefs();
emitClassCode();
skel.emitNext();
emitConstructorDecl();
if (scanner.debugOption()) {
println("");
println(" private static String zzToPrintable(String str) {");
println(" StringBuilder builder = new StringBuilder();");
println(" for (int n = 0 ; n < str.length() ; ) {");
println(" int ch = str.codePointAt(n);");
println(" int charCount = Character.charCount(ch);");
println(" n += charCount;");
println(" if (ch > 31 && ch < 127) {");
println(" builder.append((char)ch);");
println(" } else if (charCount == 1) {");
println(" builder.append(String.format(\"\\\\u%04X\", ch));");
println(" } else {");
println(" builder.append(String.format(\"\\\\U%06X\", ch));");
println(" }");
println(" }");
println(" return builder.toString();");
println(" }");
}
emitTokenSizeLimit(scanner.getTokenSizeLimit());
emitCMapAccess();
skel.emitNext();
emitScanError();
skel.emitNext();
emitDoEOF();
skel.emitNext();
emitLexFunctHeader(functionName);
emitNextInput();
emitGetRowMapNext();
skel.emitNext();
emitEOFVal();
skel.emitNext();
emitActions();
skel.emitNext();
emitNoMatch();
skel.emitNext();
emitMain(functionName);
skel.emitNext();
out.close();
}