[Parse Class] -> Annotations

This commit is contained in:
jeffcheasey88 2023-07-10 16:07:59 +02:00
parent 1bc2ee52ea
commit 84cc9d8574

View file

@ -82,6 +82,11 @@ public class JavaParser extends Parser<JavaFile> {
System.out.println("\top"); System.out.println("\top");
return javafile; return javafile;
}); });
BiFunction<JavaElement, TokenValidator, JavaElement>
END_ANNOTATION = ((javafile, validator) -> {
System.out.println("ANNOTATION");
return javafile;
});
public JavaParser(){ public JavaParser(){
Tokenizer tokenizer = new Tokenizer(); Tokenizer tokenizer = new Tokenizer();
@ -94,27 +99,29 @@ public class JavaParser extends Parser<JavaFile> {
Function<TokenValidator, Boolean> LAMBDA_6 = (v) -> v.validate((t) -> t.getValue().equals(">")); Function<TokenValidator, Boolean> LAMBDA_6 = (v) -> v.validate((t) -> t.getValue().equals(">"));
Function<TokenValidator, Boolean> LAMBDA_7 = (v) -> v.validate((t) -> t.getValue().equals(",")); Function<TokenValidator, Boolean> LAMBDA_7 = (v) -> v.validate((t) -> t.getValue().equals(","));
Function<TokenValidator, Boolean> LAMBDA_8 = (v) -> v.validate((t) -> t.getValue().equals("=")); Function<TokenValidator, Boolean> LAMBDA_8 = (v) -> v.validate((t) -> t.getValue().equals("="));
Function<TokenValidator, Boolean> LAMBDA_10 = (v) -> v.validate((t) -> !t.getValue().equals(""));
Function<TokenValidator, Boolean> LAMBDA_23 = (v) -> v.validate((t) -> t.getValue().equals("(")); Function<TokenValidator, Boolean> LAMBDA_23 = (v) -> v.validate((t) -> t.getValue().equals("("));
Function<TokenValidator, Boolean> LAMBDA_24 = (v) -> v.validate((t) -> t.getValue().equals(")")); Function<TokenValidator, Boolean> LAMBDA_24 = (v) -> v.validate((t) -> t.getValue().equals(")"));
Function<TokenValidator, Boolean> LAMBDA_25 = (v) -> v.validate((t) -> t.getValue().equals(".")); Function<TokenValidator, Boolean> LAMBDA_25 = (v) -> v.validate((t) -> t.getValue().equals("."));
Function<TokenValidator, Boolean> LAMBDA_28 = (v) -> v.validate((t) -> t.getValue().equals("'")); Function<TokenValidator, Boolean> LAMBDA_28 = (v) -> v.validate((t) -> t.getValue().equals("'"));
Function<TokenValidator, Boolean> LAMBDA_29 = (v) -> v.validate((t) -> t.getValue().equals("oneChar")); Function<TokenValidator, Boolean> LAMBDA_29 = (v) -> v.validate((t) -> t.getValue().length() == 1);
Function<TokenValidator, Boolean> LAMBDA_30 = (v) -> v.validate((t) -> t.getValue().equals("if")); Function<TokenValidator, Boolean> LAMBDA_30 = (v) -> v.validate((t) -> t.getValue().equals("@"));
Function<TokenValidator, Boolean> LAMBDA_31 = (v) -> v.validate((t) -> t.getValue().equals("for")); Function<TokenValidator, Boolean> LAMBDA_32 = (v) -> v.validate((t) -> t.getValue().equals("if"));
Function<TokenValidator, Boolean> LAMBDA_32 = (v) -> v.validate((t) -> t.getValue().equals("while")); Function<TokenValidator, Boolean> LAMBDA_33 = (v) -> v.validate((t) -> t.getValue().equals("for"));
Function<TokenValidator, Boolean> LAMBDA_33 = (v) -> v.validate((t) -> t.getValue().equals("return")); Function<TokenValidator, Boolean> LAMBDA_34 = (v) -> v.validate((t) -> t.getValue().equals("while"));
Function<TokenValidator, Boolean> LAMBDA_34 = (v) -> v.validate((t) -> t.getValue().equals("do")); Function<TokenValidator, Boolean> LAMBDA_35 = (v) -> v.validate((t) -> t.getValue().equals("return"));
Function<TokenValidator, Boolean> LAMBDA_35 = (v) -> v.validate((t) -> t.getValue().equals("synchronized")); Function<TokenValidator, Boolean> LAMBDA_36 = (v) -> v.validate((t) -> t.getValue().equals("do"));
Function<TokenValidator, Boolean> LAMBDA_36 = (v) -> v.validate((t) -> t.getValue().equals("continue")); Function<TokenValidator, Boolean> LAMBDA_37 = (v) -> v.validate((t) -> t.getValue().equals("synchronized"));
Function<TokenValidator, Boolean> LAMBDA_37 = (v) -> v.validate((t) -> t.getValue().equals("throw")); Function<TokenValidator, Boolean> LAMBDA_38 = (v) -> v.validate((t) -> t.getValue().equals("continue"));
Function<TokenValidator, Boolean> LAMBDA_38 = (v) -> v.validate((t) -> t.getValue().equals("break")); Function<TokenValidator, Boolean> LAMBDA_39 = (v) -> v.validate((t) -> t.getValue().equals("throw"));
Function<TokenValidator, Boolean> LAMBDA_39 = (v) -> v.validate((t) -> t.getValue().equals("try")); Function<TokenValidator, Boolean> LAMBDA_40 = (v) -> v.validate((t) -> t.getValue().equals("break"));
Function<TokenValidator, Boolean> LAMBDA_40 = (v) -> v.validate((t) -> t.getValue().equals("{")); Function<TokenValidator, Boolean> LAMBDA_41 = (v) -> v.validate((t) -> t.getValue().equals("try"));
Function<TokenValidator, Boolean> LAMBDA_41 = (v) -> v.validate((t) -> t.getValue().equals("}")); Function<TokenValidator, Boolean> LAMBDA_42 = (v) -> v.validate((t) -> t.getValue().equals("{"));
Function<TokenValidator, Boolean> LAMBDA_44 = (v) -> v.validate((t) -> t.getValue().equals("throws")); Function<TokenValidator, Boolean> LAMBDA_43 = (v) -> v.validate((t) -> t.getValue().equals("}"));
Function<TokenValidator, Boolean> LAMBDA_46 = (v) -> v.validate((t) -> t.getValue().equals("class")); Function<TokenValidator, Boolean> LAMBDA_45 = (v) -> v.validate((t) -> t.getValue().equals("throws"));
Function<TokenValidator, Boolean> LAMBDA_47 = (v) -> v.validate((t) -> t.getValue().equals("implements")); Function<TokenValidator, Boolean> LAMBDA_47 = (v) -> v.validate((t) -> t.getValue().equals("class"));
Function<TokenValidator, Boolean> LAMBDA_48 = (v) -> v.validate((t) -> t.getValue().equals("extends")); Function<TokenValidator, Boolean> LAMBDA_48 = (v) -> v.validate((t) -> t.getValue().equals("extends"));
Function<TokenValidator, Boolean> LAMBDA_49 = (v) -> v.validate((t) -> t.getValue().equals("implements"));
StateTree<JavaFile> main = new StateTree<>(); StateTree<JavaFile> main = new StateTree<>();
StateTree<JavaFile> package_q0 = new StateTree<>(); StateTree<JavaFile> package_q0 = new StateTree<>();
@ -144,52 +151,68 @@ public class JavaParser extends Parser<JavaFile> {
type_q1.<Token>end(END_TYPE); type_q1.<Token>end(END_TYPE);
StateTree<JavaElement> value_q0 = value(); StateTree<JavaElement> value_q0 = value();
StateTree<JavaElement> annotation_q0 = new StateTree<>();
StateTree<JavaElement> annotation_q2 = annotation_q0.then(LAMBDA_30).then(LAMBDA_name);
StateTree<JavaElement> annotation_q4 = annotation_q2.then(LAMBDA_23);
annotation_q4.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).then(LAMBDA_24).end(END_ANNOTATION);
annotation_q4.then(LAMBDA_24).end(END_ANNOTATION);
StateTree<JavaElement> annotation_q7 = annotation_q4.then(LAMBDA_name);
StateTree<JavaElement> annotation_q9 = annotation_q7.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?"));
annotation_q9.then(LAMBDA_24).end(END_ANNOTATION);
StateTree<JavaElement> annotation_q10 = annotation_q9.then(LAMBDA_7);
annotation_q10.then(annotation_q7);
annotation_q2.end(END_ANNOTATION);
StateTree<JavaElement> variable_q0 = new StateTree<>(); StateTree<JavaElement> variable_q0 = new StateTree<>();
StateTree<JavaElement> variable_q10 = variable_q0.then(new RedirectStateTree<>(modifier_q0,(bag) -> "modifier"));
StateTree<JavaElement> variable_q11 = variable_q0.then(new RedirectStateTree<>(annotation_q0,(bag) -> "?"));
variable_q11.then(variable_q10);
StateTree<JavaElement> variable_q1 = variable_q0.then(new RedirectStateTree<>(type_q0,(bag) -> "type=token")); StateTree<JavaElement> variable_q1 = variable_q0.then(new RedirectStateTree<>(type_q0,(bag) -> "type=token"));
StateTree<JavaElement> variable_q2 = variable_q1.then(LAMBDA_name); StateTree<JavaElement> variable_q2 = variable_q1.then(LAMBDA_name);
StateTree<JavaElement> variable_q5 = variable_q2.then(LAMBDA_7); StateTree<JavaElement> variable_q5 = variable_q2.then(LAMBDA_7);
StateTree<JavaElement> variable_q7 = variable_q2.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")); StateTree<JavaElement> variable_q7 = variable_q2.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?"));
variable_q7.then(variable_q5); variable_q7.then(variable_q5);
variable_q7.then(LAMBDA_1).<Variable>end(END_VAR);
variable_q2.then(LAMBDA_1).<Variable>end(END_VAR); variable_q2.then(LAMBDA_1).<Variable>end(END_VAR);
variable_q7.then(LAMBDA_1).<Variable>end(END_VAR);
variable_q5.then(variable_q2); variable_q5.then(variable_q2);
StateTree<JavaElement> variable_q10 = variable_q0.then(new RedirectStateTree<>(modifier_q0,(bag) -> "modifier"));
variable_q10.then(variable_q1); variable_q10.then(variable_q1);
variable_q11.then(variable_q1);
StateTree<JavaElement> operation_q0 = new StateTree<>(); StateTree<JavaElement> operation_q0 = new StateTree<>();
StateTree<JavaElement> operation_q1 = operation_q0.then(LAMBDA_name); StateTree<JavaElement> operation_q1 = operation_q0.then(LAMBDA_name);
operation_q1.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).then(LAMBDA_1).end(END_OP); operation_q1.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).then(LAMBDA_1).<JavaElement>end(END_OP);
operation_q1.then(LAMBDA_25).then(operation_q1); StateTree<JavaElement> operation_q5 = operation_q1.then(LAMBDA_25);
operation_q0.then(LAMBDA_30).then(LAMBDA_23).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).then(LAMBDA_24).<JavaElement>end(END_OP); operation_q5.then(operation_q1);
operation_q0.then(LAMBDA_31).then(LAMBDA_23).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).then(LAMBDA_24).<JavaElement>end(END_OP);
operation_q0.then(LAMBDA_32).then(LAMBDA_23).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).then(LAMBDA_24).<JavaElement>end(END_OP); operation_q0.then(LAMBDA_32).then(LAMBDA_23).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).then(LAMBDA_24).<JavaElement>end(END_OP);
operation_q0.then(LAMBDA_33).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).then(LAMBDA_1).<JavaElement>end(END_OP); operation_q0.then(LAMBDA_33).then(LAMBDA_23).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).then(LAMBDA_24).<JavaElement>end(END_OP);
operation_q0.then(LAMBDA_34).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).<JavaElement>end(END_OP); operation_q0.then(LAMBDA_34).then(LAMBDA_23).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).then(LAMBDA_24).<JavaElement>end(END_OP);
operation_q0.then(LAMBDA_35).then(LAMBDA_23).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).then(LAMBDA_24).<JavaElement>end(END_OP); operation_q0.then(LAMBDA_35).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).then(LAMBDA_1).<JavaElement>end(END_OP);
operation_q0.then(LAMBDA_36).then(LAMBDA_1).<JavaElement>end(END_OP); operation_q0.then(LAMBDA_36).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).<JavaElement>end(END_OP);
operation_q0.then(LAMBDA_37).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).then(LAMBDA_1).<JavaElement>end(END_OP); operation_q0.then(LAMBDA_37).then(LAMBDA_23).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).then(LAMBDA_24).<JavaElement>end(END_OP);
operation_q0.then(LAMBDA_38).then(LAMBDA_1).<JavaElement>end(END_OP); operation_q0.then(LAMBDA_38).then(LAMBDA_1).<JavaElement>end(END_OP);
operation_q0.then(LAMBDA_39).<JavaElement>end(END_OP); operation_q0.then(LAMBDA_39).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).then(LAMBDA_1).<JavaElement>end(END_OP);
operation_q0.then(LAMBDA_40).then(LAMBDA_1).<JavaElement>end(END_OP);
operation_q0.then(LAMBDA_41).<JavaElement>end(END_OP);
StateTree<JavaElement> function_q17 = new StateTree<>(); StateTree<JavaElement> function_q17 = new StateTree<>();
StateTree<JavaElement> function_q18 = function_q17.then(LAMBDA_40); StateTree<JavaElement> function_q18 = function_q17.then(LAMBDA_42);
StateTree<JavaElement> function_q19 = function_q18.then(LAMBDA_41); StateTree<JavaElement> function_q19 = function_q18.then(LAMBDA_43);
function_q19.end((func, validator) -> func); function_q19.end((a,b) -> { System.out.println("\t\tolala"); return a;});
StateTree<JavaElement> function_q22 = function_q18.then(new RedirectStateTree<>(operation_q0,(bag) -> "?")); StateTree<JavaElement> function_q21 = function_q18.then(new RedirectStateTree<>(variable_q0,(bag) -> "var"));
function_q22.then(function_q19); StateTree<JavaElement> function_q22 = function_q18.then(new RedirectStateTree<>(operation_q0,(bag) -> "op"));
StateTree<JavaElement> function_q21 = function_q22;
function_q21.then(function_q19); function_q21.then(function_q19);
function_q22.then(function_q19);
function_q22.then(function_q21); function_q22.then(function_q21);
function_q21.then(function_q22); function_q21.then(function_q22);
StateTree<JavaElement> function_q0 = new StateTree<>(); StateTree<JavaElement> function_q0 = new StateTree<>();
StateTree<JavaElement> function_q1 = function_q0.then(new RedirectStateTree<>(type_q0,(bag) -> "return")); StateTree<JavaElement> function_q1 = function_q0.then(new RedirectStateTree<>(type_q0,(bag) -> "return"));
function_q1.then(LAMBDA_40).end(END_FUNC).then(function_q17); function_q1.then(LAMBDA_42).end(END_FUNC).then(function_q17);
StateTree<JavaElement> function_q3 = function_q1.then((v) -> v.validate( StateTree<JavaElement> function_q3 = function_q1.then((v) -> v.validate(
(t) -> t.getType().equals(TokenType.NAME), (t) -> t.getType().equals(TokenType.NAME),
(bag, t) -> bag.set("name",t))).then(LAMBDA_23); (bag, token) -> bag.set("name", token))).then(LAMBDA_23);
StateTree<JavaElement> function_q4 = function_q3.then(LAMBDA_24); StateTree<JavaElement> function_q4 = function_q3.then(LAMBDA_24);
StateTree<JavaElement> function_q10 = function_q4.then(LAMBDA_44).then(new RedirectStateTree<>(type_q0,(bag) -> "?")); StateTree<JavaElement> function_q10 = function_q4.then(LAMBDA_45).then(new RedirectStateTree<>(type_q0,(bag) -> "?"));
function_q10.end(END_FUNC).then(function_q17); function_q10.end(END_FUNC).then(function_q17);
StateTree<JavaElement> function_q11 = function_q10.then(LAMBDA_7); StateTree<JavaElement> function_q11 = function_q10.then(LAMBDA_7);
function_q11.then(function_q10); function_q11.then(function_q10);
@ -199,7 +222,10 @@ public class JavaParser extends Parser<JavaFile> {
StateTree<JavaElement> function_q6 = function_q3.then(new RedirectStateTree<>(type_q0,(bag) -> "?")); StateTree<JavaElement> function_q6 = function_q3.then(new RedirectStateTree<>(type_q0,(bag) -> "?"));
StateTree<JavaElement> function_q8 = function_q7.then(LAMBDA_7); StateTree<JavaElement> function_q8 = function_q7.then(LAMBDA_7);
function_q8.then(function_q6); function_q8.then(function_q6);
StateTree<JavaElement> function_q15 = function_q0.then(new RedirectStateTree<>(modifier_q0,(bag) -> "modifier")); StateTree<JavaElement> function_q15 = function_q0.then(new RedirectStateTree<>(modifier_q0, (bag) -> "?"));
StateTree<JavaElement> function_q20 = function_q0.then(new RedirectStateTree<>(annotation_q0,(bag) -> "?")).loop();
function_q20.then(function_q1);
function_q20.then(function_q15);
function_q15.then(function_q1); function_q15.then(function_q1);
StateTree<Class> class_q16 = new StateTree<>(); StateTree<Class> class_q16 = new StateTree<>();
@ -208,23 +234,27 @@ public class JavaParser extends Parser<JavaFile> {
StateTree<Class> class_q19 = class_q16.then(new RedirectStateTree<>(function_q0,(bag) -> "?")); StateTree<Class> class_q19 = class_q16.then(new RedirectStateTree<>(function_q0,(bag) -> "?"));
class_q19.then(class_q16); class_q19.then(class_q16);
StateTree<JavaFile> class_q0 = new StateTree<>(); StateTree<JavaFile> class_q0 = new StateTree<>();
StateTree<JavaFile> class_q1 = class_q0.then(LAMBDA_46); StateTree<JavaFile> class_q1 = class_q0.then(LAMBDA_47);
StateTree<JavaFile> class_q2 = class_q1.then(new RedirectStateTree<>(type_q0,(bag) -> "name")); StateTree<JavaFile> class_q2 = class_q1.then(new RedirectStateTree<>(type_q0,(bag) -> "name"));
StateTree<JavaFile> class_q9 = class_q2.then(LAMBDA_47); StateTree<JavaFile> class_q7 = class_q2.then(LAMBDA_48).then(new RedirectStateTree<>(type_q0,(bag) -> "extend"));
class_q7.then(LAMBDA_42).<Class>end(END_CLASS).then(class_q16);
class_q2.then(LAMBDA_42).<Class>end(END_CLASS).then(class_q16);
StateTree<JavaFile> class_q9 = class_q2.then(LAMBDA_49);
StateTree<JavaFile> class_q11 = class_q9.then(new RedirectStateTree<>(type_q0,(bag) -> "implement")); StateTree<JavaFile> class_q11 = class_q9.then(new RedirectStateTree<>(type_q0,(bag) -> "implement"));
class_q11.then(LAMBDA_40).<Class>end(END_CLASS).then(class_q16); class_q11.then(LAMBDA_42).<Class>end(END_CLASS).then(class_q16);
StateTree<JavaFile> class_q12 = class_q11.then(LAMBDA_7); StateTree<JavaFile> class_q12 = class_q11.then(LAMBDA_7);
class_q12.then(class_q11); class_q12.then(class_q11);
StateTree<JavaFile> class_q7 = class_q2.then(LAMBDA_48).then(new RedirectStateTree<>(type_q0,(bag) -> "extend"));
class_q7.then(class_q9); class_q7.then(class_q9);
class_q7.then(LAMBDA_40).<Class>end(END_CLASS).then(class_q16); StateTree<JavaFile> class_q17 = class_q0.then(new RedirectStateTree<>(annotation_q0,(bag) -> "class_annotation")).loop();
class_q2.then(LAMBDA_40).<Class>end(END_CLASS).then(class_q16); class_q17.then(class_q1);
StateTree<JavaFile> class_q3 = class_q0.then(new RedirectStateTree<>(modifier_q0,(bag) -> "modifier")); StateTree<JavaFile> class_q3 = class_q0.then(new RedirectStateTree<>(modifier_q0,(bag) -> "modifier"));
class_q3.then(class_q1); class_q3.then(class_q1);
class_q17.then(class_q3);
main.then(new RedirectStateTree<>(package_q0, (b) -> null)).then(main); main.then(new RedirectStateTree<>(package_q0, (b) -> null)).then(main);
main.then(new RedirectStateTree<>(import_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); main.then(new RedirectStateTree<>(class_q0, (b) -> null)).then(main);
System.out.println((System.currentTimeMillis()-time)+"ms"); System.out.println((System.currentTimeMillis()-time)+"ms");