[Parse Class] -> Annotations
This commit is contained in:
parent
1bc2ee52ea
commit
84cc9d8574
1 changed files with 74 additions and 44 deletions
|
@ -82,6 +82,11 @@ public class JavaParser extends Parser<JavaFile> {
|
|||
System.out.println("\top");
|
||||
return javafile;
|
||||
});
|
||||
BiFunction<JavaElement, TokenValidator, JavaElement>
|
||||
END_ANNOTATION = ((javafile, validator) -> {
|
||||
System.out.println("ANNOTATION");
|
||||
return javafile;
|
||||
});
|
||||
|
||||
public JavaParser(){
|
||||
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_7 = (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_24 = (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_29 = (v) -> v.validate((t) -> t.getValue().equals("oneChar"));
|
||||
Function<TokenValidator, Boolean> LAMBDA_30 = (v) -> v.validate((t) -> t.getValue().equals("if"));
|
||||
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("while"));
|
||||
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("do"));
|
||||
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("continue"));
|
||||
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("break"));
|
||||
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("{"));
|
||||
Function<TokenValidator, Boolean> LAMBDA_41 = (v) -> v.validate((t) -> t.getValue().equals("}"));
|
||||
Function<TokenValidator, Boolean> LAMBDA_44 = (v) -> v.validate((t) -> t.getValue().equals("throws"));
|
||||
Function<TokenValidator, Boolean> LAMBDA_46 = (v) -> v.validate((t) -> t.getValue().equals("class"));
|
||||
Function<TokenValidator, Boolean> LAMBDA_47 = (v) -> v.validate((t) -> t.getValue().equals("implements"));
|
||||
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("@"));
|
||||
Function<TokenValidator, Boolean> LAMBDA_32 = (v) -> v.validate((t) -> t.getValue().equals("if"));
|
||||
Function<TokenValidator, Boolean> LAMBDA_33 = (v) -> v.validate((t) -> t.getValue().equals("for"));
|
||||
Function<TokenValidator, Boolean> LAMBDA_34 = (v) -> v.validate((t) -> t.getValue().equals("while"));
|
||||
Function<TokenValidator, Boolean> LAMBDA_35 = (v) -> v.validate((t) -> t.getValue().equals("return"));
|
||||
Function<TokenValidator, Boolean> LAMBDA_36 = (v) -> v.validate((t) -> t.getValue().equals("do"));
|
||||
Function<TokenValidator, Boolean> LAMBDA_37 = (v) -> v.validate((t) -> t.getValue().equals("synchronized"));
|
||||
Function<TokenValidator, Boolean> LAMBDA_38 = (v) -> v.validate((t) -> t.getValue().equals("continue"));
|
||||
Function<TokenValidator, Boolean> LAMBDA_39 = (v) -> v.validate((t) -> t.getValue().equals("throw"));
|
||||
Function<TokenValidator, Boolean> LAMBDA_40 = (v) -> v.validate((t) -> t.getValue().equals("break"));
|
||||
Function<TokenValidator, Boolean> LAMBDA_41 = (v) -> v.validate((t) -> t.getValue().equals("try"));
|
||||
Function<TokenValidator, Boolean> LAMBDA_42 = (v) -> v.validate((t) -> t.getValue().equals("{"));
|
||||
Function<TokenValidator, Boolean> LAMBDA_43 = (v) -> v.validate((t) -> t.getValue().equals("}"));
|
||||
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("class"));
|
||||
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> package_q0 = new StateTree<>();
|
||||
|
@ -145,51 +152,67 @@ public class JavaParser extends Parser<JavaFile> {
|
|||
|
||||
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_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_q2 = variable_q1.then(LAMBDA_name);
|
||||
StateTree<JavaElement> variable_q5 = variable_q2.then(LAMBDA_7);
|
||||
StateTree<JavaElement> variable_q7 = variable_q2.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?"));
|
||||
variable_q7.then(variable_q5);
|
||||
variable_q7.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);
|
||||
StateTree<JavaElement> variable_q10 = variable_q0.then(new RedirectStateTree<>(modifier_q0,(bag) -> "modifier"));
|
||||
variable_q10.then(variable_q1);
|
||||
variable_q11.then(variable_q1);
|
||||
|
||||
StateTree<JavaElement> operation_q0 = new StateTree<>();
|
||||
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_25).then(operation_q1);
|
||||
operation_q0.then(LAMBDA_30).then(LAMBDA_23).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).then(LAMBDA_24).<JavaElement>end(END_OP);
|
||||
operation_q0.then(LAMBDA_31).then(LAMBDA_23).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).then(LAMBDA_24).<JavaElement>end(END_OP);
|
||||
operation_q1.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).then(LAMBDA_1).<JavaElement>end(END_OP);
|
||||
StateTree<JavaElement> 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) -> "?")).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_34).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).<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_36).then(LAMBDA_1).<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_33).then(LAMBDA_23).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).then(LAMBDA_24).<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(new RedirectStateTree<>(value_q0,(bag) -> "?")).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(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_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_q18 = function_q17.then(LAMBDA_40);
|
||||
StateTree<JavaElement> function_q19 = function_q18.then(LAMBDA_41);
|
||||
function_q19.end((func, validator) -> func);
|
||||
StateTree<JavaElement> function_q22 = function_q18.then(new RedirectStateTree<>(operation_q0,(bag) -> "?"));
|
||||
function_q22.then(function_q19);
|
||||
StateTree<JavaElement> function_q21 = function_q22;
|
||||
StateTree<JavaElement> function_q18 = function_q17.then(LAMBDA_42);
|
||||
StateTree<JavaElement> function_q19 = function_q18.then(LAMBDA_43);
|
||||
function_q19.end((a,b) -> { System.out.println("\t\tolala"); return a;});
|
||||
StateTree<JavaElement> function_q21 = function_q18.then(new RedirectStateTree<>(variable_q0,(bag) -> "var"));
|
||||
StateTree<JavaElement> function_q22 = function_q18.then(new RedirectStateTree<>(operation_q0,(bag) -> "op"));
|
||||
function_q21.then(function_q19);
|
||||
function_q22.then(function_q19);
|
||||
function_q22.then(function_q21);
|
||||
function_q21.then(function_q22);
|
||||
StateTree<JavaElement> function_q0 = new StateTree<>();
|
||||
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(
|
||||
(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_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);
|
||||
StateTree<JavaElement> function_q11 = function_q10.then(LAMBDA_7);
|
||||
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_q8 = function_q7.then(LAMBDA_7);
|
||||
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);
|
||||
|
||||
StateTree<Class> class_q16 = new StateTree<>();
|
||||
|
@ -208,24 +234,28 @@ public class JavaParser extends Parser<JavaFile> {
|
|||
StateTree<Class> class_q19 = class_q16.then(new RedirectStateTree<>(function_q0,(bag) -> "?"));
|
||||
class_q19.then(class_q16);
|
||||
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_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"));
|
||||
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);
|
||||
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(LAMBDA_40).<Class>end(END_CLASS).then(class_q16);
|
||||
class_q2.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_q17.then(class_q1);
|
||||
StateTree<JavaFile> class_q3 = class_q0.then(new RedirectStateTree<>(modifier_q0,(bag) -> "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 {
|
||||
|
|
Loading…
Add table
Reference in a new issue