/* yuriko8.c - Don Yang (uguu.org) 02/12/06 */ #include #define x else if char *SA[] = { "\"1 \'1 /?3 0", "\\2 ,0 1", "1", "*!4 /!6 0", "*!5 !4", "*!5 /!0 !4", "\n0 !6" }, *NA[] = { "\"1 \'1 (?3 0", "\\2 ,0 1", "1", "*!+4 (?3 0", "(!5 *!6 !4", "*!+4 (!5 !4", "*!6 )=-!0 )-!4 !4" }, *RA[] = { "\"1 \'1 #!7 0", "\\2 ,3 1", "1", ",4 \"1 \'1 #!7 0", ",5 4", ",6 4", ",0 4", "\n0 !7" }, *R4[] = { "\"1 ;!3 0", "\\2 ,0 1", "1", "\n0 !3" }, **A, *Y, *U, *MI = __FILE__, _[1024]; int y, u, r, i, k, o, NO, Z, O, M, I; FILE *z; void mi() { I = fread(_, 1, 1024, z); } void e() { for(; *U < 48 || *U > 57; U++); } void no() { y = u = r = i = k = o = 0; } void p(int d) { putchar(d); } void q(char *d) { puts(d); } void n() { Z = 0; for(U = A[y]; *U < 48 || *U > 57; U++) if( *U - 32 ) { if( *U == 44 ) { if( *Y != NO ) e(); } x( *U == 61 ) { if( u - 1 ) e(); } x( *U == 43 ) { u++; } x( *U == 45 ) { u--; } x( *U == 33 ) { Z++; } x( *U == 63 ) { Z |= 2; if( o ) Z |= 4; x(1) o = *Y; } x(1) { if( *Y - *U ) e(); x( *U == 39 || *U == 34 ) NO = *U; } } y = *U - 48; } int t() { no(); Y = _; for(Z = 0; i < I && !(Z & 1) && k < 5; i++) { if( *Y == 10 ) ++k; n(); Y++; } return !(Z & 1); } void b() { mi(); A = SA; if( t() ) { A = NA; if( t() ) { A = RA; if( t() ) { A = R4; if( t() ) A = SA; } } } for(no(); I; mi()) { Y = _; for(i = 0; i < I; i++, Y++) { if( M ) { if( !r ) r = printf("%7d ", ++k); if( *Y == 10 ) r = 0; } n(); if( Z & 4 ) p((Z & 1) ? o : 32); if( !(Z & 2) ) { if( (Z & 1) - M ) { if( o ) { p(32); o = 0; } p(*Y > 8 && *Y < 14 ? *Y : 32); } x(1) { if( o ) { p(o); o = 0; } p(*Y); } } } } } int main(int m, char **a) { M = *MI & 1; if( m > 1 ) { for(O = 1; O < m; O++) { if( m > 2 && M ) q(a[O]); if( z = fopen(a[O], "rb") ) { b(); fclose(z); } x(1) q("can not open file"); } } x(1) { z = stdin; b(); } return 0; }