public ForLine(Line parent, TokenStream stream, int indentationLevel)
	{
		super(parent);
		Token variableName = stream.removeFirst();
		if (!IdentifierMap.isValidIdentifier(variableName.toString()))
			throw new SyntaxError("Invalid variable name in for statement: " + variableName);
		variable = new ExpressionIdentifier(variableName);
		Token temp = stream.removeFirst();
		if (!temp.toString().equals("in"))
			throw new SyntaxError("Unexpected token in reading for statement: " + temp);
		iterable = Expression.interpret(stream);
		temp = stream.removeFirst();
		if (temp != Token.COLON)
			throw new SyntaxError("Expected colon after for statement, found " + temp);
		temp = stream.removeFirst();
		if (temp != Token.NEWLINE)
			throw new SyntaxError("Unexpected token after for statement: " + temp);
		block = new Block(this, stream, indentationLevel + 1);
		if (stream.hasNext() && stream.getFirst().toString().equals("then"))
		{
			stream.removeFirst();
			temp = stream.removeFirst();
			if (temp != Token.COLON)
				throw new SyntaxError("Expected colon after then statement, found " + temp);
			temp = stream.removeFirst();
			if (temp != Token.NEWLINE)
				throw new SyntaxError("Unexpected token after then statement: " + temp);
			thenBlock = new Block(this, stream, indentationLevel + 1);
		}
	}