while (tokenizer.hasMoreTokens()) {
String token = tokenizer.nextToken().trim();
if (token.equals("(")) {
CStringBuilder result = new CStringBuilder();
result.append("(");
while ((token.equals("(")) &&
(tokenizer.hasMoreTokens())) {
iOpen++;
if (iOpen > 1) {
result.append(token);
}
token = tokenizer.nextToken();
} // end while
while (((!token.equals(")")) || (iOpen > 0)) &&
(tokenizer.hasMoreTokens())) {
result.append(token);
token = tokenizer.nextToken();
if (token.equals(")")) {
iOpen--;
}
if (token.equals("(")) {
iOpen++;
}
} // end while
result.append(")");
if (tokenizer.hasMoreTokens()) {
token = tokenizer.nextToken();
if ((token.startsWith("*")) ||
(token.startsWith("?")) ||
(token.startsWith("+"))) {
result.append(token.substring(0, 1));
cp = (token.substring(1) +
getRest(tokenizer).trim()).trim();
booBreak = true;
} // end if
} // end if
String child = result.toString().trim();
if (!getParticleAsString().equals(child)) {
CContentParticle nCp = new CContentParticle(child,
this);
appendChild(nCp);