code: def p_do_loop_while(p):
      
      if len(p) == 6:
          q = make_block(p[2], p[3])
          r = p[5]
      else:
          q = p[2]
          r = p[4]
  
      if p[1] == 'DO':
          gl.LOOPS.append(('DO',))
  
      p[0] = make_sentence('DO_WHILE', r, q)
      gl.LOOPS.pop()
  
      if is_number(r):
          api.errmsg.warning_condition_is_always(p.lineno(3), bool(r.value))
      if q is None:
          api.errmsg.warning_empty_loop(p.lineno(3))
docs: statement : do_start program_co label_loop WHILE expr
                    | do_start label_loop WHILE expr
                    | DO label_loop WHILE expr