public Token(Parser.Token[] list) { this.s = null; n = 0; l = list; type = LIST; }
public Token(int number) { this.s = null; n = number; l = null; type = NUMBER; }
+ public String toString() {
+ // FIXME hack
+ switch(type) {
+ case NIL: return "NIL";
+ case LIST: return "(" + Printer.join(", ", l) + ")";
+ case QUOTED: return s;
+ case NUMBER: return n+"";
+ case ATOM: return s;
+ case BAREWORD: return s;
+ case SET: return "<set>";
+ }
+ return "???";
+ }
+
public String flag() { if (type != ATOM) bad("expected a flag"); return s; }
public int n() { if (type != NUMBER) bad("expected number"); return n; }
public int nz() { int n = n(); if (n == 0) bad("expected nonzero number"); return n; }
else if (flag.equals("\\Draft")) ret |= Mailbox.Flag.DRAFT;
else if (flag.equals("\\Answered")) ret |= Mailbox.Flag.ANSWERED;
else if (flag.equals("\\Recent")) ret |= Mailbox.Flag.RECENT;
+ else Log.warn(this, "unknown flag: " + flag);
}
return ret;
}