セミコロンとカンマの扱いをどうしようか迷っています。
現在は、1つの式として扱うようにしています。
例)
Tree t1 = parse("a,b;c;d");
foreach (Tree t2; t1.split(";")) {
 foreach (Tree t3; t2.split(",")) {
  t2.println();
 }
 printf("---\n");
}

a
b
---
c
---
d
といった感じで。
パースした段階で既に、セミコロンとカンマは分離してあったほうがいいのか、微妙です。