def _find_ast_resource()

in tools/resource.py [0:0]


    def _find_ast_resource(cls, ast):
        decls = ast.get("Decls")
        if not decls:
            return

        for decl in decls:
            if decl["NodeType"] != "FuncDecl":
                continue
            decl_type = decl["Type"]
            if decl_type["NodeType"] != "FuncType":
                continue
            if decl_type["Results"]["NodeType"] != "FieldList":
                continue
            for result in decl_type["Results"]["List"]:
                if result["Type"] != cls.AST_FUNC_RETURN:
                    continue
            for block in decl["Body"]["List"]:
                if block["NodeType"] != "ReturnStmt":
                    continue
                for result in block["Results"]:
                    x = result.get("X")
                    if x and x["Type"] == cls.AST_RESOURCE_TYPE:
                        return x