def argument(self, value): """\ Prepare a parameter for the linker. Expressions are evaluated. """ try: return infix2postfix(value, variable_prefix=u'GET-SYMBOL ') except ValueError, e: raise AssemblerError('invalid expression: %r' % (value,))
def eval(self, expression): self.clear() try: rpn_expr = infix2postfix.infix2postfix(expression, scanner=Scanner, precedence=precedence, variable_prefix='LOOKUP ') except ValueError, e: raise PreprocessorError('error in expression: %r' % (expression, ))
def eval(self, expression): self.clear() try: rpn_expr = infix2postfix.infix2postfix( expression, scanner=Scanner, precedence = precedence, variable_prefix='LOOKUP ') except ValueError, e: raise PreprocessorError('error in expression: %r' % (expression,))
def eval(self, expression): self.clear() try: rpn_expr = infix2postfix.infix2postfix(expression, scanner=Scanner, precedence=precedence, variable_prefix='LOOKUP ') except ValueError: raise PreprocessorError( 'error in expression: {!r}'.format(expression)) #~ print "RPN: %r" % (rpn_expr,) # XXX debug # hack: replace "LOOKUP <word> DEFINED" with "DEFINED <word>" rpn_expr = self.re_defined_translation.sub(self._translate_defined, rpn_expr) self.interpret_sequence(rpn_expr.split(' ')) if len(self) != 1: raise PreprocessorError( 'error in expression: {!r} stack: {}'.format(expression, self)) return self.pop()