AutoTest -> 51.762%
This commit is contained in:
parent
4486a43482
commit
97e0465628
1 changed files with 24 additions and 4 deletions
|
@ -73,6 +73,7 @@ public class JavaParser extends Parser<JavaElement> {
|
||||||
//- Modifier
|
//- Modifier
|
||||||
//- Type
|
//- Type
|
||||||
//- Value
|
//- Value
|
||||||
|
//- Annotation
|
||||||
//- Operation
|
//- Operation
|
||||||
//- Variable
|
//- Variable
|
||||||
//- Function
|
//- Function
|
||||||
|
@ -239,6 +240,22 @@ public class JavaParser extends Parser<JavaElement> {
|
||||||
return false;
|
return false;
|
||||||
}).end((a,b) -> a);
|
}).end((a,b) -> a);
|
||||||
|
|
||||||
|
//ANNOTATION
|
||||||
|
StateTree<JavaElement> annotation = new StateTree<>();
|
||||||
|
StateTree<JavaElement> annotation_name = annotation.then((validator) -> validator.validate((token) -> token.getValue().equals("@")))
|
||||||
|
.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME)));
|
||||||
|
annotation_name.then((validator) -> validator.validate((token) -> token.getValue().equals("."))).then(annotation_name);
|
||||||
|
annotation_name.end((a,b) -> a);
|
||||||
|
StateTree<JavaElement> annotation_begin = annotation_name.then((validator) -> validator.validate((token) -> token.getValue().equals("(")));
|
||||||
|
StateTree<JavaElement> annotation_end = annotation_begin.then((validator) -> validator.validate((token) -> token.getValue().equals(")")));
|
||||||
|
annotation_end.end((a,b) -> a);
|
||||||
|
StateTree<JavaElement> annotation_var = annotation_begin.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME)));
|
||||||
|
StateTree<JavaElement> annotation_value = annotation_var.then((validator) -> validator.validate((token) -> token.getValue().equals("=")))
|
||||||
|
.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null)));
|
||||||
|
annotation_value.then((validator) -> validator.validate((token) -> token.getValue().equals(","))).then(annotation_var);
|
||||||
|
annotation_value.then(annotation_end);
|
||||||
|
annotation_begin.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).then(annotation_end);
|
||||||
|
|
||||||
StateTree<JavaElement> function_container = new StateTree<>();
|
StateTree<JavaElement> function_container = new StateTree<>();
|
||||||
|
|
||||||
//OPERATION
|
//OPERATION
|
||||||
|
@ -313,7 +330,8 @@ public class JavaParser extends Parser<JavaElement> {
|
||||||
.end((a,b) -> a);
|
.end((a,b) -> a);
|
||||||
|
|
||||||
//VARIABLE
|
//VARIABLE
|
||||||
StateTree<JavaElement> variable = new StateTree<>();
|
InitialStateTree<JavaElement> variable = new InitialStateTree<>();
|
||||||
|
variable.multiple(annotation);
|
||||||
StateTree<JavaElement> variable_mod = variable.then(new RedirectStateTree<>(modifier, (global, local) -> global.set("modifier", local)));
|
StateTree<JavaElement> variable_mod = variable.then(new RedirectStateTree<>(modifier, (global, local) -> global.set("modifier", local)));
|
||||||
StateTree<JavaElement> variable_type = variable.then(new RedirectStateTree<>(type, (global, local) -> global.set("type", local)));
|
StateTree<JavaElement> variable_type = variable.then(new RedirectStateTree<>(type, (global, local) -> global.set("type", local)));
|
||||||
variable_mod.then(variable_type);
|
variable_mod.then(variable_type);
|
||||||
|
@ -334,7 +352,8 @@ public class JavaParser extends Parser<JavaElement> {
|
||||||
function_container.then(operation);
|
function_container.then(operation);
|
||||||
|
|
||||||
//FUNCTION
|
//FUNCTION
|
||||||
StateTree<JavaElement> function = new StateTree<>();
|
InitialStateTree<JavaElement> function = new InitialStateTree<>();
|
||||||
|
function.multiple(annotation);
|
||||||
BuilderStateTree<JavaElement,JavaElement> function_static = function.then((validator) -> validator.validate((token) -> token.getValue().equals("static")) && validator.validate((token) -> token.getValue().equals("{"))).end((a,b) -> a);
|
BuilderStateTree<JavaElement,JavaElement> function_static = function.then((validator) -> validator.validate((token) -> token.getValue().equals("static")) && validator.validate((token) -> token.getValue().equals("{"))).end((a,b) -> a);
|
||||||
function_static.multiple(function_container);
|
function_static.multiple(function_container);
|
||||||
function_static.unique((validator) -> validator.validate((token) -> token.getValue().equals("}"))).end((a,b) -> a);
|
function_static.unique((validator) -> validator.validate((token) -> token.getValue().equals("}"))).end((a,b) -> a);
|
||||||
|
@ -365,8 +384,8 @@ public class JavaParser extends Parser<JavaElement> {
|
||||||
function_arg_name.then(function_end);
|
function_arg_name.then(function_end);
|
||||||
|
|
||||||
|
|
||||||
clazz_container.then(variable);
|
|
||||||
clazz_container.then(function);
|
clazz_container.then(function);
|
||||||
|
clazz_container.then(variable);
|
||||||
|
|
||||||
//CLASS
|
//CLASS
|
||||||
StateTree<JavaElement> clazz_ = new StateTree<>();
|
StateTree<JavaElement> clazz_ = new StateTree<>();
|
||||||
|
@ -436,6 +455,7 @@ public class JavaParser extends Parser<JavaElement> {
|
||||||
}).end((javafile, bag) -> javafile);
|
}).end((javafile, bag) -> javafile);
|
||||||
main.multiple(pack);
|
main.multiple(pack);
|
||||||
main.multiple(importState);
|
main.multiple(importState);
|
||||||
|
main.multiple(annotation);
|
||||||
main.multiple(clazz_);
|
main.multiple(clazz_);
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue