Example #1
0
 def generate_idlist_comma_code(self, p, q):
     p[0] = StatementTerminal()
     p[0].stack = p[1].stack + p[3].stack
     p[0].address = p[1].address
     if p[3].address:
         q = p[3].address
     p[1].next_list_back_patch(q)
     if p[3].address:
         p[0].code = p[1].code + p[3].code
     else:
         p[0].code = p[1].code + q + ': ' + p[3].code
     p[0].next_list = p[3].next_list
Example #2
0
 def generate_stmtlist_code(self, p, q):
     if p[2].code:
         p[0] = StatementTerminal()
         p[0].stack = p[1].stack + p[2].stack
         if p[2].address:
             q = p[2].address
         if p[1].code:
             p[0].address = p[1].address
         else:
             p[0].address = q
         p[1].next_list_back_patch(q)
         if p[2].address:
             p[0].code = p[1].code + p[2].code
         else:
             p[0].code = p[1].code + q + ": " + p[2].code
         p[0].next_list = p[2].next_list
     else:
         p[0] = p[1]