 		
 		if let currentToken = peekCurrentToken(), case .else = currentToken.type {
 			
-			guard case .else = popCurrentToken().type else {
-				throw error(.unexpectedToken)
-			}
+			try popCurrentToken(andExpect: .else)
 			
 			if let currentToken = peekCurrentToken(), case .if = currentToken.type {
 				


		let body = try parseBodyWithCurlies()

		let whileToken = popCurrentToken()
		
		guard case .while = whileToken.type else {
			throw error(.unexpectedToken)
		}
		
		let condition = try parseExpression()
		

	
	fileprivate func parseForStatement() throws -> ASTNode {
		
		let forToken = try popCurrentToken(andExpect: .for)
		
		let assignment = try parseAssignment()
		
