From: adam Date: Wed, 14 Dec 2005 05:27:53 +0000 (-0500) Subject: checkpoint X-Git-Tag: tag_for_25-Mar~563 X-Git-Url: http://git.megacz.com/?p=sbp.git;a=commitdiff_plain;h=202da2dfa080e426c29c14123b3f2485b53f12dd checkpoint darcs-hash:20051214052753-5007d-bbff8372273ba526f90256c6660b910919fb512a.gz --- diff --git a/src/edu/berkeley/sbp/misc/MetaGrammar.java b/src/edu/berkeley/sbp/misc/MetaGrammar.java index d1ec416..eb4a34f 100644 --- a/src/edu/berkeley/sbp/misc/MetaGrammar.java +++ b/src/edu/berkeley/sbp/misc/MetaGrammar.java @@ -28,7 +28,6 @@ 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 Union _colon__colon__equals_(boolean q, String s, PreSequence[][] p) { return nonTerminalZ(s, p, q); } @@ -100,6 +99,8 @@ public class MetaGrammar extends ReflectiveWalker { public Range _minus_(char a, char b) { return new Range(a, b); } public Element rangesx(Range[] rr) { return ranges("~", rr); } public Element ranges(Range[] rr) { return ranges(null, rr); } + public Element _leftbracket_ (Range[] rr) { return ranges(null, rr); } + public Element _leftbracket__tilde_(Range[] rr) { return ranges("~", rr); } public Element ranges(Object o, Range[] rr) { Range.Set ret = !"~".equals(o+"") ? new Range.Set() : new Range.Set(new Range(true, true)); if (rr != null) diff --git a/tests/meta.g b/tests/meta.g index f709a77..975e855 100644 --- a/tests/meta.g +++ b/tests/meta.g @@ -31,8 +31,8 @@ range ::= ec => "range" e ::= word => "nonTerminalY" | [(][)] => "epsilon" | ^"{" alternatives "}" /ws - | "[" (range*) "]" => "ranges" - | "[~" (range*) "]" => "rangesx" + | ^"[" (range*) "]" + | ^"[~" (range*) "]" | e ^"+/" e /ws | e ^"*/" e /ws | e ^"?" /ws