- 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];
- }
- if (args instanceof Character[]) {
- char[] c = new char[args.length];
- for(int i=0; i<c.length; i++) c[i] = ((Character)args[i]).charValue();
- String s = new String(c, 0, c.length);
- return s;
- }
- return (String)args[0];
- }