/* dfa2.c - Don Yang (uguu.org) 06/16/01 */ #include #include char *c, *d[] = { "/1 '|4 \"|6 .|0", "*{{2 /}1 .}|0", "*{3 .{2", "*{3 /{0 .{2", "'|0 \\|5 .|4", ".|4", "\"|0 \\|7 .|6", ".|6"}; int s = 0, i; main() { for(; (i = getchar()) > 0; s = *c - 48) { for(c = d[s]; *c; c++) if( *c - 32 ) { if( *c == 46 || (int)(*c) == i ) break; for(; !isdigit(*c); c++); } for(; !isdigit(*c); c++) if( *c > 122 ) putchar( *c == 124 ? i : *c < 124 ? i < 32 ? i : 32 : 47); } }