AutoTest -> 99.37%

This commit is contained in:
jeffcheasey88 2023-09-11 15:40:54 +02:00
parent ff27fd1d79
commit e328dd12eb

View file

@ -105,7 +105,6 @@ public class JavaParser extends Parser<JavaElement> {
int m = getModifier(token.getValue()); int m = getModifier(token.getValue());
Integer current = bag.get(); Integer current = bag.get();
bag.set(current == null ? m : current+m); bag.set(current == null ? m : current+m);
System.out.println("mod "+token);
})) mod = true; })) mod = true;
return mod; return mod;
}).end((a,b) -> a); }).end((a,b) -> a);
@ -128,6 +127,8 @@ public class JavaParser extends Parser<JavaElement> {
StateTree<JavaElement> type_generic_unknow = type_begin.then((validator) -> validator.validate((token) -> token.getValue().equals("?"))); StateTree<JavaElement> type_generic_unknow = type_begin.then((validator) -> validator.validate((token) -> token.getValue().equals("?")));
type_generic_unknow.then(type_generic_end); type_generic_unknow.then(type_generic_end);
type_generic_split.then(type_generic_unknow);
type_generic_unknow.then(type_generic_split);
StateTree<JavaElement> type_generic_unknow_extends = type_generic_unknow.then((validator) -> validator.validate((token) -> token.getValue().equals("extends"))) StateTree<JavaElement> type_generic_unknow_extends = type_generic_unknow.then((validator) -> validator.validate((token) -> token.getValue().equals("extends")))
.then(new RedirectStateTree<>(type, (global, local) -> global.set(null))); .then(new RedirectStateTree<>(type, (global, local) -> global.set(null)));
type_generic_unknow_extends.then(type_generic_end); type_generic_unknow_extends.then(type_generic_end);
@ -137,12 +138,11 @@ public class JavaParser extends Parser<JavaElement> {
type_generic_unknow_super.then(type_generic_end); type_generic_unknow_super.then(type_generic_end);
type_generic_unknow_super.then(type_generic_split); type_generic_unknow_super.then(type_generic_split);
StateTree<JavaElement> type_generic_named = type_begin.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME))); StateTree<JavaElement> type_generic_named_extends = type_generic.then((validator) -> validator.validate((token) -> token.getValue().equals("extends")))
StateTree<JavaElement> type_generic_named_extends = type_generic_named.then((validator) -> validator.validate((token) -> token.getValue().equals("extends")))
.then(new RedirectStateTree<>(type, (global, local) -> global.set(null))); .then(new RedirectStateTree<>(type, (global, local) -> global.set(null)));
type_generic_named_extends.then(type_generic_end); type_generic_named_extends.then(type_generic_end);
type_generic_named_extends.then(type_generic_split); type_generic_named_extends.then(type_generic_split);
StateTree<JavaElement> type_generic_named_super = type_generic_named.then((validator) -> validator.validate((token) -> token.getValue().equals("super"))) StateTree<JavaElement> type_generic_named_super = type_generic.then((validator) -> validator.validate((token) -> token.getValue().equals("super")))
.then(new RedirectStateTree<>(type, (global, local) -> global.set(null))); .then(new RedirectStateTree<>(type, (global, local) -> global.set(null)));
type_generic_named_super.then(type_generic_end); type_generic_named_super.then(type_generic_end);
type_generic_named_super.then(type_generic_split); type_generic_named_super.then(type_generic_split);
@ -161,6 +161,9 @@ public class JavaParser extends Parser<JavaElement> {
clazz_container.then((validator) -> validator.validate((token) -> token.getValue().equals(";"))).end((a,b) -> a); clazz_container.then((validator) -> validator.validate((token) -> token.getValue().equals(";"))).end((a,b) -> a);
StateTree<JavaElement> braces_container = new StateTree<>(); StateTree<JavaElement> braces_container = new StateTree<>();
StateTree<JavaElement> function_container = new StateTree<>();
function_container.then((validator) -> validator.validate((token) -> token.getValue().equals(";"))).end((a,b) -> a);
//VALUE //VALUE
StateTree<JavaElement> value = new StateTree<>(); StateTree<JavaElement> value = new StateTree<>();
@ -170,24 +173,18 @@ public class JavaParser extends Parser<JavaElement> {
StateTree<JavaElement> value_name = new StateTree<JavaElement>(); StateTree<JavaElement> value_name = new StateTree<JavaElement>();
value.then(value_name); value.then(value_name);
value_instance.then(new RedirectStateTree<>(value_name, (global, local) -> global.set(local))) value_instance.then(new RedirectStateTree<>(value_name, (global, local) -> global.set(local)))
.end((a,b) -> { .end((a,b) -> a)
System.out.println("new "+b);
return a;
})
.then((validator) -> validator.validate((token) -> token.getValue().equals("{"))) .then((validator) -> validator.validate((token) -> token.getValue().equals("{")))
.end((a,b) -> a) .end((a,b) -> a)
.multiple(braces_container) .multiple(braces_container)
.unique((validator) -> validator.validate((token) -> token.getValue().equals("}"))).end((a,b) -> a); .unique((validator) -> validator.validate((token) -> token.getValue().equals("}"))).end((a,b) -> a);
value_name = value_name.then((validator) -> validator.validate( value_name = value_name.then(new RedirectStateTree<>(type, (global, local) -> global.set(null)));
(token) -> token.getType().equals(TokenType.NAME),
(bag, token) -> {
Token current = bag.get();
if(current == null) current = token;
else current = current.concat(token);
bag.set(current);
}));
value_name.end((a,b) -> a); value_name.end((a,b) -> a);
value_name.then((validator) -> validator.validate((token) -> token.getValue().equals(":")) && validator.validate((token) -> token.getValue().equals(":")))
.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME)))
.end((a,b) -> a);
StateTree<JavaElement> value_call = value_name.then((validator) -> validator.validate((token) -> token.getValue().equals("."))); StateTree<JavaElement> value_call = value_name.then((validator) -> validator.validate((token) -> token.getValue().equals(".")));
value_call.end((a,b) -> a); value_call.end((a,b) -> a);
value_call.then(value_name); value_call.then(value_name);
@ -218,25 +215,17 @@ public class JavaParser extends Parser<JavaElement> {
if(count == null) count = 0; if(count == null) count = 0;
global.set("arg"+count, local); global.set("arg"+count, local);
global.set("args", (count+1)); global.set("args", (count+1));
System.out.println("inside of method call");
})); }));
value_arg.then((validator) -> validator.validate((token) -> token.getValue().equals(","))) value_arg.then((validator) -> validator.validate((token) -> token.getValue().equals(",")))
.then(value_arg); .then(value_arg);
value_arg.then(value_arg_end); value_arg.then(value_arg_end);
StateTree<JavaElement> value_left = new StateTree<>(); StateTree<JavaElement> value_left = new StateTree<>();
value_container.then((v) -> v.validate((t) -> {
System.out.println("value container "+t);
return false;
}));
StateTree<JavaElement> value_parenthesis = value_container.then((validator) -> validator.validate((token) -> token.getValue().equals("("))); StateTree<JavaElement> value_parenthesis = value_container.then((validator) -> validator.validate((token) -> token.getValue().equals("(")));
value_parenthesis.then((v) -> v.validate((t) -> { StateTree<JavaElement> value_cast = value_parenthesis.then(new RedirectStateTree<>(type, (global, local) -> global.set(null)))
System.out.println("value parenthesis "+t);
return false;
}));
StateTree<JavaElement> value_cast = value_parenthesis.then(new RedirectStateTree<>(type, (global, local) -> System.out.println("can u casted ?")))
.then((validator) -> validator.validate((token) -> token.getValue().equals(")"))) .then((validator) -> validator.validate((token) -> token.getValue().equals(")")))
.then(new RedirectStateTree<>(value_container, (global, local) -> System.out.println("casted"))); .then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null)));
value_cast.then(value_left); value_cast.then(value_left);
StateTree<JavaElement> value_lambda_arg = value_parenthesis.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME))); StateTree<JavaElement> value_lambda_arg = value_parenthesis.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME)));
value_lambda_arg.then((validator) -> validator.validate((token) -> token.getValue().equals(","))) value_lambda_arg.then((validator) -> validator.validate((token) -> token.getValue().equals(",")))
@ -247,18 +236,14 @@ public class JavaParser extends Parser<JavaElement> {
validator.validate((token) -> token.getValue().equals(">"))); validator.validate((token) -> token.getValue().equals(">")));
value_lambda.then((validator) -> validator.validate((token) -> token.getValue().equals("{"))) value_lambda.then((validator) -> validator.validate((token) -> token.getValue().equals("{")))
.end((a,b) -> a).end((a,b) -> a) .end((a,b) -> a).end((a,b) -> a)
.multiple(braces_container) .multiple(function_container)
.unique((validator) -> validator.validate((token) -> token.getValue().equals("}"))).end((a,b) -> a); .unique((validator) -> validator.validate((token) -> token.getValue().equals("}"))).end((a,b) -> a);
value_lambda.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a); value_lambda.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
value_lambda_arg.then(value_lambda); value_lambda_arg.then(value_lambda);
StateTree<JavaElement> value_parenthesis_end = value_parenthesis.then(new RedirectStateTree<>(value_container, (global, local) -> System.out.println("in a container"))) StateTree<JavaElement> value_parenthesis_end = value_parenthesis.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null)))
.then((validator) -> validator.validate((token) -> token.getValue().equals(")"))); .then((validator) -> validator.validate((token) -> token.getValue().equals(")")));
value_parenthesis_end.end((a,b) -> { value_parenthesis_end.end((a,b) -> a);
System.out.println("we got a container");
return a;
});
value_parenthesis_end.then((v) -> v.validate((t) -> { value_parenthesis_end.then((v) -> v.validate((t) -> {
System.out.println("so then, left or call ?");
return false; return false;
})); }));
value_parenthesis_end.then(value_call); value_parenthesis_end.then(value_call);
@ -317,9 +302,10 @@ public class JavaParser extends Parser<JavaElement> {
.then((validator) -> validator.validate((token) -> token.getValue().equals(":"))) .then((validator) -> validator.validate((token) -> token.getValue().equals(":")))
.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))) .then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null)))
.end((a,b) -> a); .end((a,b) -> a);
value_left.then((validator) -> validator.validate((token) -> token.getValue().equals("instanceof"))) StateTree<JavaElement> value_instanceof = value_left.then((validator) -> validator.validate((token) -> token.getValue().equals("instanceof")))
.then(new RedirectStateTree<>(type, (global, local) -> global.set(null))) .then(new RedirectStateTree<>(type, (global, local) -> global.set(null)));
.end((a,b) -> a); value_instanceof.end((a,b) -> a);
value_instanceof.then(value_left);
value.then((validator) -> { value.then((validator) -> {
if(validator.validate((token) -> token.getValue().equals("'"))){ if(validator.validate((token) -> token.getValue().equals("'"))){
@ -400,9 +386,6 @@ public class JavaParser extends Parser<JavaElement> {
annotation_value.then(annotation_end); annotation_value.then(annotation_end);
annotation_begin.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).then(annotation_end); annotation_begin.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).then(annotation_end);
StateTree<JavaElement> function_container = new StateTree<>();
function_container.then((validator) -> validator.validate((token) -> token.getValue().equals(";"))).end((a,b) -> a);
//VARIABLE //VARIABLE
InitialStateTree<JavaElement> variable = new InitialStateTree<>(); InitialStateTree<JavaElement> variable = new InitialStateTree<>();
variable.multiple(annotation); variable.multiple(annotation);
@ -442,7 +425,7 @@ public class JavaParser extends Parser<JavaElement> {
operation_value.then((validator) -> validator.validate((token) -> token.getValue().equals(","))).then(operation_value); operation_value.then((validator) -> validator.validate((token) -> token.getValue().equals(","))).then(operation_value);
StateTree<JavaElement> operation_return = operation.then((validator) -> validator.validate((token) -> token.getValue().equals("return"))); StateTree<JavaElement> operation_return = operation.then((validator) -> validator.validate((token) -> token.getValue().equals("return")));
operation_return.then(new RedirectStateTree<>(value_container, (global, local) -> System.out.println("return value"))) operation_return.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null)))
.then((validator) -> validator.validate((token) -> token.getValue().equals(";"))) .then((validator) -> validator.validate((token) -> token.getValue().equals(";")))
.end((a,b) -> a); .end((a,b) -> a);
operation_return.then((validator) -> validator.validate((token) -> token.getValue().equals(";"))) operation_return.then((validator) -> validator.validate((token) -> token.getValue().equals(";")))
@ -485,6 +468,7 @@ public class JavaParser extends Parser<JavaElement> {
// .unique((validator) -> validator.validate((token) -> token.getValue().equals("}"))) // .unique((validator) -> validator.validate((token) -> token.getValue().equals("}")))
// .end((a,b) -> a); // .end((a,b) -> a);
// //
StateTree<JavaElement> operation_catch_named = operation_try_end.then((validator) -> validator.validate((token) -> token.getValue().equals("catch"))) StateTree<JavaElement> operation_catch_named = operation_try_end.then((validator) -> validator.validate((token) -> token.getValue().equals("catch")))
.then((validator) -> validator.validate((token) -> token.getValue().equals("("))) .then((validator) -> validator.validate((token) -> token.getValue().equals("(")))
.then(new RedirectStateTree<>(type, (global, local) -> global.set(null))); .then(new RedirectStateTree<>(type, (global, local) -> global.set(null)));
@ -643,15 +627,9 @@ public class JavaParser extends Parser<JavaElement> {
StateTree<JavaElement> function_begin = function_name.then((validator) -> validator.validate((token) -> token.getValue().equals("("))); StateTree<JavaElement> function_begin = function_name.then((validator) -> validator.validate((token) -> token.getValue().equals("(")));
StateTree<JavaElement> function_end = function_begin.then((validator) -> validator.validate((token) -> token.getValue().equals(")"))); StateTree<JavaElement> function_end = function_begin.then((validator) -> validator.validate((token) -> token.getValue().equals(")")));
function_end.then((validator) -> validator.validate((token) -> token.getValue().equals("{"))) function_end.then((validator) -> validator.validate((token) -> token.getValue().equals("{")))
.end((a,b) -> { .end((a,b) -> a)
System.out.println("build function "+b);
return a;
})
.multiple(function_container) .multiple(function_container)
.unique((validator) -> validator.validate((token) -> token.getValue().equals("}"))).end((a,b) -> { .unique((validator) -> validator.validate((token) -> token.getValue().equals("}"))).end((a,b) -> a);
System.out.println("inside of the function "+b);
return a;
});
function_end.then((validator) -> validator.validate((token) -> token.getValue().equals(";"))).end((a,b) -> a); function_end.then((validator) -> validator.validate((token) -> token.getValue().equals(";"))).end((a,b) -> a);
function_end.then((validator) -> validator.validate((token) -> token.getValue().equals("default"))) function_end.then((validator) -> validator.validate((token) -> token.getValue().equals("default")))
.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))) .then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null)))
@ -750,12 +728,6 @@ public class JavaParser extends Parser<JavaElement> {
mult_clazz_container.multiple(clazz_container); mult_clazz_container.multiple(clazz_container);
mult_clazz_container.end((a,b) -> a); mult_clazz_container.end((a,b) -> a);
StateTree<JavaElement> debug = new StateTree<>();
debug.then((v) -> v.validate((t) -> {
System.out.println("debug "+t);
return false;
}));
//ENUM //ENUM
StateTree<JavaElement> enums = new StateTree<>(); StateTree<JavaElement> enums = new StateTree<>();
StateTree<JavaElement> enum_base = enums.then((validator) -> validator.validate((token) -> token.getValue().equals("enum"))) StateTree<JavaElement> enum_base = enums.then((validator) -> validator.validate((token) -> token.getValue().equals("enum")))
@ -765,7 +737,6 @@ public class JavaParser extends Parser<JavaElement> {
enum_start.end((a,b) -> a) enum_start.end((a,b) -> a)
.unique(enum_value) .unique(enum_value)
.unique(mult_clazz_container) .unique(mult_clazz_container)
.unique(debug)
.unique((validator) -> validator.validate((token) -> token.getValue().equals("}"))).end((a,b) -> a); .unique((validator) -> validator.validate((token) -> token.getValue().equals("}"))).end((a,b) -> a);
StateTree<JavaElement> enum_implement = enum_base.then((validator) -> validator.validate((token) -> token.getValue().equals("implements"))); StateTree<JavaElement> enum_implement = enum_base.then((validator) -> validator.validate((token) -> token.getValue().equals("implements")));