Iterator<HiddenTokenAwareTree> iterator = members.iterator();
// this must represent a term. Otherwise we are doomed anyway.
Expression head = (Expression) switchOn(iterator.next());
List<Expression> spaceSeparatedExpressions = new ArrayList<Expression>();
spaceSeparatedExpressions.add(head);
ListExpressionOperator space=null;
List<Expression> commaSeparatedExpressions = new ArrayList<Expression>();
ListExpressionOperator comma=null;
while (iterator.hasNext()) {
HiddenTokenAwareTree operatorToken = iterator.next();
operatorToken.pushHiddenToSiblings();
ListExpressionOperator operator = createListOperator(operatorToken);
if (operator==null) {
System.out.println(operatorToken);
System.out.println("");
}
if (operator.getOperator()==ListExpressionOperator.Operator.EMPTY_OPERATOR) {
space = operator;
} else {
comma = operator;
if (!spaceSeparatedExpressions.isEmpty())
commaSeparatedExpressions.add(maybeList(spaceSeparatedExpressions, space));