if (pattern[next][1].equals("allowedNewInstance")) {
// System.err.println("Allowing new instance from: "+
// st[i].getName());
return allowedNewInstance.contains(st[i].getName());
}
throw new BrokenException("Internal error: detail: "
+ pattern[next][1]);
}
while (!match(pattern[next][1], st[i].getName())) {
if ((pattern[next][0].equals("some") && matchedSoFar > 0)
|| pattern[next][0].equals("optional")