diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java b/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java index d998c57..287934d 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java @@ -131,11 +131,18 @@ public class JavaParser extends Parser { type_array_end.then(type_array_end); type_array_end.then(type_generic_end); + StateTree clazz_container = new StateTree<>(); + //VALUE StateTree value = new StateTree<>(); - value.then((validator) -> validator.validate((token) -> token.getValue().equals("new"))).then(value); - StateTree value_name = value.then((validator) -> validator.validate( - (token) -> token.getType().equals(TokenType.NAME), + StateTree value_instance = value.then((validator) -> validator.validate((token) -> token.getValue().equals("new"))); + StateTree value_name = new StateTree(); + value.then(value_name); + value_instance = value_instance + .then(new RedirectStateTree<>(value_name, (global, local) -> { + })); + value_name = value_name.then((validator) -> validator.validate( + (token) -> token.getType().equals(TokenType.NAME), (bag, token) -> { Token current = bag.get(); if(current == null) current = token; @@ -143,6 +150,12 @@ public class JavaParser extends Parser { bag.set(current); })); value_name.end((a,b) -> a); + value_instance.end((a,b) -> a); + value_instance.then((validator) -> validator.validate((token) -> token.getValue().equals("{"))) + .end((a,b) -> a) + .multiple(clazz_container); + + StateTree value_call = value_name.then((validator) -> validator.validate((token) -> token.getValue().equals("."))); value_call.then(value_name); StateTree value_arg_begin = value_name.then((validator) -> validator.validate((token) -> token.getValue().equals("("))); @@ -307,13 +320,8 @@ public class JavaParser extends Parser { function_arg_name.then(function_end); - StateTree clazz_container = new StateTree<>(); clazz_container.then(variable); clazz_container.then(function); - clazz_container.then((v) -> v.validate((t)->{ - System.out.println(t); - return false; - })); //CLASS StateTree clazz_ = new StateTree<>();