i to p afterward

Ioは最新版になったのに,件のコードは通らない。
caddyでチェックしてみると…*1

$ caddy -n i-to-p.io
Loading testcases of 'infix to postfix'
Test #1... OK
Test #2... FAILED

Output:
kr/vgop*d*q/lzn*+hy/w*-j-x+ia*+c*s+*m//b/*u/e-f-/\n
ug*i*d*b/h*zel*c-*w+q*av/-/f*\n
an/e/dyb/p*ks/w/mv/j/i/*t/**qg/-*c/r*\n
alfb*r*h*n*q/so/vc*t*--*x*d+i/j//\n
imyq*o*g/w/r/k-/un*+bx/fla/e-/j**+/t*d*ch*-\n
ktx/ej/a*d/r*m*i-n*f*qhvc*lo+*-*g*-/us*p*+/\n
ftvj/cy*glmzi*qd*x***o/-/n-p-b-/e/**k+uw*+ha*-/\n
in*p*v/j/x*ub*qrht/a/lcef/++k-/z//-*yo/+ds/-/g-m-\n
dz/f/rp*le-mi/w*h*kx/c+g/*o+-n/*/j*b/\n
bp/tv/a*ye*j/ms/z-rhn-+-/*u/i*+d*\n
ad/v*l*ey/x/qz/s-*p/j//\n
ba/vwg*i/q*j/l-c*dym/f*/o+p+s*-//x/r-

Expect:
kr/vgop*d*q/lzn*+hy/w*-j-x+ia*+c*s+*m//b/*u/e-f-/\n
ug*i*d*b/h*zel*c-*w+q*av/-/f*\n
an/e/dyb/p*ks/w/mvj/i//t*/**qg/-*c/r*\n
alfb*r*h*n*q/so/vc*t*--*x*d+i/j//\n
imyq*o*g/w/r/k-/un*+bxf/lae/-j/**+/t*d*ch*-\n
ktx/ej/a*d/r*m*i-n*f*qhvc*lo+*-*g*-/us*p*+/\n
ftvj/cy*glmzi*qd*x***o/-/n-p-b-/e/**k+uw*+ha*-/\n
in*p*v/j/x*ub*qrht/a/lcef/++k-/z//-*yo/+ds/-/g-m-\n
dzf/r/pl*emiw/h*k*xc/g+/*-o+n-/*j/*b/\n
bp/tva/y*ej*m/sz/r-hn-+-/u*i/*d+*\n
ad/v*l*ey/x/qz/s-*p/j//\n
ba/vwg*i/q*j/lc-*dym/f*/o+p+s*-//x/r-

Diff:
--- expect      2008-02-18 00:29:56.322200000 +0900
+++ output      2008-02-18 00:29:56.321200000 +0900
@@ -1,12 +1,12 @@
 kr/vgop*d*q/lzn*+hy/w*-j-x+ia*+c*s+*m//b/*u/e-f-/\n
 ug*i*d*b/h*zel*c-*w+q*av/-/f*\n
-an/e/dyb/p*ks/w/mvj/i//t*/**qg/-*c/r*\n
+an/e/dyb/p*ks/w/mv/j/i/*t/**qg/-*c/r*\n
 alfb*r*h*n*q/so/vc*t*--*x*d+i/j//\n
-imyq*o*g/w/r/k-/un*+bxf/lae/-j/**+/t*d*ch*-\n
+imyq*o*g/w/r/k-/un*+bx/fla/e-/j**+/t*d*ch*-\n
 ktx/ej/a*d/r*m*i-n*f*qhvc*lo+*-*g*-/us*p*+/\n
 ftvj/cy*glmzi*qd*x***o/-/n-p-b-/e/**k+uw*+ha*-/\n
 in*p*v/j/x*ub*qrht/a/lcef/++k-/z//-*yo/+ds/-/g-m-\n
-dzf/r/pl*emiw/h*k*xc/g+/*-o+n-/*j/*b/\n
-bp/tva/y*ej*m/sz/r-hn-+-/u*i/*d+*\n
+dz/f/rp*le-mi/w*h*kx/c+g/*o+-n/*/j*b/\n
+bp/tv/a*ye*j/ms/z-rhn-+-/*u/i*+d*\n
 ad/v*l*ey/x/qz/s-*p/j//\n
-ba/vwg*i/q*j/lc-*dym/f*/o+p+s*-//x/r-
+ba/vwg*i/q*j/l-c*dym/f*/o+p+s*-//x/r-

どうも余分な括弧があるケースで失敗するらしい。

$ io
Io 20080107
Io> 1+2*3
==> 7
Io> (1+2*3)
==> 7
Io> ((1+2*3))

  Exception: argument 0 to method '+' must be a Number, not a 'nil'
  ---------
  message '+' in 'Command Line' on line 1

むむ?

Io> message( 1+2*3 )
==> 1 +(2 *(3))
Io> message( (1+2*3) )
==> 1 + 2 * 3
Io> message( ((1+2*3)) )
==> (1 + 2 * 3)
Io> message( write(1+2*3) )
==> write(1 +(2 *(3)))
Io> message( write((1+2*3)) )
==> write(1 + 2 * 3)
Io> message( write(((1+2*3))) )
==> write((1 + 2 * 3))

…新手のバグか。(−−;)

*1:最初からやっておけという話である