diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java b/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java index 784d914..5f22fa8 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java @@ -349,8 +349,18 @@ public class JavaParser extends Parser { .end((a,b) -> a); operation.then((validator) -> validator.validate((token) -> token.getValue().equals("else"))) .end((a,b) -> a); - operation.then((validator) -> validator.validate((token) -> token.getValue().equals("try"))) + StateTree operation_try = operation.then((validator) -> validator.validate((token) -> token.getValue().equals("try"))); + StateTree operation_try_base = operation_try.then((validator) -> validator.validate((token) -> token.getValue().equals("{"))); + operation_try.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(operation_try_base); + operation_try_base.end((a,b) -> a) + .multiple(function_container) + .unique((validator) -> validator.validate((token) -> token.getValue().equals("}"))) .end((a,b) -> a); + + operation.then((validator) -> validator.validate((token) -> token.getValue().equals("continue"))) .then((validator) -> validator.validate((token) -> token.getValue().equals(";"))) .end((a,b) -> a);