Own-Programming-Language-Tu.../src/com/annimon/ownlang/parser/ast/ForStatement.java

44 lines
1.2 KiB
Java

package com.annimon.ownlang.parser.ast;
/**
*
* @author aNNiMON
*/
public final class ForStatement implements Statement {
public final Statement initialization;
public final Expression termination;
public final Statement increment;
public final Statement statement;
public ForStatement(Statement initialization, Expression termination, Statement increment, Statement block) {
this.initialization = initialization;
this.termination = termination;
this.increment = increment;
this.statement = block;
}
@Override
public void execute() {
for (initialization.execute(); termination.eval().asNumber() != 0; increment.execute()) {
try {
statement.execute();
} catch (BreakStatement bs) {
break;
} catch (ContinueStatement cs) {
// continue;
}
}
}
@Override
public void accept(Visitor visitor) {
visitor.visit(this);
}
@Override
public String toString() {
return "for " + initialization + ", " + termination + ", " + increment + " " + statement;
}
}