Exemplo n.º 1
0
def createInvocation(fn, symarg, reset=lambda: None):
    inv = FunctionInvocation(fn, reset)
    argspec = inspect.getargspec(fn)
    for a in argspec.args:
        if not a in inv.getNames():
            symarg(inv, a)
            #inv.addArgumentConstructor(a, 0, symarg)
    return inv
Exemplo n.º 2
0
 def createInvocation(self):
     inv = FunctionInvocation(self._execute, self.entrypoint, self._reset)
     func = self.app.__dict__[self.entrypoint]
     argspec = inspect.getargspec(func)
     # check to see if user specified initial values of arguments
     if "concrete_args" in func.__dict__:
         for (f, v) in func.concrete_args.items():
             if not f in argspec.args:
                 print("Error in @concrete: " + self.entrypoint +
                       " has no argument named " + f)
                 raise ImportError()
             else:
                 self._initializeArgumentConcrete(inv, f, v)
     if "symbolic_args" in func.__dict__:
         for (f, v) in func.symbolic_args.items():
             if not f in argspec.args:
                 print("Error (@symbolic): " + self.entrypoint +
                       " has no argument named " + f)
                 raise ImportError()
             elif f in inv.getNames():
                 print("Argument " + f +
                       " defined in both @concrete and @symbolic")
                 raise ImportError()
             else:
                 s = getSymbolic(v)
                 if (s == None):
                     print(
                         "Error at argument " + f + " of entry point " +
                         self.entrypoint +
                         " : no corresponding symbolic type found for type "
                         + str(type(v)))
                     raise ImportError()
                 self._initializeArgumentSymbolic(inv, f, v, s)
     for a in argspec.args:
         if not a in inv.getNames():
             self._initializeArgumentSymbolic(inv, a, 0, SymbolicInteger)
     if "policy" in func.__dict__:
         inv.addPolicy(func.policy)
     if "precondition" in func.__dict__:
         inv.addPrecondition(func.precondition)
     return inv
Exemplo n.º 3
0
 def createInvocation(self):
     inv = FunctionInvocation(self._execute, self.entrypoint, self._reset)
     func = self.app.__dict__[self.entrypoint]
     argspec = inspect.getargspec(func)
     # check to see if user specified initial values of arguments
     if "concrete_args" in func.__dict__:
         for (f, v) in func.concrete_args.items():
             if not f in argspec.args:
                 print("Error in @concrete: " + self.entrypoint + " has no argument named " + f)
                 raise ImportError()
             else:
                 self._initializeArgumentConcrete(inv, f, v)
     if "symbolic_args" in func.__dict__:
         for (f, v) in func.symbolic_args.items():
             if not f in argspec.args:
                 print("Error (@symbolic): " + self.entrypoint + " has no argument named " + f)
                 raise ImportError()
             elif f in inv.getNames():
                 print("Argument " + f + " defined in both @concrete and @symbolic")
                 raise ImportError()
             else:
                 s = getSymbolic(v)
                 if (s == None):
                     print(
                         "Error at argument " + f + " of entry point " + self.entrypoint +
                         " : no corresponding symbolic type found for type " + str(type(v)))
                     raise ImportError()
                 self._initializeArgumentSymbolic(inv, f, v, s)
     for a in argspec.args:
         if not a in inv.getNames():
             self._initializeArgumentSymbolic(inv, a, 0, SymbolicInteger)
     if "policy" in func.__dict__:
         inv.addPolicy(func.policy)
     if "precondition" in func.__dict__:
         inv.addPrecondition(func.precondition)
     return inv