/** returns an element which exactly matches the string given */
public static Element string(String s) { return string(s, true); }
public static Element string(String s, boolean share) {
- if (share && s.length() == 0) return epsilon;
+ if (share && s.length() == 0) return emptyString;
final String escapified = "\""+StringUtil.escapify(s, "\"\r\n\\")+"\"";
Element ret;
if (share && s.length() == 1) {
return ret;
}
- private static Union epsilon = new Union("()");
- static { epsilon.add(Sequence.create()); }
+ private static Union emptyString = new Union("()");
+ static {
+ // FIXME: force this to be dropped wherever used!
+ emptyString.add(Sequence.create(new Element[0], ""));
+ }
public Topology<Atom<Character>> unwrap() { return this; }
public Topology<Atom<Character>> empty() { return new CharAtom(); }
int i = r.read();
if (i==-1) {
- /*System.err.print("\r...done \r"); */
if (indent && indentation >= 0) {
redent(indentation - lastIndentation);
- //System.err.println("\r \rindent: " + (indentation - lastIndentation));
lastIndentation = indentation;
indentation = -1;
return __next();