From 202da2dfa080e426c29c14123b3f2485b53f12dd Mon Sep 17 00:00:00 2001 From: adam Date: Wed, 14 Dec 2005 00:27:53 -0500 Subject: [PATCH] checkpoint darcs-hash:20051214052753-5007d-bbff8372273ba526f90256c6660b910919fb512a.gz --- src/edu/berkeley/sbp/misc/MetaGrammar.java | 3 ++- tests/meta.g | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) 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 -- 1.7.10.4