*   формат обращения -  <Adds (e.s) (e.1) e.2 > 
*   e.s - основание системы счисления,
*   e.1 , e.2 - слагаемые - последовательности макроцифр

*                                   для отладочного пуска
$ENTRY Go {
            = <Prout <Adds  10  (  1   9   9   9  )
                                     1   9  9   9
               > > ;
          }
Addss { e1 = <UBR <Adds e1 >> ;}
UBR   { e1 s2 s3 = s2 s3 ; }


Adds   { e1 = <Adds1  0  e1 > ; }
Adds1  {
       s.Per ss (e1 s2) e3 s4 =
              <Adds2 ( <N s.Per ss s2 s4 > )
                     ss (e1) e3 >;
        0    ss (       )         = ;
       s.Per ss (       ) e3      = <Adds1  0  ss ( s.Per) e3>;
       s.Per ss ( e1    )         = <Adds1  0  ss (e1) s.Per >;
       }

N   { s.Per ss s2 s4, <Add (s2) s4   >: s5,
                              <Add (s5) s.Per>: s6,
                              <Divmod (s6) ss>:e7
                              = e7 ;
    }

Adds2 { ( (sQ) sR ) e1 = <Adds1 sQ e1 > sR ; }