Пример #1
0
 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,))
Пример #2
0
 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, ))
Пример #3
0
 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,))
Пример #4
0
 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()