From 7624d075f6a525c75f7b20d50cb546ee7dbda035 Mon Sep 17 00:00:00 2001 From: jeffcheasey88 <66554203+jeffcheasey88@users.noreply.github.com> Date: Mon, 14 Aug 2023 10:59:53 +0200 Subject: [PATCH] AutoTest -> 88.227% --- .../peeratcode/parser/java/JavaParser.java | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java b/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java index 711c4cd..45e99f8 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java @@ -123,15 +123,25 @@ public class JavaParser extends Parser { StateTree type_generic_split = type_generic.then((validator) -> validator.validate((token) -> token.getValue().equals(","))); type_generic_split.then(type_generic); - type_begin.then((validator) -> validator.validate((token) -> token.getValue().equals("?"))) - .then((validator) -> validator.validate((token) -> token.getValue().equals("extends"))) - .then(new RedirectStateTree<>(type, (global, local) -> global.set(null))) - .then(type_generic_end); + StateTree type_generic_unknow = type_begin.then((validator) -> validator.validate((token) -> token.getValue().equals("?"))); + StateTree type_generic_unknow_extends = type_generic_unknow.then((validator) -> validator.validate((token) -> token.getValue().equals("extends"))) + .then(new RedirectStateTree<>(type, (global, local) -> global.set(null))); + type_generic_unknow_extends.then(type_generic_end); + type_generic_unknow_extends.then(type_generic_split); + StateTree type_generic_unknow_super = type_generic_unknow.then((validator) -> validator.validate((token) -> token.getValue().equals("super"))) + .then(new RedirectStateTree<>(type, (global, local) -> global.set(null))); + type_generic_unknow_super.then(type_generic_end); + type_generic_unknow_super.then(type_generic_split); - type_begin.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME))) - .then((validator) -> validator.validate((token) -> token.getValue().equals("extends"))) - .then(new RedirectStateTree<>(type, (global, local) -> global.set(null))) - .then(type_generic_end); + StateTree type_generic_named = type_begin.then((validator) -> validator.validate((token) -> token.getType().equals(TokenType.NAME))); + StateTree type_generic_named_extends = type_generic_named.then((validator) -> validator.validate((token) -> token.getValue().equals("extends"))) + .then(new RedirectStateTree<>(type, (global, local) -> global.set(null))); + type_generic_named_extends.then(type_generic_end); + type_generic_named_extends.then(type_generic_split); + StateTree type_generic_named_super = type_generic_named.then((validator) -> validator.validate((token) -> token.getValue().equals("super"))) + .then(new RedirectStateTree<>(type, (global, local) -> global.set(null))); + type_generic_named_super.then(type_generic_end); + type_generic_named_super.then(type_generic_split); type_.end((a,b) -> a); type_generic_end.end((a,b) -> a); @@ -552,6 +562,8 @@ public class JavaParser extends Parser { StateTree clazz_ = new StateTree<>(); StateTree clazz = new StateTree<>(); + clazz_container.then(clazz_); + StateTree clazz_base = clazz.then((validator) -> validator.validate((token) -> token.getValue().equals("class"))) .then(new RedirectStateTree<>(type, (global, local) -> global.set("name", local.get()))); clazz_base.then((validator) -> validator.validate((token) -> token.getValue().equals("{")))