_fn.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:tidy 作者: cyrus- 项目源码 文件源码
def _translate_rules(ctx, rules, scrutinee_trans):
        for (pat, branch) in rules:
            (condition, binding_translations) = ctx.translate_pat(
                pat, 
                scrutinee_trans)
            if not pat.bindings.keys() == binding_translations.keys():
                raise typy.TypyExtensionError(
                    "All bindings must have translations.")
            for binding_translation in binding_translations.itervalues():
                if not isinstance(binding_translation, ast.expr):
                    raise typy.TypyExtensionError(
                        "Binding translation must be an expression.")
            ctx_update = pat.ctx_update
            ctx.variables.push(ctx_update)
            branch_translation = ctx.translate(branch)
            ctx.variables.pop()
            yield (condition, binding_translations, ctx_update,
                   branch_translation)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号