ParseNode parseExpr(Entry inEntry) throws ConfigurationException, IOException {
  List nodes=new ArrayList();
  for (; ; ) {
    nodes.add(parseSubExpr(inEntry));
    if (st.nextToken() != '+') {
      st.pushBack();
      break;
    }
  }
  if (nodes.size() == 1) {
    return (ParseNode)nodes.get(0);
  }
 else {
    return new StringConcatenation((ParseNode[])nodes.toArray(new ParseNode[nodes.size()]),st.lineno());
  }
}

ParseNode parseExpr ( Entry inEntry ) throws ConfigurationException , IOException { List nodes = new ArrayList ( ) ; for ( ; ; ) { nodes . add ( parseSubExpr ( inEntry ) ) ; if ( st . nextToken ( ) != '+' ) { st . pushBack ( ) ; break ; } } if ( nodes . size ( ) == 1 ) { return ( ParseNode ) nodes . get ( 0 ) ; } else { return new StringConcatenation ( ( ParseNode [ ] ) nodes . toArray ( new ParseNode [ nodes . size ( ) ] ) , st . lineno ( ) ) ; } }
parses a string concatenation
