- public Element _question_(final Element r) { return Repeat.maybe(r); }
- public MetaGrammar gram(Object o, MetaGrammar g, Object o2) { return g; }
- public MetaGrammar grammar(Object[] o) { return this; }
- public MetaGrammar grammar(Object o, Union[] u, Object x) { return this; }
- public char _backslash_n() { return '\n'; }
- public char _backslash_r() { return '\r'; }
- public String literal(String s) { return s; }
- //public Element literal(String s) { return CharToken.string(s); }
-
- public Range range0(char a) { return new Range(a, a); }
- public Range range0(char a, char b) { return new Range(a, b); }
- public Range range1(char a, char b) { return new Range(a, b); }
- public Element rangex(Range[] rr) { return range("~", rr); }
- public Element range(Range[] rr) { return range(null, rr); }
- public Element range(Object o, Range[] rr) {
- Range.Set ret = !"~".equals(o+"") ? new Range.Set() : new Range.Set(new Range(true, true));
- if (rr != null)
- for(Range r : rr)
- if (!"~".equals(o+"")) ret.add(r);
- else ret.remove(r);
- return CharToken.set(ret);
- }
- public Element rangex(Object o, Object[] r) {
- Range.Set ret = o==null ? new Range.Set() : new Range.Set(new Range(true, true));
- if (r != null)
- for(Object aa : r) {
- Range range =
- aa instanceof Range
- ? (Range)aa
- : aa instanceof Character
- ? new Range(((Character)aa).charValue())
- : new Range(((String)aa).charAt(0));
- if (o==null) ret.add(range);
- else ret.remove(range);
- }
- return CharToken.set(ret);
- }
-
- public String sify(Object arg) {
- if (arg==null) return "";
- if (arg instanceof String) return (String)arg;
- Object[] args = (Object[])arg;
- while(true) {
- args = Reflection.lub(args);
- if (args instanceof String[]) {
- StringBuffer ret = new StringBuffer();
- for(String s : ((String[])args)) ret.append(s);
- return ret.toString();
- }
- if (args instanceof Character[]) break;
- if (!(args instanceof Object[])) break;
- args = (Object[])args[0];
+ public Element _question_(final Element r) { return Repeat.maybe(r); }
+ public MetaGrammar gram(Object o, MetaGrammar g, Object o2) { return g; }
+ public MetaGrammar grammar(Object[] o) { return this; }
+ public MetaGrammar grammar(Object o, Union[] u, Object x) { return this; }
+ public char _backslash_n() { return '\n'; }
+ public char _backslash_r() { return '\r'; }
+ public String literal(String s) { return s; }
+ //public Element literal(String s) { return CharToken.string(s); }
+
+ public Range range0(char a) { return new Range(a, a); }
+ public Range range0(char a, char b) { return new Range(a, b); }
+ public Range range1(char a, char b) { return new Range(a, b); }
+ public Element rangex(Range[] rr) { return range("~", rr); }
+ public Element range(Range[] rr) { return range(null, rr); }
+ public Element range(Object o, Range[] rr) {
+ Range.Set ret = !"~".equals(o+"") ? new Range.Set() : new Range.Set(new Range(true, true));
+ if (rr != null)
+ for(Range r : rr)
+ if (!"~".equals(o+"")) ret.add(r);
+ else ret.remove(r);
+ return CharToken.set(ret);
+ }
+ public Element rangex(Object o, Object[] r) {
+ Range.Set ret = o==null ? new Range.Set() : new Range.Set(new Range(true, true));
+ if (r != null)
+ for(Object aa : r) {
+ Range range =
+ aa instanceof Range
+ ? (Range)aa
+ : aa instanceof Character
+ ? new Range(((Character)aa).charValue())
+ : new Range(((String)aa).charAt(0));
+ if (o==null) ret.add(range);
+ else ret.remove(range);