package be.jeffcheasey88.peeratcode.parser.java; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.List; import java.util.function.BiConsumer; import java.util.function.BiFunction; import java.util.function.Function; import be.jeffcheasey88.peeratcode.parser.Bag; import be.jeffcheasey88.peeratcode.parser.Parser; import be.jeffcheasey88.peeratcode.parser.Token; import be.jeffcheasey88.peeratcode.parser.TokenType; import be.jeffcheasey88.peeratcode.parser.TokenValidator; import be.jeffcheasey88.peeratcode.parser.Tokenizer; import be.jeffcheasey88.peeratcode.parser.java.Value.BiValue; import be.jeffcheasey88.peeratcode.parser.java.Value.TriValue; import be.jeffcheasey88.peeratcode.parser.state.RedirectStateTree; import be.jeffcheasey88.peeratcode.parser.state.StateTree; public class JavaParser extends Parser { public static long time; public static void main(String[] args) throws Exception{ File file = new File("C:\\Users\\jeffc\\eclipse-workspace\\peer-at-code-backend\\src\\be\\jeffcheasey88\\peeratcode\\routes\\Result.java"); BufferedReader reader = new BufferedReader(new FileReader(file)); time = System.currentTimeMillis(); Parser parser = new JavaParser(); JavaFile jFile = new JavaFile(); parser.parse(reader, jFile); System.out.println((System.currentTimeMillis()-time)+"ms"); parser.build(new BufferedWriter(new FileWriter(new File("/home/ParserV2.txt")))); } private static final Function LAMBDA_name = (v) -> v.validate((t) -> t.getType().equals(TokenType.NAME), (bag, token) -> { Token base = bag.get(); if(base == null) bag.set(token); else bag.set(base.concat(token)); System.out.println("name validate "+token); }), LAMBDA_mod = (v) -> v.validate((t) -> JavaParser.getModifier(t.getValue()) > 0, (bag, token) -> { Integer modifier = bag.get(); if(modifier == null) modifier = 0; bag.set(modifier+JavaParser.getModifier(token.getValue())); }); BiFunction END_PACKAGE = ((javafile, bag) -> javafile.setPackage(bag)), END_IMPORT = ((javafile, bag) -> javafile.addImport(bag)); BiFunction END_CLASS = ((javafile, bag) -> javafile.setClass(new Class(bag))); BiFunction END_TYPE = ((javafile, bag) -> { System.out.println("return token "+bag.get()); return bag.get(); }); BiFunction END_VAR = ((javafile, bag) -> { System.out.println("new var"); return new Variable(bag); }); BiFunction END_FUNC = ((javafile, bag) -> { System.out.println("new function"); return new be.jeffcheasey88.peeratcode.parser.java.Function(bag); }); BiFunction END_MODIFIER = ((javafile, bag) ->{ return bag.get(); }); BiFunction END_OP = ((javafile, bag) -> { System.out.println("\top"); return javafile; }); BiFunction END_ANNOTATION = ((javafile, bag) -> { System.out.println("ANNOTATION"); return javafile; }); public JavaParser(){ Tokenizer tokenizer = new Tokenizer(); Function LAMBDA_0 = (v) -> v.validate((t) -> t.getValue().equals("package")); Function LAMBDA_1 = (v) -> v.validate((t) -> t.getValue().equals(";")); Function LAMBDA_3 = (v) -> v.validate((t) -> t.getValue().equals("import")); Function LAMBDA_4 = (v) -> v.validate((t) -> t.getValue().equals("static"), (bag, token) -> bag.set("static", "bool")); Function LAMBDA_5 = (v) -> v.validate((t) -> t.getValue().equals("<")); Function LAMBDA_6 = (v) -> v.validate((t) -> t.getValue().equals(">")); Function LAMBDA_7 = (v) -> v.validate((t) -> t.getValue().equals(",")); Function LAMBDA_8 = (v) -> v.validate((t) -> t.getValue().equals("=")); Function LAMBDA_10 = (v) -> v.validate((t) -> !t.getValue().equals("")); Function LAMBDA_23 = (v) -> v.validate((t) -> t.getValue().equals("(")); Function LAMBDA_24 = (v) -> v.validate((t) -> t.getValue().equals(")")); Function LAMBDA_25 = (v) -> v.validate((t) -> t.getValue().equals(".")); Function LAMBDA_28 = (v) -> v.validate((t) -> t.getValue().equals("'")); Function LAMBDA_29 = (v) -> v.validate((t) -> t.getValue().length() == 1); Function LAMBDA_30 = (v) -> v.validate((t) -> t.getValue().equals("@")); Function LAMBDA_32 = (v) -> v.validate((t) -> t.getValue().equals("if")); Function LAMBDA_33 = (v) -> v.validate((t) -> t.getValue().equals("for")); Function LAMBDA_34 = (v) -> v.validate((t) -> t.getValue().equals("while")); Function LAMBDA_35 = (v) -> v.validate((t) -> t.getValue().equals("return")); Function LAMBDA_36 = (v) -> v.validate((t) -> t.getValue().equals("do")); Function LAMBDA_37 = (v) -> v.validate((t) -> t.getValue().equals("synchronized")); Function LAMBDA_38 = (v) -> v.validate((t) -> t.getValue().equals("continue")); Function LAMBDA_39 = (v) -> v.validate((t) -> t.getValue().equals("throw")); Function LAMBDA_40 = (v) -> v.validate((t) -> t.getValue().equals("break")); Function LAMBDA_41 = (v) -> v.validate((t) -> t.getValue().equals("try")); Function LAMBDA_42 = (v) -> v.validate((t) -> t.getValue().equals("{")); Function LAMBDA_43 = (v) -> v.validate((t) -> t.getValue().equals("}")); Function LAMBDA_45 = (v) -> v.validate((t) -> t.getValue().equals("throws")); Function LAMBDA_47 = (v) -> v.validate((t) -> t.getValue().equals("class")); Function LAMBDA_48 = (v) -> v.validate((t) -> t.getValue().equals("extends")); Function LAMBDA_49 = (v) -> v.validate((t) -> t.getValue().equals("implements")); StateTree main = new StateTree<>(); StateTree package_q0 = new StateTree<>(); package_q0.then(LAMBDA_0).then((v) -> v.validate((t) -> !t.getValue().equals(";"), groupToken("package"))).loop().then(LAMBDA_1).end(END_PACKAGE); StateTree import_q0 = new StateTree<>(); StateTree import_q1 = import_q0.then(LAMBDA_3); StateTree import_q3 = import_q1.then((v) -> v.validate((t) -> !t.getValue().equals(";"), groupToken("import"))).loop(); import_q3.then(LAMBDA_1).end(END_IMPORT); StateTree import_q2 = import_q1.then(LAMBDA_4); import_q2.then(import_q3); StateTree modifier_q0 = new StateTree<>(); modifier_q0.then(LAMBDA_mod).end(END_MODIFIER); StateTree type_q0 = new StateTree<>(); StateTree type_q1 = type_q0.then(LAMBDA_name); StateTree type_q3 = type_q1.then(LAMBDA_5); StateTree type_q4 = type_q3.then(LAMBDA_name); StateTree type_q5 = type_q4.then(LAMBDA_6).loop(); type_q5.end(END_TYPE); StateTree type_q6 = type_q4.then(LAMBDA_7); type_q5.then(type_q6); type_q5.then(type_q4); type_q6.then(type_q4); type_q4.then(type_q3); type_q1.end(END_TYPE); StateTree value_q0 = value(); StateTree annotation_q0 = new StateTree<>(); StateTree annotation_q2 = annotation_q0.then(LAMBDA_30).then(LAMBDA_name); StateTree annotation_q4 = annotation_q2.then(LAMBDA_23); annotation_q4.then(new RedirectStateTree<>(value_q0,(bag) -> "annotation_value")).then(LAMBDA_24).end(END_ANNOTATION); annotation_q4.then(LAMBDA_24).end(END_ANNOTATION); StateTree annotation_q7 = annotation_q4.then(LAMBDA_name); StateTree annotation_q9 = annotation_q7.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "annotation_value")); annotation_q9.then(LAMBDA_24).end(END_ANNOTATION); StateTree annotation_q10 = annotation_q9.then(LAMBDA_7); annotation_q10.then(annotation_q7); annotation_q2.end(END_ANNOTATION); StateTree variable_q0 = new StateTree<>(); StateTree variable_q10 = variable_q0.then(new RedirectStateTree<>(modifier_q0,(bag) -> "modifier")); StateTree variable_q11 = variable_q0.then(new RedirectStateTree<>(annotation_q0,(bag) -> "var_annotation")); variable_q11.then(variable_q10); StateTree variable_q1 = variable_q0.then(new RedirectStateTree<>(type_q0,(bag) -> "type")); StateTree variable_q2 = variable_q1.then(LAMBDA_name); StateTree variable_q5 = variable_q2.then(LAMBDA_7); StateTree variable_q7 = variable_q2.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")); variable_q7.then(variable_q5); variable_q2.then(LAMBDA_1).end(END_VAR); variable_q7.then(LAMBDA_1).end(END_VAR); variable_q5.then(variable_q2); variable_q10.then(variable_q1); variable_q11.then(variable_q1); StateTree operation_q0 = new StateTree<>(); StateTree operation_q1 = operation_q0.then(LAMBDA_name); operation_q1.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "op_value")).then(LAMBDA_1).end(END_OP); StateTree operation_q5 = operation_q1.then(LAMBDA_25); operation_q5.then(operation_q1); operation_q0.then(LAMBDA_32).then(LAMBDA_23).then(new RedirectStateTree<>(value_q0,(bag) -> "op_value")).then(LAMBDA_24).end(END_OP); operation_q0.then(LAMBDA_33).then(LAMBDA_23).then(new RedirectStateTree<>(value_q0,(bag) -> "op_value")).then(LAMBDA_24).end(END_OP); operation_q0.then(LAMBDA_34).then(LAMBDA_23).then(new RedirectStateTree<>(value_q0,(bag) -> "op_value")).then(LAMBDA_24).end(END_OP); operation_q0.then(LAMBDA_35).then(new RedirectStateTree<>(value_q0,(bag) -> "op_value(190)")).then(LAMBDA_1).end(END_OP); operation_q0.then(LAMBDA_36).then(new RedirectStateTree<>(value_q0,(bag) -> "op_value(191)")).end(END_OP); operation_q0.then(LAMBDA_37).then(LAMBDA_23).then(new RedirectStateTree<>(value_q0,(bag) -> "op_value(192)")).then(LAMBDA_24).end(END_OP); operation_q0.then(LAMBDA_38).then(LAMBDA_1).end(END_OP); operation_q0.then(LAMBDA_39).then(new RedirectStateTree<>(value_q0,(bag) -> "op_value(194)")).then(LAMBDA_1).end(END_OP); operation_q0.then(LAMBDA_40).then(LAMBDA_1).end(END_OP); operation_q0.then(LAMBDA_41).end(END_OP); StateTree function_q17 = new StateTree<>(); StateTree function_q18 = function_q17.then(LAMBDA_42); StateTree function_q19 = function_q18.then(LAMBDA_43); function_q19.end((a,b) -> { System.out.println("\t\tolala"); return a;}); StateTree function_q21 = function_q18.then(new RedirectStateTree<>(variable_q0,(bag) -> "func_var")).loop(); StateTree function_q22 = function_q18.then(new RedirectStateTree<>(operation_q0,(bag) -> "func_op")).loop(); function_q21.then(function_q19); function_q22.then(function_q19); function_q22.then(function_q21); function_q21.then(function_q22); StateTree function_q0 = new StateTree<>(); StateTree function_q1 = function_q0.then(new RedirectStateTree<>(type_q0,(bag) -> "return")); function_q1.then(LAMBDA_42).end(END_FUNC).then(function_q17); StateTree function_q3 = function_q1.then((v) -> v.validate( (t) -> t.getType().equals(TokenType.NAME), (bag, token) -> bag.set("name", token))).then(LAMBDA_23); StateTree function_q4 = function_q3.then(LAMBDA_24); StateTree function_q10 = function_q4.then(LAMBDA_45).then(new RedirectStateTree<>(type_q0,(bag) -> "func_type(215)")); function_q10.end(END_FUNC).then(function_q17); StateTree function_q11 = function_q10.then(LAMBDA_7); function_q11.then(function_q10); function_q4.end(END_FUNC).then(function_q17); StateTree function_q6 = function_q3.then(new RedirectStateTree<>(type_q0, (bag) -> "func_type(q6)")); StateTree function_q7 = function_q6.then(LAMBDA_name); StateTree function_q8 = function_q7.then(LAMBDA_7); function_q8.then(function_q6); function_q7.then(function_q4); StateTree function_q15 = function_q0.then(new RedirectStateTree<>(modifier_q0, (bag) -> "func_modifier")); StateTree function_q20 = function_q0.then(new RedirectStateTree<>(annotation_q0,(bag) -> "func_annotation")).loop(); function_q20.then(function_q1); function_q20.then(function_q15); function_q15.then(function_q1); StateTree class_q16 = new StateTree<>(); StateTree class_q18 = class_q16.then(new RedirectStateTree<>(variable_q0,(bag) -> "class_var")).loop(); class_q18.then(class_q16); StateTree class_q19 = class_q16.then(new RedirectStateTree<>(function_q0,(bag) -> "class_func")).loop(); class_q19.then(class_q16); StateTree class_q0 = new StateTree<>(); StateTree class_q1 = class_q0.then(LAMBDA_47); StateTree class_q2 = class_q1.then(new RedirectStateTree<>(type_q0,(bag) -> "name")); StateTree class_q7 = class_q2.then(LAMBDA_48).then(new RedirectStateTree<>(type_q0,(bag) -> "extend")); class_q7.then(LAMBDA_42).end(END_CLASS).then(class_q16); class_q2.then(LAMBDA_42).end(END_CLASS).then(class_q16); StateTree class_q9 = class_q2.then(LAMBDA_49); StateTree class_q11 = class_q9.then(new RedirectStateTree<>(type_q0,(bag) -> "implement")); class_q11.then(LAMBDA_42).end(END_CLASS).then(class_q16); StateTree class_q12 = class_q11.then(LAMBDA_7); class_q12.then(class_q11); class_q7.then(class_q9); StateTree class_q17 = class_q0.then(new RedirectStateTree<>(annotation_q0,(bag) -> "class_annotation")).loop(); class_q17.then(class_q1); StateTree class_q3 = class_q0.then(new RedirectStateTree<>(modifier_q0,(bag) -> "class_modifier")); class_q3.then(class_q1); class_q17.then(class_q3); main.then(new RedirectStateTree<>(package_q0, (b) -> null)).then(main); main.then(new RedirectStateTree<>(import_q0, (b) -> null)).then(main); main.then(new RedirectStateTree<>(class_q0, (b) -> null)).then(main); System.out.println((System.currentTimeMillis()-time)+"ms"); // try { // DebugServer server = new DebugServer(main); // } catch (Exception e) { // e.printStackTrace(); // } setTokenizer(tokenizer); setStateTree(main); } private List build(String... values){ List list = new ArrayList<>(); for(String value : values) list.add(new Token(0, 0, value, value.length() > 1 ? TokenType.NAME : TokenType.DELIMITER)); return list; } private BiConsumer groupToken(String group){ return (bag, token) -> { Token base = bag.get(group); if(base == null) bag.set(group, token); else bag.set(group, base.concat(token)); }; } public static int getModifier(String modifier){ switch(modifier){ case "public": return Modifier.PUBLIC; case "private": return Modifier.PRIVATE; case "protected": return Modifier.PROTECTED; case "static": return Modifier.STATIC; case "final": return Modifier.FINAL; case "synchronized": return Modifier.SYNCHRONIZED; case "volatile": return Modifier.VOLATILE; case "transient": return Modifier.TRANSIENT; case "native": return Modifier.NATIVE; case "abstract": return Modifier.ABSTRACT; case "strictfp": return Modifier.STRICT; default: break; } return 0; } private StateTree value(){ Function LAMBDA_5 = (v) -> v.validate((t) -> t.getValue().equals("<"), (bag, t) -> bag.set("type", t)); Function LAMBDA_6 = (v) -> v.validate((t) -> t.getValue().equals(">"), (bag, t) -> bag.set("type", t)); Function LAMBDA_7 = (v) -> v.validate((t) -> t.getValue().equals(",")); Function LAMBDA_8 = (v) -> v.validate((t) -> t.getValue().equals("="), (bag, t) -> bag.set("type", t)); Function LAMBDA_10 = (v) -> v.validate((t) -> t.getValue().equals("!"), (bag, t) -> bag.set("type", t)); Function LAMBDA_11 = (v) -> v.validate((t) -> t.getValue().equals("?"), (bag, t) -> bag.set("type", t)); Function LAMBDA_12 = (v) -> v.validate((t) -> t.getValue().equals(":"), (bag, t) -> bag.set("type", t)); Function LAMBDA_13 = (v) -> v.validate((t) -> t.getValue().equals("~"), (bag, t) -> bag.set("type", t)); Function LAMBDA_14 = (v) -> v.validate((t) -> t.getValue().equals("+"), (bag, t) -> bag.set("type", t)); Function LAMBDA_15 = (v) -> v.validate((t) -> t.getValue().equals("-"), (bag, t) -> bag.set("type", t)); Function LAMBDA_16 = (v) -> v.validate((t) -> t.getValue().equals("/"), (bag, t) -> bag.set("type", t)); Function LAMBDA_17 = (v) -> v.validate((t) -> t.getValue().equals("*"), (bag, t) -> bag.set("type", t)); Function LAMBDA_18 = (v) -> v.validate((t) -> t.getValue().equals("&"), (bag, t) -> bag.set("type", t)); Function LAMBDA_19 = (v) -> v.validate((t) -> t.getValue().equals("|"), (bag, t) -> bag.set("type", t)); Function LAMBDA_20 = (v) -> v.validate((t) -> t.getValue().equals("^"), (bag, t) -> bag.set("type", t)); Function LAMBDA_21 = (v) -> v.validate((t) -> t.getValue().equals("%"), (bag, t) -> bag.set("type", t)); Function LAMBDA_23 = (v) -> v.validate((t) -> t.getValue().equals("(")); Function LAMBDA_24 = (v) -> v.validate((t) -> t.getValue().equals(")")); Function LAMBDA_25 = (v) -> v.validate((t) -> t.getValue().equals("."), (bag, t) -> bag.set("type", t)); Function LAMBDA_26 = (v) -> v.validate((t) -> t.getValue().equals("\""), (bag, t) -> { Bag sub = bag.get("?"); if(sub == null) return; sub.set(new Value(sub.get())); }); Function LAMBDA_27 = (v) -> v.validate((t) -> !t.getValue().equals("\""), (bag,t) -> { Bag sub = bag.get("?"); if(sub == null){ sub = new Bag(); bag.set("?", sub); sub.set(t); return; } sub.set(sub.get().concat(t)); }); Function LAMBDA_28 = (v) -> v.validate((t) -> t.getValue().equals("'")); Function LAMBDA_29 = (v) -> v.validate((t) -> t.getValue().length() == 1, (bag, t) -> { Bag sub = new Bag(); sub.set(new Value(t)); bag.set("?", sub); }); BiFunction END_NATIVE_VALUE = (element, bag) -> { Value result = bag.get("?").get(); if(result.get() != null){ bag.set(result.get()); return result.get(); } bag.set(result); return result; }; BiFunction END_VALUE = (element, bag) -> { Value v = new Value(bag.get()); bag.set(v); return v; }; BiFunction END_BIVALUE = (element, bag) -> { Value origin = (Value)element; Value right = bag.get("?").get(); if(right.get() != null) right = right.get(); if(right instanceof TriValue){ TriValue last = (TriValue)right; last.getCondition().switchInto(null); BiValue condition = new BiValue(origin, last.getCondition(), bag.get("type")); TriValue result = new TriValue(condition, last.success(), last.fail()); origin.switchInto(result); bag.set(result); return result; } Value v = new BiValue(origin, right, bag.get("type")); origin.switchInto(v); bag.set(v); return v; }; BiFunction END_TRIVALUE = (element, bag) -> { Value origin = (Value)element; Value v = new TriValue(origin, bag.get("true").get(), bag.get("false").get()); origin.switchInto(v); bag.set(v); return v; }; StateTree value_q0 = new StateTree<>(); StateTree value_q22 = new StateTree<>(); StateTree value_q23 = value_q22.then(LAMBDA_8); value_q23.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // == value_q23.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // = StateTree value_q24 = value_q22.then(LAMBDA_5); value_q24.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // < value_q24.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // <= StateTree value_q41 = value_q24.then(LAMBDA_5); value_q41.then(new RedirectStateTree<>(value_q0,(bag) -> "<<")).end(END_BIVALUE); // << value_q41.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // <<= StateTree value_q25 = value_q22.then(LAMBDA_6); value_q25.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // > value_q25.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // >= StateTree value_q55 = value_q25.then(LAMBDA_6); value_q55.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // >> value_q55.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // >>= StateTree value_q61 = value_q55.then(LAMBDA_6); value_q61.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // >>> value_q61.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // >>>= StateTree value_q26 = value_q22.then(LAMBDA_10); value_q26.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // ! value_q26.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // != value_q22.then(LAMBDA_11).then(new RedirectStateTree<>(value_q0,(bag) -> "true")).then(LAMBDA_12).then(new RedirectStateTree<>(value_q0,(bag) -> "false")).end(END_TRIVALUE); //? : value_q22.then(LAMBDA_13).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // ~ StateTree value_q29 = value_q22.then(LAMBDA_14); value_q29.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // + value_q29.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // += value_q29.then(LAMBDA_14).end(END_VALUE); // ++ StateTree value_q30 = value_q22.then(LAMBDA_15); value_q30.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // - value_q30.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // -= value_q30.then(LAMBDA_15).end(END_VALUE); // -- StateTree value_q31 = value_q22.then(LAMBDA_16); value_q31.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // / value_q31.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // /= StateTree value_q32 = value_q22.then(LAMBDA_17); value_q32.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // * value_q32.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // *= StateTree value_q33 = value_q22.then(LAMBDA_18); value_q33.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // & value_q33.then(LAMBDA_18).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // && value_q33.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // &= StateTree value_q34 = value_q22.then(LAMBDA_19); value_q34.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // | value_q34.then(LAMBDA_19).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // || value_q34.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // |= StateTree value_q35 = value_q22.then(LAMBDA_20); value_q35.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // ^ value_q35.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // ^= StateTree value_q36 = value_q22.then(LAMBDA_21); value_q36.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // % value_q36.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // %= StateTree value_q1 = value_q0.then(LAMBDA_name); StateTree value_q12 = value_q1.then(LAMBDA_23); StateTree value_q13 = value_q12.then(new RedirectStateTree<>(value_q0,(bag) -> "?")); StateTree value_q15 = value_q13.then(LAMBDA_24); value_q15.end(END_VALUE).then(value_q22); value_q12.then(value_q15); StateTree value_q14 = value_q13.then(LAMBDA_7); value_q14.then(value_q13); value_q1.end(END_VALUE).then(value_q22); StateTree value_q11 = value_q1.then(LAMBDA_25); value_q11.then(value_q1); value_q0.then(LAMBDA_23).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).then(LAMBDA_24).end(END_NATIVE_VALUE).then(value_q22); value_q0.then(LAMBDA_26).then(LAMBDA_27).loop().then(LAMBDA_26).end(END_NATIVE_VALUE).then(value_q22); value_q0.then(LAMBDA_28).then(LAMBDA_29).then(LAMBDA_28).end(END_NATIVE_VALUE).then(value_q22); return value_q0; } }