From af44fe414f53c400115650b7993234a6cdbb9be6 Mon Sep 17 00:00:00 2001 From: jeffcheasey88 <66554203+jeffcheasey88@users.noreply.github.com> Date: Sat, 8 Jul 2023 17:30:45 +0200 Subject: [PATCH] =?UTF-8?q?il=20aurai=20fallut=20que=20je=20cr=C3=A9e=20la?= =?UTF-8?q?=20branch=20avant?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jeffcheasey88/peeratcode/parser/Bag.java | 8 + .../peeratcode/parser/java/Annotation.java | 11 + .../peeratcode/parser/java/Class.java | 12 +- .../peeratcode/parser/java/Function.java | 10 +- .../peeratcode/parser/java/JavaFile.java | 6 +- .../peeratcode/parser/java/JavaParser.java | 297 ++++++++++-------- .../peeratcode/parser/java/Operation.java | 11 + .../peeratcode/parser/java/Value.java | 41 +++ .../peeratcode/parser/java/Variable.java | 9 + 9 files changed, 273 insertions(+), 132 deletions(-) create mode 100644 src/be/jeffcheasey88/peeratcode/parser/java/Annotation.java create mode 100644 src/be/jeffcheasey88/peeratcode/parser/java/Operation.java create mode 100644 src/be/jeffcheasey88/peeratcode/parser/java/Value.java diff --git a/src/be/jeffcheasey88/peeratcode/parser/Bag.java b/src/be/jeffcheasey88/peeratcode/parser/Bag.java index a5c028c..a6a37d2 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/Bag.java +++ b/src/be/jeffcheasey88/peeratcode/parser/Bag.java @@ -2,6 +2,7 @@ package be.jeffcheasey88.peeratcode.parser; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; public class Bag{ @@ -29,4 +30,11 @@ public class Bag{ this.map.put(key, value); } + @Override + public String toString(){ + String map = ""; + for(Entry entry : this.map.entrySet()) map+=","+(entry.getKey())+" -> "+entry.getValue(); + if(map.length() > 0) map = map.substring(1); + return "([bag] | value="+value+" | map="+map+" )"; + } } diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/Annotation.java b/src/be/jeffcheasey88/peeratcode/parser/java/Annotation.java new file mode 100644 index 0000000..16f4458 --- /dev/null +++ b/src/be/jeffcheasey88/peeratcode/parser/java/Annotation.java @@ -0,0 +1,11 @@ +package be.jeffcheasey88.peeratcode.parser.java; + +import be.jeffcheasey88.peeratcode.parser.Bag; + +public class Annotation{ + + public Annotation(Bag bag){ + + } + +} diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/Class.java b/src/be/jeffcheasey88/peeratcode/parser/java/Class.java index 44b5d1d..74ec4a1 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/Class.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/Class.java @@ -1,14 +1,21 @@ package be.jeffcheasey88.peeratcode.parser.java; +import java.util.ArrayList; +import java.util.List; + import be.jeffcheasey88.peeratcode.parser.Bag; import be.jeffcheasey88.peeratcode.parser.Token; public class Class extends JavaElement{ + private List annotations; + private String name; private String extend; private String implement; + private List elements; + public Class(Bag bag){ this.name = bag.get("name").get().getValue(); @@ -18,7 +25,10 @@ public class Class extends JavaElement{ Bag implementBag = bag.get("implement"); if(implementBag != null) this.implement = implementBag.get().getValue(); - System.out.println("public "+name+" extends "+extend+" implements "+implement+" {"); + this.annotations = new ArrayList<>(); + this.elements = new ArrayList<>(); } + + } diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/Function.java b/src/be/jeffcheasey88/peeratcode/parser/java/Function.java index 8735481..361e932 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/Function.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/Function.java @@ -1,19 +1,27 @@ package be.jeffcheasey88.peeratcode.parser.java; +import java.util.ArrayList; +import java.util.List; + import be.jeffcheasey88.peeratcode.parser.Bag; import be.jeffcheasey88.peeratcode.parser.Token; public class Function extends JavaElement{ + private List annotations; + private String returnType; private String name; + private List elements; + public Function(Bag bag){ this.returnType = bag.get("return").get().getValue(); if(JavaParser.getModifier(this.returnType) > 0) this.returnType = null; this.name = bag.get("name").getValue(); - System.out.println(returnType+" "+name+" (){"); + this.annotations = new ArrayList<>(); + this.elements = new ArrayList<>(); } } diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/JavaFile.java b/src/be/jeffcheasey88/peeratcode/parser/java/JavaFile.java index fc7579d..57461ae 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/JavaFile.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/JavaFile.java @@ -10,10 +10,12 @@ public class JavaFile extends JavaElement{ private String pack; private List imports; - private Class clazz; + private Class mainClazz; + private List subClazz; public JavaFile(){ this.imports = new ArrayList<>(); + this.subClazz = new ArrayList<>(); } JavaFile setPackage(Bag bag){ @@ -29,7 +31,7 @@ public class JavaFile extends JavaElement{ } Class setClass(Class clazz){ - this.clazz = clazz; + this.mainClazz = clazz; System.out.println("setClass "+clazz); return clazz; } diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java b/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java index fedd706..885cb0b 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java @@ -4,6 +4,8 @@ import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.lang.reflect.Modifier; +import java.util.ArrayList; +import java.util.List; import java.util.function.BiConsumer; import java.util.function.BiFunction; import java.util.function.Function; @@ -14,6 +16,8 @@ import be.jeffcheasey88.peeratcode.parser.Token; import be.jeffcheasey88.peeratcode.parser.TokenType; import be.jeffcheasey88.peeratcode.parser.TokenValidator; import be.jeffcheasey88.peeratcode.parser.Tokenizer; +import be.jeffcheasey88.peeratcode.parser.java.Value.BiValue; +import be.jeffcheasey88.peeratcode.parser.java.Value.TriValue; import be.jeffcheasey88.peeratcode.parser.state.RedirectStateTree; import be.jeffcheasey88.peeratcode.parser.state.StateTree; @@ -62,7 +66,7 @@ public class JavaParser extends Parser { BiFunction END_VAR = ((javafile, validator) -> { System.out.println("new var"); - return new Variable(); + return new Variable(validator.getBag()); }); BiFunction END_FUNC = ((javafile, validator) -> { @@ -84,135 +88,51 @@ public class JavaParser extends Parser { Function LAMBDA_5 = (v) -> v.validate((t) -> t.getValue().equals("<")); Function LAMBDA_6 = (v) -> v.validate((t) -> t.getValue().equals(">")); Function LAMBDA_7 = (v) -> v.validate((t) -> t.getValue().equals(",")); - Function LAMBDA_8 = (v) -> v.validate((t) -> t.getValue().equals("{value}")); - Function LAMBDA_9 = (v) -> v.validate((t) -> t.getValue().equals("=")); - BiFunction END_10 = ((javaelement, validator) -> null); - Function LAMBDA_11 = (v) -> v.validate((t) -> t.getValue().equals(".")); - Function LAMBDA_12 = (v) -> v.validate((t) -> t.getValue().equals("if")); - Function LAMBDA_13 = (v) -> v.validate((t) -> t.getValue().equals("(")); - Function LAMBDA_14 = (v) -> v.validate((t) -> t.getValue().equals(")")); - Function LAMBDA_15 = (v) -> v.validate((t) -> t.getValue().equals("for")); - Function LAMBDA_16 = (v) -> v.validate((t) -> t.getValue().equals("while")); - Function LAMBDA_17 = (v) -> v.validate((t) -> t.getValue().equals("return")); - Function LAMBDA_18 = (v) -> v.validate((t) -> t.getValue().equals("synchronized")); - Function LAMBDA_19 = (v) -> v.validate((t) -> t.getValue().equals("continue")); - Function LAMBDA_20 = (v) -> v.validate((t) -> t.getValue().equals("throw")); - Function LAMBDA_21 = (v) -> v.validate((t) -> t.getValue().equals("break")); - Function LAMBDA_22 = (v) -> v.validate((t) -> t.getValue().equals("try")); - Function LAMBDA_23 = (v) -> v.validate((t) -> t.getValue().equals("do")); - Function LAMBDA_24 = (v) -> v.validate((t) -> t.getValue().equals("{")); - Function LAMBDA_25 = (v) -> v.validate((t) -> t.getValue().equals("}")); - Function LAMBDA_28 = (v) -> v.validate((t) -> t.getValue().equals("throws")); - Function LAMBDA_30 = (v) -> v.validate((t) -> t.getValue().equals("class")); - Function LAMBDA_31 = (v) -> v.validate((t) -> t.getValue().equals("implements")); - Function LAMBDA_32 = (v) -> v.validate((t) -> t.getValue().equals("extends")); + Function LAMBDA_8 = (v) -> v.validate((t) -> t.getValue().equals("=")); + Function LAMBDA_10 = (v) -> v.validate((t) -> t.getValue().equals("!")); + Function LAMBDA_11 = (v) -> v.validate((t) -> t.getValue().equals("?")); + Function LAMBDA_12 = (v) -> v.validate((t) -> t.getValue().equals(":")); + Function LAMBDA_13 = (v) -> v.validate((t) -> t.getValue().equals("~")); + Function LAMBDA_14 = (v) -> v.validate((t) -> t.getValue().equals("+")); + Function LAMBDA_15 = (v) -> v.validate((t) -> t.getValue().equals("-")); + Function LAMBDA_16 = (v) -> v.validate((t) -> t.getValue().equals("/")); + Function LAMBDA_17 = (v) -> v.validate((t) -> t.getValue().equals("*")); + Function LAMBDA_18 = (v) -> v.validate((t) -> t.getValue().equals("&")); + Function LAMBDA_19 = (v) -> v.validate((t) -> t.getValue().equals("|")); + Function LAMBDA_20 = (v) -> v.validate((t) -> t.getValue().equals("^")); + Function LAMBDA_21 = (v) -> v.validate((t) -> t.getValue().equals("%")); + 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(".")); + Function LAMBDA_26 = (v) -> v.validate((t) -> t.getValue().equals("\"")); + Function LAMBDA_27 = (v) -> v.validate((t) -> !t.getValue().equals("\"")); + 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")); + Function LAMBDA_32 = (v) -> v.validate((t) -> t.getValue().equals("while")); + Function LAMBDA_33 = (v) -> v.validate((t) -> t.getValue().equals("return")); + Function LAMBDA_34 = (v) -> v.validate((t) -> t.getValue().equals("do")); + Function LAMBDA_35 = (v) -> v.validate((t) -> t.getValue().equals("synchronized")); + Function LAMBDA_36 = (v) -> v.validate((t) -> t.getValue().equals("continue")); + Function LAMBDA_37 = (v) -> v.validate((t) -> t.getValue().equals("throw")); + Function LAMBDA_38 = (v) -> v.validate((t) -> t.getValue().equals("break")); + Function LAMBDA_39 = (v) -> v.validate((t) -> t.getValue().equals("try")); + Function LAMBDA_40 = (v) -> v.validate((t) -> t.getValue().equals("{")); + Function LAMBDA_41 = (v) -> v.validate((t) -> t.getValue().equals("}")); + Function LAMBDA_44 = (v) -> v.validate((t) -> t.getValue().equals("throws")); + Function LAMBDA_46 = (v) -> v.validate((t) -> t.getValue().equals("class")); + Function LAMBDA_47 = (v) -> v.validate((t) -> t.getValue().equals("implements")); + Function LAMBDA_48 = (v) -> v.validate((t) -> t.getValue().equals("extends")); StateTree main = new StateTree<>(); - StateTree package_q0 = new StateTree<>(); - package_q0.then(LAMBDA_0).then((v) -> v.validate((t) -> !t.getValue().equals(";"), groupToken("package"))).loop().then(LAMBDA_1).end(END_PACKAGE); - - StateTree import_q0 = new StateTree<>(); - StateTree import_q1 = import_q0.then(LAMBDA_3); - StateTree import_q3 = import_q1.then((v) -> v.validate((t) -> !t.getValue().equals(";"), groupToken("import"))).loop(); - import_q3.then(LAMBDA_1).end(END_IMPORT); - StateTree import_q2 = import_q1.then(LAMBDA_4); - import_q2.then(import_q3); - - StateTree modifier_q0 = new StateTree<>(); - modifier_q0.then(LAMBDA_mod).end(END_MODIFIER); - - StateTree type_q0 = new StateTree<>(); - StateTree type_q1 = type_q0.then(LAMBDA_name); - StateTree type_q3 = type_q1.then(LAMBDA_5); - StateTree type_q4 = type_q3.then(LAMBDA_name); - StateTree type_q5 = type_q4.then(LAMBDA_6).loop(); - type_q5.end(END_TYPE); - StateTree type_q6 = type_q4.then(LAMBDA_7); - type_q5.then(type_q6); - type_q5.then(type_q4); - type_q6.then(type_q4); - type_q4.then(type_q3); - type_q1.end(END_TYPE); - - StateTree variable_q0 = new StateTree<>(); - StateTree variable_q1 = variable_q0.then(new RedirectStateTree<>(type_q0,(bag) -> "type")); - StateTree variable_q2 = variable_q1.then(LAMBDA_name); - StateTree variable_q5 = variable_q2.then(LAMBDA_7); - StateTree variable_q7 = variable_q2.then(LAMBDA_9).then(LAMBDA_8); - variable_q7.then(variable_q5); - variable_q2.then(LAMBDA_1).end(END_VAR); - variable_q7.then(LAMBDA_1).end(END_VAR); - variable_q5.then(variable_q2); - StateTree variable_q10 = variable_q0.then(new RedirectStateTree<>(modifier_q0,(bag) -> "modifier")); - variable_q10.then(variable_q1); - - StateTree operation_q0 = new StateTree<>(); - StateTree operation_q1 = operation_q0.then(LAMBDA_name); - operation_q1.then(LAMBDA_9).then(LAMBDA_8).end(END_10); - StateTree operation_q5 = operation_q1.then(LAMBDA_11); - operation_q5.then(operation_q1); - operation_q0.then(LAMBDA_12).then(LAMBDA_13).then(LAMBDA_8).then(LAMBDA_14).end(END_10); - operation_q0.then(LAMBDA_15).then(LAMBDA_13).then(LAMBDA_8).then(LAMBDA_14).end(END_10); - operation_q0.then(LAMBDA_16).then(LAMBDA_13).then(LAMBDA_8).then(LAMBDA_14).end(END_10); - operation_q0.then(LAMBDA_17).then(LAMBDA_8).then(LAMBDA_1).end(END_10); - operation_q0.then(LAMBDA_18).then(LAMBDA_13).then(LAMBDA_8).then(LAMBDA_14).end(END_10); - operation_q0.then(LAMBDA_19).then(LAMBDA_1).end(END_10); - operation_q0.then(LAMBDA_20).then(LAMBDA_8).then(LAMBDA_1).end(END_10); - operation_q0.then(LAMBDA_21).then(LAMBDA_1).end(END_10); - operation_q0.then(LAMBDA_22).end(END_10); - - StateTree function_q17 = new StateTree<>(); - StateTree function_q18 = function_q17.then(LAMBDA_24); - function_q18.then(LAMBDA_25).end((a,b) -> null); - StateTree function_q22 = function_q18.then(new RedirectStateTree<>(operation_q0,(bag) -> "operation")); - function_q22.then(function_q18); - StateTree function_q21 = function_q18.then(new RedirectStateTree<>(variable_q0,(bag) -> "variable")); - function_q21.then(function_q18); - StateTree function_q0 = new StateTree<>(); - StateTree function_q1 = function_q0.then(new RedirectStateTree<>(type_q0,(bag) -> "return")); - function_q1.then(LAMBDA_24).end(END_FUNC).then(function_q17); - StateTree function_q3 = function_q1.then((v) -> v.validate( - (t) -> t.getType().equals(TokenType.NAME), - (bag, token) -> bag.set("name", token))).then(LAMBDA_13); - StateTree function_q4 = function_q3.then(LAMBDA_14); - StateTree function_q10 = function_q4.then(LAMBDA_28).then(new RedirectStateTree<>(type_q0,(bag) -> "type")); - function_q10.end(END_FUNC).then(function_q17); - StateTree function_q11 = function_q10.then(LAMBDA_7); - function_q11.then(function_q10); - function_q4.end(END_FUNC).then(function_q17); - StateTree function_q7 = function_q3.then(new RedirectStateTree<>(type_q0,(bag) -> "type")).then(LAMBDA_name); - function_q7.then(function_q4); - StateTree function_q6 = function_q3.then(new RedirectStateTree<>(type_q0,(bag) -> "type")); - StateTree function_q8 = function_q7.then(LAMBDA_7); - function_q8.then(function_q6); - StateTree function_q15 = function_q0.then(new RedirectStateTree<>(modifier_q0,(bag) -> "modifier")); - function_q15.then(function_q1); - - StateTree class_q16 = new StateTree<>(); - StateTree class_q18 = class_q16.then(new RedirectStateTree<>(variable_q0,(bag) -> "?")); - class_q18.then(class_q16); - StateTree class_q19 = class_q16.then(new RedirectStateTree<>(function_q0,(bag) -> "?")); - class_q19.then(class_q16); - StateTree class_q0 = new StateTree<>(); - StateTree class_q1 = class_q0.then(LAMBDA_30); - StateTree class_q2 = class_q1.then(new RedirectStateTree<>(type_q0,(bag) -> "name")); - StateTree class_q9 = class_q2.then(LAMBDA_31); - StateTree class_q11 = class_q9.then(new RedirectStateTree<>(type_q0,(bag) -> "implement")); - class_q11.then(LAMBDA_24).end(END_CLASS).then(class_q16); - StateTree class_q12 = class_q11.then(LAMBDA_7); - class_q12.then(class_q11); - StateTree class_q7 = class_q2.then(LAMBDA_32).then(new RedirectStateTree<>(type_q0,(bag) -> "extend")); - class_q7.then(class_q9); - class_q7.then(LAMBDA_24).end(END_CLASS).then(class_q16); - class_q2.then(LAMBDA_24).end(END_CLASS).then(class_q16); - StateTree class_q3 = class_q0.then(new RedirectStateTree<>(modifier_q0,(bag) -> "modifier")); - class_q3.then(class_q1); - - main.then(new RedirectStateTree<>(package_q0, (b) -> null)).then(main); - main.then(new RedirectStateTree<>(import_q0, (b) -> null)).then(main); - main.then(new RedirectStateTree<>(class_q0, (b) -> null)).then(main); - - + StateTree value_q0 = value(LAMBDA_5, LAMBDA_6, LAMBDA_7, LAMBDA_8, LAMBDA_10, LAMBDA_11, LAMBDA_12, LAMBDA_13, LAMBDA_14, LAMBDA_15, LAMBDA_16, LAMBDA_17, LAMBDA_18, LAMBDA_19, LAMBDA_20, LAMBDA_21, LAMBDA_23, LAMBDA_24, LAMBDA_25, LAMBDA_26, LAMBDA_27, LAMBDA_28, LAMBDA_29); + + System.out.println("----"); + //(ab = (cd & 3)) + tokenizer.getTokens().addAll(build("(","ab","=","(","cd","&","34",")",")")); + value_q0.seed(tokenizer, null); + System.out.println("----"); System.out.println((System.currentTimeMillis()-time)+"ms"); @@ -226,6 +146,12 @@ public class JavaParser extends Parser { setStateTree(main); } + private List build(String... values){ + List list = new ArrayList<>(); + for(String value : values) list.add(new Token(0, 0, value, value.length() > 1 ? TokenType.NAME : TokenType.DELIMITER)); + return list; + } + private BiConsumer groupToken(String group){ return (bag, token) -> { Token base = bag.get(group); @@ -252,4 +178,119 @@ public class JavaParser extends Parser { return 0; } + private StateTree value( + Function LAMBDA_5, + Function LAMBDA_6, + Function LAMBDA_7, + Function LAMBDA_8, + Function LAMBDA_10, + Function LAMBDA_11, + Function LAMBDA_12, + Function LAMBDA_13, + Function LAMBDA_14, + Function LAMBDA_15, + Function LAMBDA_16, + Function LAMBDA_17, + Function LAMBDA_18, + Function LAMBDA_19, + Function LAMBDA_20, + Function LAMBDA_21, + Function LAMBDA_23, + Function LAMBDA_24, + Function LAMBDA_25, + Function LAMBDA_26, + Function LAMBDA_27, + Function LAMBDA_28, + Function LAMBDA_29 + ){ + BiFunction END_VALUE = (element, validator) -> { + //single value + System.out.println("end value "+validator.getBag()); + Bag bag = validator.getBag(); + Value v = new Value(bag); + bag.set("result",v); + return v; + }; + BiFunction END_BIVALUE = (element, validator) -> { + //create new value from parent & created single value + System.out.println("end bi value "+validator.getBag()); + Bag bag = validator.getBag(); + return new BiValue((Value)element, bag.get("?").get("result")); + }; + BiFunction END_TRIVALUE = (element, validator) -> { + //same but for val ? val : val + System.out.println("end tri value "+validator.getBag()); + Bag bag = validator.getBag(); + return new TriValue(bag); + }; + StateTree value_q0 = new StateTree<>(); + StateTree value_q22 = new StateTree<>(); + StateTree value_q23 = value_q22.then(LAMBDA_8); + value_q23.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // == + value_q23.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // = + StateTree value_q24 = value_q22.then(LAMBDA_5); + value_q24.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // < + value_q24.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // <= + StateTree value_q41 = value_q24.then(LAMBDA_5); + value_q41.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // << + value_q41.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // <<= + StateTree value_q25 = value_q22.then(LAMBDA_6); + value_q25.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // > + value_q25.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // >= + StateTree value_q55 = value_q25.then(LAMBDA_6); + value_q55.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // >> + value_q55.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // >>= + StateTree value_q61 = value_q55.then(LAMBDA_6); + value_q61.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // >>> + value_q61.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // >>>= + StateTree value_q26 = value_q22.then(LAMBDA_10); + value_q26.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // ! + value_q26.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // != + value_q22.then(LAMBDA_11).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).then(LAMBDA_12).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_TRIVALUE); //? : + value_q22.then(LAMBDA_13).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // ~ + StateTree value_q29 = value_q22.then(LAMBDA_14); + value_q29.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // + + value_q29.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // += + value_q29.then(LAMBDA_14).end(END_VALUE); // ++ + StateTree value_q30 = value_q22.then(LAMBDA_15); + value_q30.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // - + value_q30.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // -= + value_q30.then(LAMBDA_15).end(END_VALUE); // -- + StateTree value_q31 = value_q22.then(LAMBDA_16); + value_q31.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // / + value_q31.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // /= + StateTree value_q32 = value_q22.then(LAMBDA_17); + value_q32.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // * + value_q32.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // *= + StateTree value_q33 = value_q22.then(LAMBDA_18); + value_q33.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // & + value_q33.then(LAMBDA_18).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // && + value_q33.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // &= + StateTree value_q34 = value_q22.then(LAMBDA_19); + value_q34.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // | + value_q34.then(LAMBDA_19).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // || + value_q34.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // |= + StateTree value_q35 = value_q22.then(LAMBDA_20); + value_q35.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // ^ + value_q35.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // ^= + StateTree value_q36 = value_q22.then(LAMBDA_21); + value_q36.then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // % + value_q36.then(LAMBDA_8).then(new RedirectStateTree<>(value_q0,(bag) -> "?")).end(END_BIVALUE); // %= + StateTree value_q1 = value_q0.then(LAMBDA_name); + StateTree value_q12 = value_q1.then(LAMBDA_23); + StateTree value_q13 = value_q12.then(new RedirectStateTree<>(value_q0,(bag) -> "?")); + StateTree value_q15 = value_q13.then(LAMBDA_24); + value_q15.end(END_VALUE).then(value_q22); + value_q12.then(value_q15); + StateTree value_q14 = value_q13.then(LAMBDA_7); + value_q14.then(value_q13); + value_q1.end(END_VALUE).then(value_q22); + 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_VALUE).then(value_q22); + value_q0.then(LAMBDA_26).then(LAMBDA_27).then(LAMBDA_26).end(END_VALUE).then(value_q22); + value_q0.then(LAMBDA_28).then(LAMBDA_29).then(LAMBDA_28).end(END_VALUE).then(value_q22); + return value_q0; + } + } diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/Operation.java b/src/be/jeffcheasey88/peeratcode/parser/java/Operation.java new file mode 100644 index 0000000..9caac9b --- /dev/null +++ b/src/be/jeffcheasey88/peeratcode/parser/java/Operation.java @@ -0,0 +1,11 @@ +package be.jeffcheasey88.peeratcode.parser.java; + +import be.jeffcheasey88.peeratcode.parser.Bag; + +public class Operation extends JavaElement{ + + public Operation(Bag bag){ + + } + +} diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/Value.java b/src/be/jeffcheasey88/peeratcode/parser/java/Value.java new file mode 100644 index 0000000..58c026b --- /dev/null +++ b/src/be/jeffcheasey88/peeratcode/parser/java/Value.java @@ -0,0 +1,41 @@ +package be.jeffcheasey88.peeratcode.parser.java; + +import be.jeffcheasey88.peeratcode.parser.Bag; +import be.jeffcheasey88.peeratcode.parser.Token; + +public class Value extends JavaElement{ + + private Token token; + + protected Value(){} + + public Value(Bag bag){ + this.token = bag.get(); + System.out.println("NEW value "+token); + } + + @Override + public String toString(){ + return "[Value="+token+"]"; + } + + public static class BiValue extends Value{ + + private Value left; + private Value right; + + public BiValue(Value left, Value right){ + this.left = left; + this.right = right; + System.out.println("NEW BiValue "+left+"|"+right); + } + + } + + public static class TriValue extends Value{ + + public TriValue(Bag bag){ + super(bag); + } + } +} diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/Variable.java b/src/be/jeffcheasey88/peeratcode/parser/java/Variable.java index 55f8381..95fa67a 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/Variable.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/Variable.java @@ -1,6 +1,15 @@ package be.jeffcheasey88.peeratcode.parser.java; +import java.util.ArrayList; +import java.util.List; + +import be.jeffcheasey88.peeratcode.parser.Bag; + public class Variable extends JavaElement{ + private List annotations; + public Variable(Bag bag){ + this.annotations = new ArrayList<>(); + } }