Esempio n. 1
0
 def action_bis(toks):
     if len(toks) == 3:
         addr = toks[1]
     elif len(toks) == 5 and toks[2] == ',':
         addr = expressions.op('+', toks[1], toks[3])
         if att_syntax.env.internals.get('keep_order'): addr.prop |= 16
     elif len(toks) == 6 and toks[1] == ',' and toks[3] == ',':
         toks[4].size = toks[2].size # cst size set to register size
         addr = expressions.oper('*', toks[2], toks[4])
     elif len(toks) == 7 and toks[2] == ',' and toks[4] == ',':
         toks[5].size = toks[3].size # cst size set to register size
         addr = expressions.op('+', toks[1], expressions.oper('*', toks[3], toks[5]))
         if att_syntax.env.internals.get('keep_order'): addr.prop |= 16
     else:
         NEVER
     return addr
Esempio n. 2
0
 def action_bis(toks):
     if len(toks) == 3:
         addr = toks[1]
     elif len(toks) == 5 and toks[2] == ",":
         addr = expressions.op("+", toks[1], toks[3])
         if env.internals.get("keep_order"):
             addr.prop |= 16
     elif len(toks) == 6 and toks[1] == "," and toks[3] == ",":
         toks[4].size = toks[2].size  # cst size set to register size
         addr = expressions.oper("*", toks[2], toks[4])
     elif len(toks) == 7 and toks[2] == "," and toks[4] == ",":
         toks[5].size = toks[3].size  # cst size set to register size
         addr = expressions.op("+", toks[1],
                               expressions.oper("*", toks[3], toks[5]))
         if env.internals.get("keep_order"):
             addr.prop |= 16
     else:
         NEVER
     return addr