예제 #1
0
    def inverse_eval(self):
        if None in self:  # NULL ELEMENT
            from spark.lang.builtin import inversePartial, PARTIAL_SYMBOL

            (full, nullvalue) = inversePartial(self)
            return PARTIAL_SYMBOL.structure(inverse_eval(full), inverse_eval(nullvalue))

        def switch(arg):
            ie = inverse_eval(arg)
            if isStructure(ie):
                if ie.functor == BACKQUOTE_SYMBOL:
                    return ie[0]
            elif isinstance(ie, int) or isinstance(ie, float) or isinstance(ie, basestring):  # should use Integer, etc.
                return ie
            # otherwise
            return PREFIX_COMMA_SYMBOL.structure(ie)

        args = [switch(arg) for arg in self._args]
        return BACKQUOTE_SYMBOL.structure(_Structure(self.functor, args))
예제 #2
0
    def inverse_eval(self):
        if None in self:  # NULL ELEMENT
            from spark.lang.builtin import inversePartial, PARTIAL_SYMBOL
            (full, nullvalue) = inversePartial(self)
            return PARTIAL_SYMBOL.structure(inverse_eval(full),
                                            inverse_eval(nullvalue))

        def switch(arg):
            ie = inverse_eval(arg)
            if isStructure(ie):
                if ie.functor == BACKQUOTE_SYMBOL:
                    return ie[0]
            elif isinstance(ie, int) or isinstance(ie, float) \
                 or isinstance(ie, basestring): # should use Integer, etc.
                return ie
            # otherwise
            return PREFIX_COMMA_SYMBOL.structure(ie)

        args = [switch(arg) for arg in self._args]
        return BACKQUOTE_SYMBOL.structure(_Structure(self.functor, args))
예제 #3
0
 def inverse_eval(self):
     from spark.internal.parse.basicvalues import BACKQUOTE_SYMBOL
     return BACKQUOTE_SYMBOL.structure(self)
예제 #4
0
 def constant(self, value): # constant or (value if evaluate_if_possible)
     return BACKQUOTE_SYMBOL.structure(value)
예제 #5
0
    def inverse_eval(self):
        from spark.internal.parse.basicvalues import BACKQUOTE_SYMBOL

        return BACKQUOTE_SYMBOL.structure(self)
예제 #6
0
파일: oaa.py 프로젝트: jbalint/spark
            raise LowError("At least one argument needs to be bound")
        else:
            return (IclTerm.fromString(True, string), string)
    else:
        if string == None:
            return (icl, str(icl))
        else:
            if str(icl) == string:
                return (icl, string)
            else:
                return None
            

SYM_generateIclTerm = Symbol("spark.io.oaa.generateIclTerm")
SYM_applyfun = Symbol("applyfun")
QUOTED_GENERATEICLTERM = BACKQUOTE_SYMBOL.structure(SYM_generateIclTerm)
SYM_oaavar = Symbol("spark.io.oaa.oaavar")
QUOTED_OAAVAR = BACKQUOTE_SYMBOL.structure(SYM_oaavar)

def icl_inverse_eval(icl):
    string = icl_string(icl, None)[1]
    return SYM_applyfun.structure(QUOTED_GENERATEICLTERM, string)
def icl_append_value_str(icl, buf):
    buf.append(",")
    return append_value_str(icl_inverse_eval(icl), buf)

if imported:
    set_methods(IclTerm, append_value_str=icl_append_value_str, inverse_eval=icl_inverse_eval)

ATOM_FUNCTOR = "@"
NULLARY_FUNCTOR = "@@"
예제 #7
0
 def constant(self, value):  # constant or (value if evaluate_if_possible)
     return BACKQUOTE_SYMBOL.structure(value)
예제 #8
0
파일: oaa.py 프로젝트: jbalint/spark
            raise LowError("At least one argument needs to be bound")
        else:
            return (IclTerm.fromString(True, string), string)
    else:
        if string == None:
            return (icl, str(icl))
        else:
            if str(icl) == string:
                return (icl, string)
            else:
                return None


SYM_generateIclTerm = Symbol("spark.io.oaa.generateIclTerm")
SYM_applyfun = Symbol("applyfun")
QUOTED_GENERATEICLTERM = BACKQUOTE_SYMBOL.structure(SYM_generateIclTerm)
SYM_oaavar = Symbol("spark.io.oaa.oaavar")
QUOTED_OAAVAR = BACKQUOTE_SYMBOL.structure(SYM_oaavar)


def icl_inverse_eval(icl):
    string = icl_string(icl, None)[1]
    return SYM_applyfun.structure(QUOTED_GENERATEICLTERM, string)


def icl_append_value_str(icl, buf):
    buf.append(",")
    return append_value_str(icl_inverse_eval(icl), buf)


if imported: