/*
* This file is part of the Jikes RVM project (http://jikesrvm.org).
*
* This file is licensed to You under the Eclipse Public License (EPL);
* You may not use this file except in compliance with the License. You
* may obtain a copy of the License at
*
* http://www.opensource.org/licenses/eclipse-1.0.php
*
* See the COPYRIGHT.txt file distributed with this work for information
* regarding copyright ownership.
*/
package org.mmtk.harness.lang.ast;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.mmtk.harness.lang.Visitor;
import org.mmtk.harness.lang.parser.Token;
/**
* Sequential execution of a sequence of statements
*/
public class Sequence extends AbstractAST implements Statement,Iterable<Statement> {
/**
* The list of statements
*/
private final List<Statement> stmts = new ArrayList<Statement>();
/**
* Constructor. Filters out empty statements.
*
* @param stmts
*/
public Sequence(Token t, List<Statement> stmts) {
super(t);
for (Statement s : stmts) {
if (!(s instanceof Empty))
this.stmts.add(s);
}
}
public Iterator<Statement> iterator() {
return stmts.iterator();
}
@Override
public Object accept(Visitor v) {
return v.visit(this);
}
}