Пример #1
0
    def __init__(self, lhs, rhs):
        ExpressionWithLHS.__init__(self, rhs)

        if not MathUtil.is_single_symbol(lhs):
            err = 'Expecting a single symbol on the LHS; got: %s' % lhs
            raise NineMLRuntimeError(err)
        if not is_valid_lhs_target(lhs):
            err = 'Invalid LHS target: %s' % lhs
            raise NineMLRuntimeError(err)

        self._lhs = lhs.strip()
Пример #2
0
def On(trigger, do=None, to=None):
    if isinstance(do, (OutputEvent, basestring)):
        do = [do]
    elif do == None:
        do = []
    else:
        pass

    if isinstance(trigger, basestring):
        if MathUtil.is_single_symbol(trigger):
            return DoOnEvent(input_event=trigger, do=do, to=to)
        else:
            return DoOnCondition(condition=trigger, do=do, to=to)

    elif isinstance(trigger, OnCondition):
        return DoOnCondition(condition=trigger, do=do, to=to)
    else:
        err = "Unexpected Type for On() trigger: %s %s" % (type(trigger),
                                                           str(trigger))
        raise NineMLRuntimeError(err)
Пример #3
0
    def test_is_single_symbol(self):
        # Signature: name(cls, expr)
        # Returns ``True`` if the expression is a single symbol, possibly
        # surrounded with white-spaces
        #
        # >>> is_single_symbol('hello')
        # True
        #
        # >>> is_single_symbol('hello * world')
        # False

        self.assertTrue(MathUtil.is_single_symbol("t"))
        self.assertTrue(MathUtil.is_single_symbol("var_1"))
        self.assertTrue(MathUtil.is_single_symbol("var_long_name"))
        self.assertTrue(MathUtil.is_single_symbol("_myName"))

        self.assertFalse(MathUtil.is_single_symbol("r + y"))
        self.assertFalse(MathUtil.is_single_symbol("r+y"))
        self.assertFalse(MathUtil.is_single_symbol("sin(y)"))