From 8e641de44000b55b2451bdaee56b4e31f077b25b Mon Sep 17 00:00:00 2001 From: adam Date: Tue, 13 Dec 2005 21:40:15 -0500 Subject: [PATCH] checkpoint darcs-hash:20051214024015-5007d-6b143d5b071f94cf592444ffff69e98e31d0ee21.gz --- src/edu/berkeley/sbp/misc/MetaGrammar.java | 17 ++++++++--------- tests/meta.g | 2 ++ 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/edu/berkeley/sbp/misc/MetaGrammar.java b/src/edu/berkeley/sbp/misc/MetaGrammar.java index 6224fa0..a5d7e1d 100644 --- a/src/edu/berkeley/sbp/misc/MetaGrammar.java +++ b/src/edu/berkeley/sbp/misc/MetaGrammar.java @@ -27,14 +27,14 @@ public class MetaGrammar extends ReflectiveWalker { // MetaGrammar ////////////////////////////////////////////////////////////////////////////// - public Object _star_(Element r) { return new Rep(r, null, false, true); } - public Element _leftbracket_(Object o, Object[] args) { return rangex(o==null || !(o instanceof Character) ? null : o, args); } - public Union _colon__colon__equals_(String s, PreSequence[][] p) { return nonTerminalZ(s, p); } - public Union _bang__colon__colon__equals_(String s, PreSequence[][] p) { return nonTerminalZ(s, p, true); } + public Object _star_(Element r) { return new Rep(r, null, false, true); } + public Element _leftbracket_(Object o, Object[] args) { return rangex(o==null || !(o instanceof Character) ? null : o, args); } + public Union _colon__colon__equals_(String s, PreSequence[][] p) { return nonTerminalZ(s, p); } + public Union _bang__colon__colon__equals_(String s, PreSequence[][] p) { return nonTerminalZ(s, p, true); } public Union _colon__colon__equals_(boolean q, String s, PreSequence[][] p) { return nonTerminalZ(s, p, q); } - public Element _leftparen__rightparen_() { return epsilon; } - public Element epsilon(Object o, Object b) { return epsilon; } - public Element _rightparen_(Object e) { return SELF; } + public Element _leftparen__rightparen_() { return epsilon; } + public Element epsilon(Object o, Object b) { return epsilon; } + public Element _rightparen_(Object e) { return SELF; } public PreSequence _amp_(PreSequence p, Object[] o) { p.needs.add(new PreSequence(o, null, true)); @@ -54,6 +54,7 @@ public class MetaGrammar extends ReflectiveWalker { public PreSequence[] alternatives(PreSequence[] s) { return s; } public Range _minus_(Character a, Character b) { return b==null ? new Range(a.charValue(), true) : new Range(a.charValue(), b.charValue()); } + public Object _leftparen_(PreSequence[][] p) { return nonTerminalZ(p); } public Union nonTerminalY(String s) { return nonTerminalX(s, false, false); } public Union nonTerminalX(String s, boolean synthetic, boolean dropAll) { Union n = s.equals(startSymbol) ? g : nt.get(s); @@ -61,7 +62,6 @@ public class MetaGrammar extends ReflectiveWalker { if (dropAll) this.dropAll.add(n); return n; } - public Object _leftparen_(PreSequence[][] p) { return nonTerminalZ(p); } public Union nonTerminalZ(PreSequence[][] p) { return nonTerminalX("anon"+(anon++), p, false, false); } public Union nonTerminalZ(String s, PreSequence[][] p) { return nonTerminalX(s, p, false, false); } public Union nonTerminalZ(String s, PreSequence[][] p, boolean q) { return nonTerminalX(s, p, false, q); } @@ -73,7 +73,6 @@ public class MetaGrammar extends ReflectiveWalker { Object[] ret = new Object[o.length * 2 - 1]; for(int i=0; i "nonTerminalY" | "[~" (range*) "]" => "rangex" | e ^"%%" e /ws | e ^"$$" e /ws + | e ^"+/" e /ws + | e ^"*/" e /ws | e ^"?" /ws | e ^"~/~" /ws -- 1.7.10.4