Beispiel #1
0
    def setAtIndex(self, ctx: ParserRuleContext, indexes: list,
                   val: SiliconValue, newVal: SiliconValue):
        if not val.isList():
            raise Exception('setAtIndex Exception' + ctx.getText())

        for i in range(len(indexes) - 1):
            idx = self.visit(indexes[i])
            if not idx.isNumber:
                raise Exception('setAtIndex Exception: Not a number' +
                                ctx.getText())
            val = val.asList()[int(idx.asDouble())]

        idx = self.visit(indexes[len(indexes) - 1])
        if not idx.isNumber():
            raise Exception('setAtIndex Exception: Not a number ' +
                            ctx.getText())

        val.asList()[int(idx.asDouble())] = newVal
Beispiel #2
0
 def __init__(self, ctx: ParserRuleContext):
     self.evalException("Illegal expression: " + ctx.getText(), ctx)