From 82360408049657d6865faf0a67fdeabe6935f19f Mon Sep 17 00:00:00 2001 From: "Benjamin J. Culkin" Date: Fri, 27 Oct 2017 12:49:38 -0300 Subject: Add up-level references to avoid local rules shadowing global ones --- RGens/src/main/java/bjc/rgens/newparser/RGrammar.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'RGens') diff --git a/RGens/src/main/java/bjc/rgens/newparser/RGrammar.java b/RGens/src/main/java/bjc/rgens/newparser/RGrammar.java index 0ac0a16..d3c3747 100644 --- a/RGens/src/main/java/bjc/rgens/newparser/RGrammar.java +++ b/RGens/src/main/java/bjc/rgens/newparser/RGrammar.java @@ -342,7 +342,13 @@ public class RGrammar { } } - if (rules.containsKey(refersTo)) { + if(refersTo.startsWith("[^")) { + refersTo = "[" + refersTo.substring(2); + + RGrammar dst = importRules.get(refersTo); + + newState.contents.append(dst.generate(refersTo, state.rnd, state.vars)); + } else if (rules.containsKey(refersTo)) { RuleCase cse = rules.get(refersTo).getCase(state.rnd); generateCase(cse, newState); -- cgit v1.2.3