diff --git a/src/dev/peerat/parser/java/JavaParser.java b/src/dev/peerat/parser/java/JavaParser.java index 76346ac..c1ff511 100644 --- a/src/dev/peerat/parser/java/JavaParser.java +++ b/src/dev/peerat/parser/java/JavaParser.java @@ -178,8 +178,8 @@ public class JavaParser extends Parser { StateTree type = new StateTree(); StateTree type_ = type.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME),concat)); - type_.then((validator) -> validator.validate((token) -> token.getValue().equals("."), concat)) - .then(type_); +// type_.then((validator) -> validator.validate((token) -> token.getValue().equals("."), concat)) //only dot? +// .then(type_); StateTree gen = new StateTree<>(); type_.then(gen); StateTree type_begin = gen.then((validator) -> validator.validate((token) -> token.getValue().equals("<"), concat)); @@ -291,7 +291,10 @@ public class JavaParser extends Parser { .end((a,b) -> a) .multiple(braces_container) .unique((validator) -> validator.validate((token) -> token.getValue().equals("}"))).end((a,b) -> a); - value_name = value_name.then(new RedirectStateTree<>(type, (global, local) -> global.set(local.get()))); + value_name = value_name.then(new RedirectStateTree<>(type, (global, local) -> { + if(global.get() == null) global.set(local.get()); + else global.set(global.get().concat(local.get())); + })); value_name.end((parent,bag) -> { Value result = new Value(bag.get()); bag.set(result); @@ -302,8 +305,11 @@ public class JavaParser extends Parser { .then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME))) .end((a,b) -> a); - StateTree value_call = value_name.then((validator) -> validator.validate((token) -> token.getValue().equals("."))); + StateTree value_call = value_name.then((validator) -> validator.validate( + (token) -> token.getValue().equals("."), + (bag, token) -> bag.set(bag.get().concat(token)))); value_call.end((a,b) -> a); + value_call.then(new RedirectStateTree<>(gen, (global, local) -> global.set(global.get().concat(local.get())))).then(value_name); value_call.then(value_name); StateTree value_array_begin = value_name.then((validator) -> validator.validate((token) -> token.getValue().equals("["))); StateTree value_array_end = value_array_begin.then((validator) -> validator.validate((token) -> token.getValue().equals("]"))); @@ -1161,7 +1167,7 @@ public class JavaParser extends Parser { } public static void main(String[] args) throws Exception{ - File file = new File("C:\\Users\\jeffc\\eclipse-workspace\\peer-at-code-backend\\src\\dev\\peerat\\backend\\routes\\users\\Register.java"); + File file = new File("C:\\Users\\jeffc\\eclipse-workspace\\"); BufferedReader reader = new BufferedReader(new FileReader(file));