def eval(self): if self.operator == '+': return BasicType(self.left.eval().value + self.right.eval().value) elif self.operator == '-': return BasicType(self.left.eval().value - self.right.eval().value) elif self.operator == '*': return BasicType(self.left.eval().value * self.right.eval().value) elif self.operator == '/': return BasicType(self.left.eval().value / self.right.eval().value) elif self.operator == '%': return BasicType(self.left.eval().value % self.right.eval().value)
def p_number(p): ''' number : INT | DOUBLE ''' p[0] = BasicType(p[1])
def p_string(p): ''' string : STRVALUE ''' p[0] = BasicType(p[1])