<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def match_tokens(ast_tokens, ast_types):
 """ Verify that each token in order does match the expected types. The list provided by `get_tokens` does have three more elements at the beginning of the list which should be always the same for a condition (Module and Expr). Those are automatically added first to the final list of expected types so you don't have to specify it yourself each time. True Args: ast_entries (list):
 list of AST tokens parsers previously. ast_types (list):
 list of expected AST types. Returns: bool: when all tokes match the expected types """

        ast_final_types = [ast.Module, ast.Expr] + ast_types
        return all(isinstance(ast_token, ast_type)
                   for ast_token, ast_type in zip(ast_tokens, ast_final_types))