[Parse Class] -> Function with one operation

This commit is contained in:
jeffcheasey88 2023-07-10 13:50:08 +02:00
parent eef3e16527
commit 98dd1416a8
2 changed files with 14 additions and 10 deletions

View file

@ -44,6 +44,7 @@ public class JavaParser extends Parser<JavaFile> {
Token base = bag.get(); Token base = bag.get();
if(base == null) bag.set(token); if(base == null) bag.set(token);
else bag.set(base.concat(token)); else bag.set(base.concat(token));
System.out.println("name validate "+token);
}), }),
LAMBDA_mod = (v) -> v.validate((t) -> LAMBDA_mod = (v) -> v.validate((t) ->
JavaParser.getModifier(t.getValue()) > 0, JavaParser.getModifier(t.getValue()) > 0,
@ -78,6 +79,7 @@ public class JavaParser extends Parser<JavaFile> {
}); });
BiFunction<JavaElement, TokenValidator, JavaElement> BiFunction<JavaElement, TokenValidator, JavaElement>
END_OP = ((javafile, validator) -> { END_OP = ((javafile, validator) -> {
System.out.println("\top");
return javafile; return javafile;
}); });
@ -157,9 +159,8 @@ public class JavaParser extends Parser<JavaFile> {
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(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_OP); operation_q1.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).then(LAMBDA_1).end(END_OP);
StateTree<JavaElement> operation_q5 = operation_q1.then(LAMBDA_25); operation_q1.then(LAMBDA_25).then(operation_q1);
operation_q5.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_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_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);
@ -173,17 +174,20 @@ public class JavaParser extends Parser<JavaFile> {
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_40);
function_q18.then(LAMBDA_41).end(END_FUNC); StateTree<JavaElement> function_q19 = function_q18.then(LAMBDA_41);
function_q19.end(END_FUNC);
StateTree<JavaElement> function_q22 = function_q18.then(new RedirectStateTree<>(operation_q0,(bag) -> "?")); StateTree<JavaElement> function_q22 = function_q18.then(new RedirectStateTree<>(operation_q0,(bag) -> "?"));
function_q22.then(function_q18); function_q22.then(function_q19);
StateTree<JavaElement> function_q21 = function_q18.then(new RedirectStateTree<>(variable_q0,(bag) -> "?")); StateTree<JavaElement> function_q21 = function_q22;
function_q21.then(function_q18); function_q21.then(function_q19);
function_q22.then(function_q21);
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_40).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, t) -> bag.set("name",t))).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_44).then(new RedirectStateTree<>(type_q0,(bag) -> "?"));
function_q10.end(END_FUNC).then(function_q17); function_q10.end(END_FUNC).then(function_q17);

View file

@ -23,7 +23,7 @@ public class RedirectStateTree<E, T extends E> extends StateTree<T>{
String g = group.apply(currentBag); String g = group.apply(currentBag);
localBag.addPath(currentBag.path()+"/"+g); localBag.addPath(currentBag.path()+"/"+g);
// System.out.println("redirect "+localBag.path()); System.out.println("redirect "+localBag.path());
currentBag.set(g, localBag); currentBag.set(g, localBag);
validator.setBag(localBag); validator.setBag(localBag);
@ -33,7 +33,7 @@ public class RedirectStateTree<E, T extends E> extends StateTree<T>{
return false; return false;
}); });
Object builded = redirect.internalSeed(branch, (E) element); Object builded = redirect.internalSeed(branch, (E) element);
// System.out.println("redirect "+localBag.path()+" builded "+builded); System.out.println("redirect "+localBag.path()+" builded "+builded);
if(builded == null) return null; if(builded == null) return null;
validator.merge(branch); validator.merge(branch);