8 int main(int argc
, char *argv
[])
13 enum { Z
= 0, Z1
= 2, X
= 4, X0
= 6 };
16 x
= mp_readstring(MP_NEW
, argv
[1], 0, 0);
19 for (i
= 0, mp_scan(&sc
, x
); mp_step(&sc
); i
++) {
20 switch (st
| mp_bit(&sc
)) {
21 case Z
| 1: st
= Z1
; break;
22 case Z1
| 0: st
= Z
; printf("+ %lu\n", i
- 1); break;
23 case Z1
| 1: st
= X
; printf("- %lu\n", i
- 1); break;
24 case X
| 0: st
= X0
; break;
25 case X0
| 1: st
= X
; printf("- %lu\n", i
- 1); break;
26 case X0
| 0: st
= Z
; printf("+ %lu\n", i
- 1); break;
29 if (st
>= X
) printf("+ %lu\n", i
- 1);