From 2f8478d34841b16218e5011d2a8daffa2ba173cc Mon Sep 17 00:00:00 2001 From: jeffcheasey88 <66554203+jeffcheasey88@users.noreply.github.com> Date: Sun, 9 Jul 2023 18:14:58 +0200 Subject: [PATCH] String Value --- .../peeratcode/parser/java/JavaParser.java | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java b/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java index 19c85c7..15342ec 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java @@ -101,12 +101,25 @@ public class JavaParser extends Parser { Function LAMBDA_19 = (v) -> v.validate((t) -> t.getValue().equals("|"), (bag, t) -> bag.set("type", t)); Function LAMBDA_20 = (v) -> v.validate((t) -> t.getValue().equals("^"), (bag, t) -> bag.set("type", t)); Function LAMBDA_21 = (v) -> v.validate((t) -> t.getValue().equals("%"), (bag, t) -> bag.set("type", t)); - Function LAMBDA_23 = (v) -> v.validate((t) -> t.getValue().equals("("), (bag, t) -> bag.set("type", t)); - Function LAMBDA_24 = (v) -> v.validate((t) -> t.getValue().equals(")"), (bag, t) -> bag.set("type", t)); + Function LAMBDA_23 = (v) -> v.validate((t) -> t.getValue().equals("(")); + Function LAMBDA_24 = (v) -> v.validate((t) -> t.getValue().equals(")")); Function LAMBDA_25 = (v) -> v.validate((t) -> t.getValue().equals("."), (bag, t) -> bag.set("type", t)); - Function LAMBDA_26 = (v) -> v.validate((t) -> t.getValue().equals("\""), (bag, t) -> bag.set("type", t)); - Function LAMBDA_27 = (v) -> v.validate((t) -> !t.getValue().equals("\""), (bag, t) -> bag.set("type", t)); - Function LAMBDA_28 = (v) -> v.validate((t) -> t.getValue().equals("'"), (bag, t) -> bag.set("type", t)); + Function LAMBDA_26 = (v) -> v.validate((t) -> t.getValue().equals("\""), (bag, t) -> { + Bag sub = bag.get("?"); + if(sub == null) return; + sub.set(new Value(sub.get())); + }); + Function LAMBDA_27 = (v) -> v.validate((t) -> !t.getValue().equals("\""), (bag,t) -> { + Bag sub = bag.get("?"); + if(sub == null){ + sub = new Bag(); + bag.set("?", sub); + sub.set(t); + return; + } + sub.set(sub.get().concat(t)); + }); + Function LAMBDA_28 = (v) -> v.validate((t) -> t.getValue().equals("'")); Function LAMBDA_29 = (v) -> v.validate((t) -> t.getValue().equals("oneChar")); Function LAMBDA_30 = (v) -> v.validate((t) -> t.getValue().equals("if")); Function LAMBDA_31 = (v) -> v.validate((t) -> t.getValue().equals("for")); @@ -130,11 +143,12 @@ public class JavaParser extends Parser { System.out.println("----"); //(ab = (cd & 34)) - tokenizer.getTokens().addAll(build("(","ab","=","(","cd","&","34",")",")")); +// tokenizer.getTokens().addAll(build("(","ab","=","(","cd","&","34",")",")")); // tokenizer.getTokens().addAll(build("(","ab","=","(","cd","&","(","ay","/","34",")",")",")")); // tokenizer.getTokens().addAll(build("(","ab","=","cd",")")); // tokenizer.getTokens().addAll(build("(","ab",")")); // tokenizer.getTokens().addAll(build("ab","=","cd","/","ef")); + tokenizer.getTokens().addAll(build("\"","You","Have","\"","+","78","+","\"","ms","\"")); value_q0.seed(tokenizer, null); System.out.println("----"); @@ -307,7 +321,7 @@ public class JavaParser extends Parser { StateTree value_q11 = value_q1.then(LAMBDA_25); value_q11.then(value_q1); value_q0.then(LAMBDA_23).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).then(LAMBDA_24).end(END_NATIVE_VALUE).then(value_q22); - value_q0.then(LAMBDA_26).then(LAMBDA_27).then(LAMBDA_26).end(END_NATIVE_VALUE).then(value_q22); + value_q0.then(LAMBDA_26).then(LAMBDA_27).loop().then(LAMBDA_26).end(END_NATIVE_VALUE).then(value_q22); value_q0.then(LAMBDA_28).then(LAMBDA_29).then(LAMBDA_28).end(END_NATIVE_VALUE).then(value_q22); return value_q0; }