From d4655f1c031ad68acf69743360433e88cb0c695a Mon Sep 17 00:00:00 2001 From: "Dr. Michael Petter" Date: Tue, 15 Nov 2016 14:08:35 +0100 Subject: [PATCH] first part of variants integrated --- examples/example11/Compiler.java | 2 +- lib/java-cup-11b-runtime.jar | Bin 30957 -> 35807 bytes src/mouse/Generate.java | 9 +++++---- src/mouse/runtime/ParserBase.java | 4 ++++ src/mouse/runtime/ParserTest.java | 4 ++-- src/mouse/runtime/Phrase.java | 4 ++++ 6 files changed, 16 insertions(+), 7 deletions(-) diff --git a/examples/example11/Compiler.java b/examples/example11/Compiler.java index 97a87f6..97c36ad 100644 --- a/examples/example11/Compiler.java +++ b/examples/example11/Compiler.java @@ -30,7 +30,7 @@ public class Compiler { XMLElement elem = (XMLElement)sem.rule.rhs(0).get(); // Remove unwanted unary branch chains from the syntax tree - elem = SyntaxTreeTransform.removeUnaryChains(elem); + //elem = SyntaxTreeTransform.removeUnaryChains(elem); // Dump DoM into XML-String via output stream XMLOutputFactory outFactory = XMLOutputFactory.newInstance(); diff --git a/lib/java-cup-11b-runtime.jar b/lib/java-cup-11b-runtime.jar index e31a739a7c3667a64fda4a97e26b9033157acc04..6579ec0decfb291090ef5bb4e135e755a743fc37 100644 GIT binary patch literal 35807 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 Qj192=F}2$E{o~dD19vusz5oCK literal 30957 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 diff --git a/src/mouse/Generate.java b/src/mouse/Generate.java index efd09cf..271232b 100644 --- a/src/mouse/Generate.java +++ b/src/mouse/Generate.java @@ -486,6 +486,7 @@ public class Generate Action act = rule.onSucc[0]; inline(e,"reject(" + cache + ")"); if (tree) { + out.line("setVariant(0);"); out.line("sem.$TREE$"+rule.name+"();"); } if (act==null) @@ -511,10 +512,9 @@ public class Generate { Action succ = rule.onSucc[i]; Action fail = rule.onFail[i]; - String outtree=""; - if (tree) outtree="sem.$TREE$"+rule.name+"();"; - + if (tree) outtree="setVariant("+i+");sem.$TREE$"+rule.name+"();"; + if (succ==null) out.line("if (" + ref(rule.rhs[i]) + ") { "+outtree+" return accept(" + cache + "); }"); else if (succ.and) @@ -829,7 +829,8 @@ public class Generate out.line(" elems.add((XMLElement)rhs(i).get());"); out.line(" }"); out.line(" if (elems.size()==0) lhs().put(new XMLElement.Terminal(new Location(lhs().getStartLine(),lhs().getStartColumn(),lhs().getStartPos()),\""+rule.name+"\",lhs().text(),new Location(lhs().getStartLine(),lhs().getStartColumn(),lhs().getStartPos())));"); - out.line(" else lhs().put(new XMLElement.NonTerminal(\""+rule.name +"\",0,elems.toArray(new XMLElement[0])));"); + + out.line(" else lhs().put(new XMLElement.NonTerminal(\""+rule.name +"\",lhs().getVariant(),elems.toArray(new XMLElement[0])));"); out.line("}"); } diff --git a/src/mouse/runtime/ParserBase.java b/src/mouse/runtime/ParserBase.java index fa39c38..19f5396 100644 --- a/src/mouse/runtime/ParserBase.java +++ b/src/mouse/runtime/ParserBase.java @@ -179,6 +179,10 @@ public class ParserBase implements mouse.runtime.CurrentRule current = p; } + protected void setVariant(int var){ + current.variant=var; + } + //------------------------------------------------------------------- // Accept Rule //------------------------------------------------------------------- diff --git a/src/mouse/runtime/ParserTest.java b/src/mouse/runtime/ParserTest.java index f33278c..6e3fee6 100644 --- a/src/mouse/runtime/ParserTest.java +++ b/src/mouse/runtime/ParserTest.java @@ -149,7 +149,7 @@ public class ParserTest extends ParserMemo //------------------------------------------------------------------- // Accept Rule //------------------------------------------------------------------- - protected boolean accept(Cache c) + protected boolean accept(Cache c) { super.accept(); traceAccept(c,traceRules); @@ -159,7 +159,7 @@ public class ParserTest extends ParserMemo //------------------------------------------------------------------- // Accept Inner //------------------------------------------------------------------- - protected boolean acceptInner(Cache c) + protected boolean acceptInner(Cache c) { super.acceptInner(); traceAccept(c,traceInner); diff --git a/src/mouse/runtime/Phrase.java b/src/mouse/runtime/Phrase.java index 548b913..cbcd61b 100644 --- a/src/mouse/runtime/Phrase.java +++ b/src/mouse/runtime/Phrase.java @@ -61,6 +61,7 @@ public class Phrase final int start; final int startline; final int startcolumn; + int variant = -1; int end; int endline; int endcolumn; @@ -142,6 +143,9 @@ public class Phrase public int getEndColumn(){ return endcolumn; } + public int getVariant(){ + return variant; + } //----------------------------------------------------------------- // Get text //----------------------------------------------------------------- -- 2.24.1