def processHoles(code, holes_decls):
    """Finds all hole symbols in the SMT-LIB code of the program and replaces them with
    appropriate references to their synthesis functions. Does nothing in case of
    verification.

    :param code: (str) Source code (in arbitrary language) of the program.
    :param holes_decls: (list[HoleDecl]) Declarations of all holes.
    :return: (str) Source code with SMT replacement of holes by appropriate functions.
    """
    if holes_decls is None or len(holes_decls) == 0:
        return code
    else:
        code = code.replace(")", " )")
        for h in holes_decls:
            if h.id in code:
                code = code.replace(h.id+" ", h.get_function_call()+" ")
        code = code.replace(" )", ")")
        return code