private void merge(Collection<Statement> statements,
                           List<ExpressionStatement> expressionStatements) {
            int size = expressionStatements.size();

            if (size == 0) {
            }
            else if (size == 1) {
                statements.add(expressionStatements.get(0));
            }
            else {
                List<Expression> expressions = new ArrayList<Expression>();

                for (int i=0; i<size; i++) {
                    ExpressionStatement stmt = expressionStatements.get(i);
                    gatherExpressions(expressions, stmt.getExpression());
                }

                size = expressions.size();
                Expression concat = expressions.get(0);

                for (int i=1; i<size; i++) {
                    Expression right = expressions.get(i);
                    SourceInfo rightInfo = right.getSourceInfo();

                    SourceInfo info =
                        concat.getSourceInfo().setEndPosition(rightInfo);

                    Token token = new Token(rightInfo, Token.CONCAT);

                    concat = new ConcatenateExpression
                        (info, token, concat, right);
                }

                statements.add(new ExpressionStatement(concat));
            }
        }