def p_method(p): """method : doccomment KW_OP WORD OP_OPEN_PAREN typednames OP_CLOSE_PAREN assumes stm | doccomment visibility KW_QUERY WORD OP_OPEN_PAREN typednames OP_CLOSE_PAREN assumes exp""" if p[2] == "op": p[0] = syntax.Op(p[3], p[5], p[7], p[8], p[1]) else: p[0] = syntax.Query(p[4], p[2], p[6], p[8], p[9], p[1])
def make_subgoal(e, a=[], docstring=None): if skip_stateless_synthesis.value and not any(v in ctx for v in free_vars(e)): return e query_name = fresh_name("query") query = syntax.Query(query_name, syntax.Visibility.Internal, [], assumptions + a, e, docstring) query_vars = [v for v in free_vars(query) if v not in ctx] query.args = [(arg.id, arg.type) for arg in query_vars] subgoals.append(query) return syntax.ECall(query_name, tuple(query_vars)).with_type(e.type)