
package de.dhbwstuttgart.syntaxtree.statement;

import de.dhbwstuttgart.exceptions.NotImplementedException;
import de.dhbwstuttgart.parser.NullToken;
import de.dhbwstuttgart.syntaxtree.StatementVisitor;
import de.dhbwstuttgart.syntaxtree.type.Void;
import de.dhbwstuttgart.typeinference.assumptions.TypeInferenceBlockInformation;
import de.dhbwstuttgart.typeinference.constraints.ConstraintSet;
import org.antlr.v4.runtime.Token;

import java.util.List;

public class ForStmt extends Statement
{
	public final List<Statement> initializer;
	public final Expression condition;
	public final List<Expression> loopExpr;
	public final Statement block;

	public ForStmt(Token offset, List<Statement> initializer, Expression condition, List<Expression> loopExpr, Statement block)
    {
        super(new Void(new NullToken()), offset);
        this.initializer = initializer;
        this.condition = condition;
        this.loopExpr = loopExpr;
        this.block = block;
    }

    @Override
    public void accept(StatementVisitor visitor) {
        visitor.visit(this);
    }
}