/* cs-opt1-3.c - Don Yang (uguu.org) 05/05/04 */ #include int i, j, k, n; char *input = "\n /\\'\"*\r\t", *dfa = "OOO(O?G 99999999KKK(K;C AAAAAAAA 0\320((((((( P 09999\tI" "99AAAA\31AIA\320PI\20I9AI\320PM\0M=EM", *state; o(int mask, int c) { if( k & mask ) putchar(c); } main() { n = 0; for(state = dfa + 72; (i = getchar()) > -1; state = dfa + k) { for(j = 0; input[j] && i - input[j]; j++); n |= (k = state[j&7]) & 128; o(4, n ? 10 : 32); o(2, 47); o(1, i); n *= !!((k &= 120) - 72); } o(~0, 10); }