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
|
||||
//- Type
|
||||
//- Value
|
||||
//- Annotation
|
||||
//- Operation
|
||||
//- Variable
|
||||
//- Function
|
||||
|
@ -239,6 +240,22 @@ public class JavaParser extends Parser<JavaElement> {
|
|||
return false;
|
||||
}).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<>();
|
||||
|
||||
//OPERATION
|
||||
|
@ -313,7 +330,8 @@ public class JavaParser extends Parser<JavaElement> {
|
|||
.end((a,b) -> a);
|
||||
|
||||
//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_type = variable.then(new RedirectStateTree<>(type, (global, local) -> global.set("type", local)));
|
||||
variable_mod.then(variable_type);
|
||||
|
@ -334,7 +352,8 @@ public class JavaParser extends Parser<JavaElement> {
|
|||
function_container.then(operation);
|
||||
|
||||
//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);
|
||||
function_static.multiple(function_container);
|
||||
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);
|
||||
|
||||
|
||||
clazz_container.then(variable);
|
||||
clazz_container.then(function);
|
||||
clazz_container.then(variable);
|
||||
|
||||
//CLASS
|
||||
StateTree<JavaElement> clazz_ = new StateTree<>();
|
||||
|
@ -436,6 +455,7 @@ public class JavaParser extends Parser<JavaElement> {
|
|||
}).end((javafile, bag) -> javafile);
|
||||
main.multiple(pack);
|
||||
main.multiple(importState);
|
||||
main.multiple(annotation);
|
||||
main.multiple(clazz_);
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue