AutoTest -> 98.06%
This commit is contained in:
parent
2740382354
commit
ff27fd1d79
1 changed files with 62 additions and 13 deletions
|
@ -6,7 +6,6 @@ import java.io.File;
|
|||
import java.io.FileReader;
|
||||
import java.io.FileWriter;
|
||||
import java.lang.reflect.Modifier;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -117,6 +116,8 @@ public class JavaParser extends Parser<JavaElement> {
|
|||
validator.validate(
|
||||
(token) -> token.getType().equals(TokenType.NAME),
|
||||
(bag, token) -> bag.set(token)));
|
||||
type_.then((validator) -> validator.validate((token) -> token.getValue().equals(".")))
|
||||
.then(type_);
|
||||
StateTree<JavaElement> gen = new StateTree<>();
|
||||
type_.then(gen);
|
||||
StateTree<JavaElement> type_begin = gen.then((validator) -> validator.validate((token) -> token.getValue().equals("<")));
|
||||
|
@ -283,9 +284,14 @@ public class JavaParser extends Parser<JavaElement> {
|
|||
value_max.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
|
||||
value_max.then((validator) -> validator.validate((token) -> token.getValue().equals("="))).then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
|
||||
value_left.then((validator) -> validator.validate((token) -> token.getValue().equals("!")) && validator.validate((token) -> token.getValue().equals("="))).then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
|
||||
value_left.then((validator) -> validator.validate((token) -> token.getValue().equals("|")) && validator.validate((token) -> token.getValue().equals("|"))).then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
|
||||
value_left.then((validator) -> validator.validate((token) -> token.getValue().equals("&")) && validator.validate((token) -> token.getValue().equals("&"))).then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
|
||||
value_left.then((validator) -> validator.validate((token) -> token.getValue().equals("&"))).then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
|
||||
StateTree<JavaElement> value_or = value_left.then((validator) -> validator.validate((token) -> token.getValue().equals("|")));
|
||||
value_or.then((validator) -> validator.validate((token) -> token.getValue().equals("|"))).then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
|
||||
value_or.then((validator) -> validator.validate((token) -> token.getValue().equals("="))).then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
|
||||
value_or.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
|
||||
StateTree<JavaElement> value_and = value_left.then((validator) -> validator.validate((token) -> token.getValue().equals("&")));
|
||||
value_and.then((validator) -> validator.validate((token) -> token.getValue().equals("&"))).then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
|
||||
value_and.then((validator) -> validator.validate((token) -> token.getValue().equals("="))).then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
|
||||
value_and.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
|
||||
StateTree<JavaElement> value_plus = value_left.then((validator) -> validator.validate((token) -> token.getValue().equals("+")));
|
||||
value_plus.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
|
||||
value_plus.then((validator) -> validator.validate((token) -> token.getValue().equals("="))).then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
|
||||
|
@ -300,6 +306,9 @@ public class JavaParser extends Parser<JavaElement> {
|
|||
StateTree<JavaElement> value_mod = value_left.then((validator) -> validator.validate((token) -> token.getValue().equals("%")));
|
||||
value_mod.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
|
||||
value_mod.then((validator) -> validator.validate((token) -> token.getValue().equals("="))).then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
|
||||
StateTree<JavaElement> value_xor = value_left.then((validator) -> validator.validate((token) -> token.getValue().equals("^")));
|
||||
value_xor.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
|
||||
value_xor.then((validator) -> validator.validate((token) -> token.getValue().equals("="))).then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
|
||||
StateTree<JavaElement> value_mult = value_left.then((validator) -> validator.validate((token) -> token.getValue().equals("*")));
|
||||
value_mult.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
|
||||
value_mult.then((validator) -> validator.validate((token) -> token.getValue().equals("="))).then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null))).end((a,b) -> a);
|
||||
|
@ -540,9 +549,18 @@ public class JavaParser extends Parser<JavaElement> {
|
|||
StateTree<JavaElement> operation_for_first_part = operation_for.then((validator) -> validator.validate((token) -> token.getValue().equals(";")));
|
||||
|
||||
|
||||
StateTree<JavaElement> operation_for_modifier = operation_for.then((validator) -> validator.validate((token) -> getModifier(token.getValue()) > 0));
|
||||
operation_for_modifier.then(operation_for_modifier);
|
||||
|
||||
StateTree<JavaElement> operation_for_type = operation_for.then(new RedirectStateTree<>(type, (global, local) -> global.set(null)));
|
||||
operation_for_modifier.then(operation_for_type);
|
||||
|
||||
StateTree<JavaElement> operation_for_assign = operation_for.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME)));
|
||||
operation_for_modifier.then(operation_for_assign);
|
||||
operation_for_type.then(operation_for_assign);
|
||||
|
||||
StateTree<JavaElement> operation_for_assign_end = operation_for_assign.then((validator) -> validator.validate((token) -> token.getValue().equals("=")))
|
||||
.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME)));
|
||||
.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null)));
|
||||
|
||||
operation_for_assign.then(operation_for_assign);
|
||||
operation_for_assign.then(operation_for_first_part);
|
||||
|
@ -555,18 +573,26 @@ public class JavaParser extends Parser<JavaElement> {
|
|||
|
||||
StateTree<JavaElement> operation_for_second_part = operation_for_first_part.then((validator) -> validator.validate((token) -> token.getValue().equals(";")));
|
||||
|
||||
operation_for_first_part.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME)))
|
||||
operation_for_first_part.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null)))
|
||||
.then(operation_for_second_part);
|
||||
|
||||
StateTree<JavaElement> operation_for_end = operation_for_second_part.then((validator) -> validator.validate((token) -> token.getValue().equals(")")));
|
||||
operation_for_end.end((a,b) -> a);
|
||||
|
||||
operation_for_end.then((validator) -> validator.validate((token) -> token.getValue().equals("{")))
|
||||
.end((a,b) -> a)
|
||||
.multiple(function_container)
|
||||
.unique((validator) -> validator.validate((token) -> token.getValue().equals("}")))
|
||||
.end((a,b) -> a);
|
||||
|
||||
operation_for_assign.then((validator) -> validator.validate((token) -> token.getValue().equals(":")))
|
||||
.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME)))
|
||||
.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null)))
|
||||
.then(operation_for_end);
|
||||
|
||||
operation_for_second_part.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME)))
|
||||
.then(operation_for_end);
|
||||
StateTree<JavaElement> operation_for_update = operation_for_second_part.then(new RedirectStateTree<>(value_container, (global, local) -> global.set(null)));
|
||||
operation_for_update.then(operation_for_end);
|
||||
operation_for_update.then((validator) -> validator.validate((token) -> token.getValue().equals(",")))
|
||||
.then(operation_for_update);
|
||||
|
||||
StateTree<JavaElement> operation_while = operation.then((validator) -> validator.validate((token) -> token.getValue().equals("while")))
|
||||
.then((validator) -> validator.validate((token) -> token.getValue().equals("(")))
|
||||
|
@ -588,6 +614,10 @@ public class JavaParser extends Parser<JavaElement> {
|
|||
.then((validator) -> validator.validate((token) -> token.getValue().equals("(")))
|
||||
.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)
|
||||
.multiple(function_container)
|
||||
.unique((validator) -> validator.validate((token) -> token.getValue().equals("}")))
|
||||
.end((a,b) -> a);
|
||||
|
||||
function_container.then(variable);
|
||||
|
@ -703,11 +733,15 @@ public class JavaParser extends Parser<JavaElement> {
|
|||
StateTree<JavaElement> interfaces = new StateTree<>();
|
||||
StateTree<JavaElement> interface_base = interfaces.then((validator) -> validator.validate((token) -> token.getValue().equals("interface")))
|
||||
.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME)));
|
||||
interface_base.then((validator) -> validator.validate((token) -> token.getValue().equals("{")))
|
||||
.end((a,b) -> a)
|
||||
StateTree<JavaElement> interface_start = interface_base.then((validator) -> validator.validate((token) -> token.getValue().equals("{")));
|
||||
interface_start.end((a,b) -> a)
|
||||
.multiple(clazz_container)
|
||||
.unique((validator) -> validator.validate((token) -> token.getValue().equals("}"))).end((a,b) -> a);
|
||||
|
||||
interface_base.then((validator) -> validator.validate((token) -> token.getValue().equals("extends")))
|
||||
.then(new RedirectStateTree<>(type, (global, local) -> global.set(null)))
|
||||
.then(interface_start);
|
||||
|
||||
StateTree<JavaElement> interface_mod = clazz_.then(new RedirectStateTree<>(modifier, (global, local) -> global.set("modifier", local)));
|
||||
clazz_.then(interfaces);
|
||||
interface_mod.then(interfaces);
|
||||
|
@ -726,13 +760,28 @@ public class JavaParser extends Parser<JavaElement> {
|
|||
StateTree<JavaElement> enums = new StateTree<>();
|
||||
StateTree<JavaElement> enum_base = enums.then((validator) -> validator.validate((token) -> token.getValue().equals("enum")))
|
||||
.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME)));
|
||||
enum_base.then((validator) -> validator.validate((token) -> token.getValue().equals("{")))
|
||||
.end((a,b) -> a)
|
||||
|
||||
StateTree<JavaElement> enum_start = enum_base.then((validator) -> validator.validate((token) -> token.getValue().equals("{")));
|
||||
enum_start.end((a,b) -> a)
|
||||
.unique(enum_value)
|
||||
.unique(mult_clazz_container)
|
||||
.unique(debug)
|
||||
.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_name = enum_implement.then(new RedirectStateTree<>(type, (global, local) -> {
|
||||
Token token = global.get("implement");
|
||||
if(token == null) token = local.get();
|
||||
else token = token.concat(local.get());
|
||||
global.set("implement", token);
|
||||
}));
|
||||
enum_implement_name.then((validator) -> validator.validate((token) -> token.getValue().equals(","))).then(enum_implement_name);
|
||||
enum_implement_name.then(enum_start);
|
||||
StateTree<JavaElement> enum_extend = enum_base.then((validator) -> validator.validate((token) -> token.getValue().equals("extends")))
|
||||
.then(new RedirectStateTree<>(type, (global, local) -> global.set("extend", local.get())));
|
||||
enum_extend.then(enum_start);
|
||||
enum_extend.then(enum_implement);
|
||||
|
||||
StateTree<JavaElement> enum_mod = clazz_.then(new RedirectStateTree<>(modifier, (global, local) -> global.set("modifier", local)));
|
||||
clazz_.then(enums);
|
||||
enum_mod.then(enums);
|
||||
|
|
Loading…
Add table
Reference in a new issue