Test: ex065

Higher SubleqErrorOutputSubleqITR
int _divMod(int a, int b, int j)
{
   if( a<b ) { *j=a; return 0; }

   int b1=b, i=1, bp, ip;

   next:
   bp = b1; ip = i;
   b1 = b1 + b1; i=i + i;

   if( a<b1 ) 
      return ip + _divMod(a-bp,b,j);

   goto next;
}

int _putintr(int x)
{
   if( x>0 )
   {
      int i,j;
      i = _divMod(x,10,&j);
      i = _putintr(i);
      __out 48+j;
      return i+1;
   }
   return 0;
}

int _putint(int x)
{
   if( x<0 )
   {
      __out 45;
      return _putintr(-x)+1;
   }
   if( x>0 )
      return _putintr(x);

   __out 48;
   return 1;
}

int main()
{
   _putint(123);
   _putint(0);
   int k = _putint(-12345678);
   __out ' ';
   __out k+'0';
}



1230-12345678 9

   top:top top sqmain

__divMod:
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; bp 0
   bp; sp bp
   c7 sp
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t1 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t2 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t3 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t4 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t5 0

   t1; t2; bp t1; c1 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c4 t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   t1; t4 Z; Z t1; Z; t3 t1
   Z t1 l1
   t1; t2; bp t1; c1 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c2 t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   ?+23; ?+21; ?+24; t4 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t3 Z; Z 0; Z

   ax; c3 ax
   Z Z end__divMod

l1:

   t1; t2; bp t1; c4 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; dec t2; t2 t1
   ?+23; ?+21; ?+24; t1 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t3 Z; Z 0; Z
   t3; t1; bp t3; c5 t3; t3 t1
   ?+23; ?+21; ?+24; t1 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; dec Z; Z 0; Z

l__divMod_next:
   t1; t2; bp t1; dec t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c6 t2; t2 t1
   ?+23; ?+21; ?+24; t1 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t3 Z; Z 0; Z

   t1; t2; bp t1; c5 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c7 t2; t2 t1
   ?+23; ?+21; ?+24; t1 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t3 Z; Z 0; Z

   t1; t2; bp t1; dec t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; dec t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   t1; t2; t3 t1; t4 t1; t1 t2
   t1; t4; bp t1; dec t1; t1 t4
   ?+23; ?+21; ?+24; t4 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t2 Z; Z 0; Z

   t1; t2; bp t1; c5 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c5 t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   t1; t2; t3 t1; t4 t1; t1 t2
   t1; t4; bp t1; c5 t1; t1 t4
   ?+23; ?+21; ?+24; t4 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t2 Z; Z 0; Z

   t5; t2; bp t5; c1 t5; t5 t2
   t5; t3; ?+11; t2 Z; Z ?+4; Z; 0 t5; t5 t3
   t2; t5; bp t2; dec t2; t2 t5
   t2; t1; ?+11; t5 Z; Z ?+4; Z; 0 t2; t2 t1
   t5; t1 Z; Z t5; Z; t3 t5
   Z t5 l2
   t1; t2; bp t1; c7 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; bp t2; c2 t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t4 Z; Z 0; Z
   t4; t1; bp t4; c4 t4; t4 t1
   t4; t2; ?+11; t1 Z; Z ?+4; Z; 0 t4; t4 t2
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t2 Z; Z 0; Z
   t2; t1; bp t2; c1 t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   t1; t2; bp t1; c6 t1; t1 t2
   t1; t5; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t5
   t2; t4 Z; Z t2; Z; t5 t2
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t2 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 __divMod; . ?;
   t2; ax t2
   c2 sp
   t5; t4; t3 t5; t2 t5; t5 t4
   ax; t4 ax
   Z Z end__divMod
l2:

   Z Z l__divMod_next

end__divMod:
   ?+8; sp ?+4; t5; 0 t5; inc sp
   ?+8; sp ?+4; t4; 0 t4; inc sp
   ?+8; sp ?+4; t3; 0 t3; inc sp
   ?+8; sp ?+4; t2; 0 t2; inc sp
   ?+8; sp ?+4; t1; 0 t1; inc sp
   sp; bp sp
   ?+8; sp ?+4; bp; 0 bp; inc sp
   ?+8; sp ?+4; ?+7; 0 ?+3; Z Z 0

__putintr:
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; bp 0
   bp; sp bp
   c5 sp
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t1 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t2 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t3 0

   t1; t2; bp t1; c1 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t3 Z; Z t2; Z; c3 t2
   Z t2 l3
   t1; t2; bp t1; c5 t1; t1 t2
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t2 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; c8 Z; Z 0; Z
   t2; t1; bp t2; c1 t2; t2 t1
   t2; t3; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t3
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t3 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 __divMod; . ?;
   t3; ax t3
   c2 sp
   t1; t2; bp t1; dec t1; t1 t2
   ?+23; ?+21; ?+24; t2 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t3 Z; Z 0; Z

   t1; t2; bp t1; dec t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t3 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 __putintr; . ?;
   t3; ax t3
   c1 sp
   t2; t1; bp t2; dec t2; t2 t1
   ?+23; ?+21; ?+24; t1 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t3 Z; Z 0; Z

   t1; t2; bp t1; c5 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; c9 t2; t3 t2; t2 t1
   t1 (-1)

   t1; t2; bp t1; dec t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; t3 t2; dec t2; t2 t1
   ax; t1 ax
   Z Z end__putintr

l3:

   ax; c3 ax
   Z Z end__putintr

end__putintr:
   ?+8; sp ?+4; t3; 0 t3; inc sp
   ?+8; sp ?+4; t2; 0 t2; inc sp
   ?+8; sp ?+4; t1; 0 t1; inc sp
   sp; bp sp
   ?+8; sp ?+4; bp; 0 bp; inc sp
   ?+8; sp ?+4; ?+7; 0 ?+3; Z Z 0

__putint:
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; bp 0
   bp; sp bp
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t1 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t2 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t3 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t4 0

   t1; t2; bp t1; c1 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; c3 Z; Z t2; Z; t3 t2
   Z t2 l4
   c10 (-1)

   t1; t2; bp t1; c1 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t3 t2
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t2 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 __putintr; . ?;
   t2; ax t2
   c1 sp
   t3; t1; t2 t3; dec t3; t3 t1
   ax; t1 ax
   Z Z end__putint

l4:

   t2; t1; bp t2; c1 t2; t2 t1
   t2; t4; ?+11; t1 Z; Z ?+4; Z; 0 t2; t2 t4
   t1; t4 Z; Z t1; Z; c3 t1
   Z t1 l5
   t1; t2; bp t1; c1 t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; t3 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 __putintr; . ?;
   t3; ax t3
   c1 sp
   ax; t3 ax
   Z Z end__putint
l5:

   c9 (-1)

   ax; dec ax
   Z Z end__putint

end__putint:
   ?+8; sp ?+4; t4; 0 t4; inc sp
   ?+8; sp ?+4; t3; 0 t3; inc sp
   ?+8; sp ?+4; t2; 0 t2; inc sp
   ?+8; sp ?+4; t1; 0 t1; inc sp
   sp; bp sp
   ?+8; sp ?+4; bp; 0 bp; inc sp
   ?+8; sp ?+4; ?+7; 0 ?+3; Z Z 0

_main:
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; bp 0
   bp; sp bp
   dec sp
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t1 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t2 0
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; t3 0

   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; c11 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 __putint; . ?;
   c1 sp

   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; c3 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 __putint; . ?;
   c1 sp

   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+9; sp ?+5; c12 Z; Z 0; Z
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 __putint; . ?;
   t1; ax t1
   c1 sp
   t2; t3; bp t2; dec t2; t2 t3
   ?+23; ?+21; ?+24; t3 Z; Z ?+10; Z ?+8
   Z ?+11; Z; 0; t1 Z; Z 0; Z

   c13 (-1)

   t1; t2; bp t1; dec t1; t1 t2
   t1; t3; ?+11; t2 Z; Z ?+4; Z; 0 t1; t1 t3
   t2; t1; t3 t2; c9 t2; t2 t1
   t1 (-1)

   ?+8; sp ?+4; t3; 0 t3; inc sp
   ?+8; sp ?+4; t2; 0 t2; inc sp
   ?+8; sp ?+4; t1; 0 t1; inc sp
   sp; bp sp
   ?+8; sp ?+4; bp; 0 bp; inc sp
   ?+8; sp ?+4; ?+7; 0 ?+3; Z Z 0

sqmain:
   dec sp; ?+11; sp ?+7; ?+6; sp ?+2; 0
   ?+6; sp ?+2; ?+2 0 _main; . ?; inc sp

   Z Z (-1)

. c12:-12345678 c1:-2 c4:-3 c2:-4 c3:0 c8:10 c11:123 c5:2 c6:3 c13:32 c7:4 c10:45 c9:48

. t1:0 t2:0 t3:0 t4:0 t5:0

. inc:-1 Z:0 dec:1 ax:0 bp:0 sp:-sp

Root (ex065.hsq:53)
   Function:4 [_divMod] (ex065.hsq:1)
      Keyword [int] (ex065.hsq:1)
      Param-type-list (ex065.hsq:1)
         Stackvar:-2 [a] (ex065.hsq:1)
         Stackvar:-3 [b] (ex065.hsq:1)
         Stackvar:-4 [j] (ex065.hsq:1)
      Block (ex065.hsq:2)
         Keyword-statement [if] (ex065.hsq:3)
            Relational [<] (ex065.hsq:3)
               Unary [*] (ex065.hsq:3) a:1
                  Additive [+] (ex065.hsq:3) a:1
                     Variable [@bp] (ex065.hsq:3) a:1
                     Const [-2] (ex065.hsq:3) a:1
               Unary [*] (ex065.hsq:3) b:1
                  Additive [+] (ex065.hsq:3) b:1
                     Variable [@bp] (ex065.hsq:3) b:1
                     Const [-3] (ex065.hsq:3) b:1
            Block (ex065.hsq:3)
               Assignment [=] (ex065.hsq:3)
                  Unary [*] (ex065.hsq:3)
                     Unary [*] (ex065.hsq:3) j:1
                        Additive [+] (ex065.hsq:3) j:1
                           Variable [@bp] (ex065.hsq:3) j:1
                           Const [-4] (ex065.hsq:3) j:1
                  Unary [*] (ex065.hsq:3) a:1
                     Additive [+] (ex065.hsq:3) a:1
                        Variable [@bp] (ex065.hsq:3) a:1
                        Const [-2] (ex065.hsq:3) a:1
               Keyword-statement [return] (ex065.hsq:3)
                  Const [0] (ex065.hsq:3)
         Declaration (ex065.hsq:5)
            Keyword [int] (ex065.hsq:5)
            Declarator [=] (ex065.hsq:5)
               Stackvar:1 [b1] (ex065.hsq:5)
               Unary [*] (ex065.hsq:5) b:1
                  Additive [+] (ex065.hsq:5) b:1
                     Variable [@bp] (ex065.hsq:5) b:1
                     Const [-3] (ex065.hsq:5) b:1
            Declarator [=] (ex065.hsq:5)
               Stackvar:2 [i] (ex065.hsq:5)
               Const [1] (ex065.hsq:5)
            Declarator [0] (ex065.hsq:5)
               Stackvar:3 [bp] (ex065.hsq:5)
            Declarator [0] (ex065.hsq:5)
               Stackvar:4 [ip] (ex065.hsq:5)
         Label-statement [next] (ex065.hsq:7)
            Assignment [=] (ex065.hsq:8)
               Unary [*] (ex065.hsq:8) bp:5
                  Additive [+] (ex065.hsq:8) bp:5
                     Variable [@bp] (ex065.hsq:8) bp:5
                     Const [3] (ex065.hsq:8) bp:5
               Unary [*] (ex065.hsq:8) b1:5
                  Additive [+] (ex065.hsq:8) b1:5
                     Variable [@bp] (ex065.hsq:8) b1:5
                     Const [1] (ex065.hsq:8) b1:5
         Assignment [=] (ex065.hsq:8)
            Unary [*] (ex065.hsq:8) ip:5
               Additive [+] (ex065.hsq:8) ip:5
                  Variable [@bp] (ex065.hsq:8) ip:5
                  Const [4] (ex065.hsq:8) ip:5
            Unary [*] (ex065.hsq:8) i:5
               Additive [+] (ex065.hsq:8) i:5
                  Variable [@bp] (ex065.hsq:8) i:5
                  Const [2] (ex065.hsq:8) i:5
         Assignment [=] (ex065.hsq:9)
            Unary [*] (ex065.hsq:9) b1:5
               Additive [+] (ex065.hsq:9) b1:5
                  Variable [@bp] (ex065.hsq:9) b1:5
                  Const [1] (ex065.hsq:9) b1:5
            Additive [+] (ex065.hsq:9)
               Unary [*] (ex065.hsq:9) b1:5
                  Additive [+] (ex065.hsq:9) b1:5
                     Variable [@bp] (ex065.hsq:9) b1:5
                     Const [1] (ex065.hsq:9) b1:5
               Unary [*] (ex065.hsq:9) b1:5
                  Additive [+] (ex065.hsq:9) b1:5
                     Variable [@bp] (ex065.hsq:9) b1:5
                     Const [1] (ex065.hsq:9) b1:5
         Assignment [=] (ex065.hsq:9)
            Unary [*] (ex065.hsq:9) i:5
               Additive [+] (ex065.hsq:9) i:5
                  Variable [@bp] (ex065.hsq:9) i:5
                  Const [2] (ex065.hsq:9) i:5
            Additive [+] (ex065.hsq:9)
               Unary [*] (ex065.hsq:9) i:5
                  Additive [+] (ex065.hsq:9) i:5
                     Variable [@bp] (ex065.hsq:9) i:5
                     Const [2] (ex065.hsq:9) i:5
               Unary [*] (ex065.hsq:9) i:5
                  Additive [+] (ex065.hsq:9) i:5
                     Variable [@bp] (ex065.hsq:9) i:5
                     Const [2] (ex065.hsq:9) i:5
         Keyword-statement [if] (ex065.hsq:11)
            Relational [<] (ex065.hsq:11)
               Unary [*] (ex065.hsq:11) a:1
                  Additive [+] (ex065.hsq:11) a:1
                     Variable [@bp] (ex065.hsq:11) a:1
                     Const [-2] (ex065.hsq:11) a:1
               Unary [*] (ex065.hsq:11) b1:5
                  Additive [+] (ex065.hsq:11) b1:5
                     Variable [@bp] (ex065.hsq:11) b1:5
                     Const [1] (ex065.hsq:11) b1:5
            Keyword-statement [return] (ex065.hsq:12)
               Additive [+] (ex065.hsq:12)
                  Unary [*] (ex065.hsq:12) ip:5
                     Additive [+] (ex065.hsq:12) ip:5
                        Variable [@bp] (ex065.hsq:12) ip:5
                        Const [4] (ex065.hsq:12) ip:5
                  Postfix [(] (ex065.hsq:12)
                     Label [_divMod] (ex065.hsq:12) _divMod:1
                     Expression-list (ex065.hsq:12)
                        Additive [-] (ex065.hsq:12)
                           Unary [*] (ex065.hsq:12) a:1
                              Additive [+] (ex065.hsq:12) a:1
                                 Variable [@bp] (ex065.hsq:12) a:1
                                 Const [-2] (ex065.hsq:12) a:1
                           Unary [*] (ex065.hsq:12) bp:5
                              Additive [+] (ex065.hsq:12) bp:5
                                 Variable [@bp] (ex065.hsq:12) bp:5
                                 Const [3] (ex065.hsq:12) bp:5
                        Unary [*] (ex065.hsq:12) b:1
                           Additive [+] (ex065.hsq:12) b:1
                              Variable [@bp] (ex065.hsq:12) b:1
                              Const [-3] (ex065.hsq:12) b:1
                        Unary [*] (ex065.hsq:12) j:1
                           Additive [+] (ex065.hsq:12) j:1
                              Variable [@bp] (ex065.hsq:12) j:1
                              Const [-4] (ex065.hsq:12) j:1
         Keyword-statement [goto] (ex065.hsq:14)
            Label [next] (ex065.hsq:14) next:7
   Function:2 [_putintr] (ex065.hsq:17)
      Keyword [int] (ex065.hsq:17)
      Param-type-list (ex065.hsq:17)
         Stackvar:-2 [x] (ex065.hsq:17)
      Block (ex065.hsq:18)
         Keyword-statement [if] (ex065.hsq:19)
            Relational [>] (ex065.hsq:19)
               Unary [*] (ex065.hsq:19) x:17
                  Additive [+] (ex065.hsq:19) x:17
                     Variable [@bp] (ex065.hsq:19) x:17
                     Const [-2] (ex065.hsq:19) x:17
               Const [0] (ex065.hsq:19)
            Block (ex065.hsq:20)
               Declaration (ex065.hsq:21)
                  Keyword [int] (ex065.hsq:21)
                  Declarator [0] (ex065.hsq:21)
                     Stackvar:1 [i] (ex065.hsq:21)
                  Declarator [0] (ex065.hsq:21)
                     Stackvar:2 [j] (ex065.hsq:21)
               Assignment [=] (ex065.hsq:22)
                  Unary [*] (ex065.hsq:22) i:21
                     Additive [+] (ex065.hsq:22) i:21
                        Variable [@bp] (ex065.hsq:22) i:21
                        Const [1] (ex065.hsq:22) i:21
                  Postfix [(] (ex065.hsq:22)
                     Label [_divMod] (ex065.hsq:22) _divMod:1
                     Expression-list (ex065.hsq:22)
                        Unary [*] (ex065.hsq:22) x:17
                           Additive [+] (ex065.hsq:22) x:17
                              Variable [@bp] (ex065.hsq:22) x:17
                              Const [-2] (ex065.hsq:22) x:17
                        Const [10] (ex065.hsq:22)
                        Additive [+] (ex065.hsq:22) j:21
                           Variable [@bp] (ex065.hsq:22) j:21
                           Const [2] (ex065.hsq:22) j:21
               Assignment [=] (ex065.hsq:23)
                  Unary [*] (ex065.hsq:23) i:21
                     Additive [+] (ex065.hsq:23) i:21
                        Variable [@bp] (ex065.hsq:23) i:21
                        Const [1] (ex065.hsq:23) i:21
                  Postfix [(] (ex065.hsq:23)
                     Label [_putintr] (ex065.hsq:23) _putintr:17
                     Expression-list (ex065.hsq:23)
                        Unary [*] (ex065.hsq:23) i:21
                           Additive [+] (ex065.hsq:23) i:21
                              Variable [@bp] (ex065.hsq:23) i:21
                              Const [1] (ex065.hsq:23) i:21
               OperatorIO [__out] (ex065.hsq:24)
                  Additive [+] (ex065.hsq:24)
                     Const [48] (ex065.hsq:24)
                     Unary [*] (ex065.hsq:24) j:21
                        Additive [+] (ex065.hsq:24) j:21
                           Variable [@bp] (ex065.hsq:24) j:21
                           Const [2] (ex065.hsq:24) j:21
               Keyword-statement [return] (ex065.hsq:25)
                  Additive [+] (ex065.hsq:25)
                     Unary [*] (ex065.hsq:25) i:21
                        Additive [+] (ex065.hsq:25) i:21
                           Variable [@bp] (ex065.hsq:25) i:21
                           Const [1] (ex065.hsq:25) i:21
                     Const [1] (ex065.hsq:25)
         Keyword-statement [return] (ex065.hsq:27)
            Const [0] (ex065.hsq:27)
   Function:0 [_putint] (ex065.hsq:30)
      Keyword [int] (ex065.hsq:30)
      Param-type-list (ex065.hsq:30)
         Stackvar:-2 [x] (ex065.hsq:30)
      Block (ex065.hsq:31)
         Keyword-statement [if] (ex065.hsq:32)
            Relational [<] (ex065.hsq:32)
               Unary [*] (ex065.hsq:32) x:30
                  Additive [+] (ex065.hsq:32) x:30
                     Variable [@bp] (ex065.hsq:32) x:30
                     Const [-2] (ex065.hsq:32) x:30
               Const [0] (ex065.hsq:32)
            Block (ex065.hsq:33)
               OperatorIO [__out] (ex065.hsq:34)
                  Const [45] (ex065.hsq:34)
               Keyword-statement [return] (ex065.hsq:35)
                  Additive [+] (ex065.hsq:35)
                     Postfix [(] (ex065.hsq:35)
                        Label [_putintr] (ex065.hsq:35) _putintr:17
                        Expression-list (ex065.hsq:35)
                           Unary [-] (ex065.hsq:35)
                              Unary [*] (ex065.hsq:35) x:30
                                 Additive [+] (ex065.hsq:35) x:30
                                    Variable [@bp] (ex065.hsq:35) x:30
                                    Const [-2] (ex065.hsq:35) x:30
                     Const [1] (ex065.hsq:35)
         Keyword-statement [if] (ex065.hsq:37)
            Relational [>] (ex065.hsq:37)
               Unary [*] (ex065.hsq:37) x:30
                  Additive [+] (ex065.hsq:37) x:30
                     Variable [@bp] (ex065.hsq:37) x:30
                     Const [-2] (ex065.hsq:37) x:30
               Const [0] (ex065.hsq:37)
            Keyword-statement [return] (ex065.hsq:38)
               Postfix [(] (ex065.hsq:38)
                  Label [_putintr] (ex065.hsq:38) _putintr:17
                  Expression-list (ex065.hsq:38)
                     Unary [*] (ex065.hsq:38) x:30
                        Additive [+] (ex065.hsq:38) x:30
                           Variable [@bp] (ex065.hsq:38) x:30
                           Const [-2] (ex065.hsq:38) x:30
         OperatorIO [__out] (ex065.hsq:40)
            Const [48] (ex065.hsq:40)
         Keyword-statement [return] (ex065.hsq:41)
            Const [1] (ex065.hsq:41)
   Function:1 [main] (ex065.hsq:44)
      Keyword [int] (ex065.hsq:44)
      Param-type-list (ex065.hsq:44)
      Block (ex065.hsq:45)
         Postfix [(] (ex065.hsq:46)
            Label [_putint] (ex065.hsq:46) _putint:30
            Expression-list (ex065.hsq:46)
               Const [123] (ex065.hsq:46)
         Postfix [(] (ex065.hsq:47)
            Label [_putint] (ex065.hsq:47) _putint:30
            Expression-list (ex065.hsq:47)
               Const [0] (ex065.hsq:47)
         Declaration (ex065.hsq:48)
            Keyword [int] (ex065.hsq:48)
            Declarator [=] (ex065.hsq:48)
               Stackvar:1 [k] (ex065.hsq:48)
               Postfix [(] (ex065.hsq:48)
                  Label [_putint] (ex065.hsq:48) _putint:30
                  Expression-list (ex065.hsq:48)
                     Const [-12345678] (ex065.hsq:48)
         OperatorIO [__out] (ex065.hsq:49)
            Const [' '] (ex065.hsq:49)
         OperatorIO [__out] (ex065.hsq:50)
            Additive [+] (ex065.hsq:50)
               Unary [*] (ex065.hsq:50) k:48
                  Additive [+] (ex065.hsq:50) k:48
                     Variable [@bp] (ex065.hsq:50) k:48
                     Const [1] (ex065.hsq:50) k:48
               Const ['0'] (ex065.hsq:50)