Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef void *(
- *(
- *(
- *(*p) (void *, void *)
- ) (void *, void *)
- ) (void *, void *)
- ) (void *, void *);
- typedef p some_function;
- typedef struct pair {
- struct pair *head;
- struct pair *tail;
- } pair;
- void *
- return_a(void *a, void *b) {
- return a;
- }
- void *
- return_b(void *a, void *b) {
- return b;
- }
- typedef unsigned char u_char;
- pair *w,
- a = {(pair *) return_a, (pair *) return_a},
- b = {(pair *) return_a, (pair *) return_b},
- c = {(pair *) return_b, (pair *) return_a},
- d = {(pair *) return_b, (pair *) return_b};
- pair table[] = {
- &b, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d,
- &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d,
- &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d,
- &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d,
- &d, &d, &d, &d, &c, &d, &d, &d, &d, &d, &d, &d, &d, &d, &c, &b,
- &b, &d, &a, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d,
- &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d,
- &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d,
- &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d,
- &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d,
- &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d,
- &d, &d, &d, &d, &d, &d, &b, &b, &d, &d, &a, &b, &d, &d, &d, &d,
- &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d,
- &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d,
- &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d, &d,
- &d, &d, &d, &d, &d, &d, &b, &c, &d, &d, &a, &c, &d, &d, &d, &d,
- &c, &b, &b, &b, &d, &d, &a, &a
- };
- // Is table an ascii table?
- pair table2[] = {
- /* '\x00' */ &b, /* '\x01' */ &d, /* '\x02' */ &d, /* '\x03' */ &d, /* '\x04' */ &d, /* '\x05' */ &d, /* '\x06' */ &d, /* '\x07' */ &d, /* '\x08' */ &d, /* '\t' */ &d, /* '\n' */ &d, /* '\x0b' */ &d, /* '\x0c' */ &d, /* '\r' */ &d, /* '\x0e' */ &d, /* '\x0f' */ &d,
- /* '\x10' */ &d, /* '\x11' */ &d, /* '\x12' */ &d, /* '\x13' */ &d, /* '\x14' */ &d, /* '\x15' */ &d, /* '\x16' */ &d, /* '\x17' */ &d, /* '\x18' */ &d, /* '\x19' */ &d, /* '\x1a' */ &d, /* '\x1b' */ &d, /* '\x1c' */ &d, /* '\x1d' */ &d, /* '\x1e' */ &d, /* '\x1f' */ &d,
- /* ' ' */ &d, /* '!' */ &d, /* '"' */ &d, /* '#' */ &d, /* '$' */ &d, /* '%' */ &d, /* '&' */ &d, /* "'" */ &d, /* '(' */ &d, /* ')' */ &d, /* '*' */ &d, /* '+' */ &d, /* ',' */ &d, /* '-' */ &d, /* '.' */ &d, /* '/' */ &d,
- /* '0' */ &d, /* '1' */ &d, /* '2' */ &d, /* '3' */ &d, /* '4' */ &d, /* '5' */ &d, /* '6' */ &d, /* '7' */ &d, /* '8' */ &d, /* '9' */ &d, /* ':' */ &d, /* ';' */ &d, /* '<' */ &d, /* '=' */ &d, /* '>' */ &d, /* '?' */ &d,
- /* '@' */ &d, /* 'A' */ &d, /* 'B' */ &d, /* 'C' */ &d, /* 'D' */ &c, /* 'E' */ &d, /* 'F' */ &d, /* 'G' */ &d, /* 'H' */ &d, /* 'I' */ &d, /* 'J' */ &d, /* 'K' */ &d, /* 'L' */ &d, /* 'M' */ &d, /* 'N' */ &c, /* 'O' */ &b,
- /* 'P' */ &b, /* 'Q' */ &d, /* 'R' */ &a, /* 'S' */ &d, /* 'T' */ &d, /* 'U' */ &d, /* 'V' */ &d, /* 'W' */ &d, /* 'X' */ &d, /* 'Y' */ &d, /* 'Z' */ &d, /* '[' */ &d, /* '\\' */ &d, /* ']' */ &d, /* '^' */ &d, /* '_' */ &d,
- /* '`' */ &d, /* 'a' */ &d, /* 'b' */ &d, /* 'c' */ &d, /* 'd' */ &d, /* 'e' */ &d, /* 'f' */ &d, /* 'g' */ &d, /* 'h' */ &d, /* 'i' */ &d, /* 'j' */ &d, /* 'k' */ &d, /* 'l' */ &d, /* 'm' */ &d, /* 'n' */ &d, /* 'o' */ &d,
- /* 'p' */ &d, /* 'q' */ &d, /* 'r' */ &d, /* 's' */ &d, /* 't' */ &d, /* 'u' */ &d, /* 'v' */ &d, /* 'w' */ &d, /* 'x' */ &d, /* 'y' */ &d, /* 'z' */ &d, /* '{' */ &d, /* '|' */ &d, /* '}' */ &d, /* '~' */ &d, /* '\x7f' */ &d,
- /* '\x80' */ &d, /* '\x81' */ &d, /* '\x82' */ &d, /* '\x83' */ &d, /* '\x84' */ &d, /* '\x85' */ &d, /* '\x86' */ &d, /* '\x87' */ &d, /* '\x88' */ &d, /* '\x89' */ &d, /* '\x8a' */ &d, /* '\x8b' */ &d, /* '\x8c' */ &d, /* '\x8d' */ &d, /* '\x8e' */ &d, /* '\x8f' */ &d,
- /* '\x90' */ &d, /* '\x91' */ &d, /* '\x92' */ &d, /* '\x93' */ &d, /* '\x94' */ &d, /* '\x95' */ &d, /* '\x96' */ &d, /* '\x97' */ &d, /* '\x98' */ &d, /* '\x99' */ &d, /* '\x9a' */ &d, /* '\x9b' */ &d, /* '\x9c' */ &d, /* '\x9d' */ &d, /* '\x9e' */ &d, /* '\x9f' */ &d,
- /* '\xa0' */ &d, /* '\xa1' */ &d, /* '\xa2' */ &d, /* '\xa3' */ &d, /* '\xa4' */ &d, /* '\xa5' */ &d, /* '\xa6' */ &d, /* '\xa7' */ &d, /* '\xa8' */ &d, /* '\xa9' */ &d, /* '\xaa' */ &d, /* '\xab' */ &d, /* '\xac' */ &d, /* '\xad' */ &d, /* '\xae' */ &d, /* '\xaf' */ &d,
- /* '\xb0' */ &d, /* '\xb1' */ &d, /* '\xb2' */ &d, /* '\xb3' */ &d, /* '\xb4' */ &d, /* '\xb5' */ &d, /* '\xb6' */ &b, /* '\xb7' */ &b, /* '\xb8' */ &d, /* '\xb9' */ &d, /* '\xba' */ &a, /* '\xbb' */ &b, /* '\xbc' */ &d, /* '\xbd' */ &d, /* '\xbe' */ &d, /* '\xbf' */ &d,
- /* '\xc0' */ &d, /* '\xc1' */ &d, /* '\xc2' */ &d, /* '\xc3' */ &d, /* '\xc4' */ &d, /* '\xc5' */ &d, /* '\xc6' */ &d, /* '\xc7' */ &d, /* '\xc8' */ &d, /* '\xc9' */ &d, /* '\xca' */ &d, /* '\xcb' */ &d, /* '\xcc' */ &d, /* '\xcd' */ &d, /* '\xce' */ &d, /* '\xcf' */ &d,
- /* '\xd0' */ &d, /* '\xd1' */ &d, /* '\xd2' */ &d, /* '\xd3' */ &d, /* '\xd4' */ &d, /* '\xd5' */ &d, /* '\xd6' */ &d, /* '\xd7' */ &d, /* '\xd8' */ &d, /* '\xd9' */ &d, /* '\xda' */ &d, /* '\xdb' */ &d, /* '\xdc' */ &d, /* '\xdd' */ &d, /* '\xde' */ &d, /* '\xdf' */ &d,
- /* '\xe0' */ &d, /* '\xe1' */ &d, /* '\xe2' */ &d, /* '\xe3' */ &d, /* '\xe4' */ &d, /* '\xe5' */ &d, /* '\xe6' */ &d, /* '\xe7' */ &d, /* '\xe8' */ &d, /* '\xe9' */ &d, /* '\xea' */ &d, /* '\xeb' */ &d, /* '\xec' */ &d, /* '\xed' */ &d, /* '\xee' */ &d, /* '\xef' */ &d,
- /* '\xf0' */ &d, /* '\xf1' */ &d, /* '\xf2' */ &d, /* '\xf3' */ &d, /* '\xf4' */ &d, /* '\xf5' */ &d, /* '\xf6' */ &b, /* '\xf7' */ &c, /* '\xf8' */ &d, /* '\xf9' */ &d, /* '\xfa' */ &a, /* '\xfb' */ &c, /* '\xfc' */ &d, /* '\xfd' */ &d, /* '\xfe' */ &d, /* '\xff' */ &d,
- /* '\xff' */ &c, /* '\xff' */ &b, /* '\xff' */ &b, /* '\xff' */ &b, /* '\xff' */ &d, /* '\xff' */ &d, /* '\xff' */ &a, /* '\xff' */ &a,
- };
- pair *
- cons(pair * a, pair * b) {
- pair *p = malloc(sizeof(pair));
- p->head = a;
- p->tail = b;
- return p;
- }
- u_char table_size = sizeof(table);
- some_function f(some_function a, some_function b) {
- u_char k; // Current char that we're looking at from the stream
- pair d;
- some_function v, r, q, i, C, c, u, g;
- //some_function m = (some_function) ((*((*((*w).head)).head)).head);
- some_function m = (some_function) w->head->head->head;
- size_t offset = fread(&k, 1, 1, stdin);
- C = (some_function)table[offset]->head->head;
- v = C(return_b, return_a);
- k = (u_char) C(table_size, k);
- d = table[k];
- /*c = (
- u = a(b, return_b),
- i = ((some_function) ((*(pair) ((*((*w).a)).a)).a))(return_b, ((*((*&d).a)).a)),
- a(
- ((*((*(pair) &d).a)).a),
- ((some_function) ((*((*(pair) &d).a)).a))(return_b, return_a)
- )(
- b(((*(pair) ((*(pair) &d).a)).a), ((some_function) ((*(pair) ((*(pair) &d).a)).a))(return_b, return_a)),
- return_b
- )
- );*/
- u = a(b, return_b);
- i = ((some_function) ((*(pair) (w->head->head)).tail))(return_b, d->head->head);
- c = a(
- ((*((*(pair) &d).tail)).head),
- ((some_function) ((*((*(pair) &d).tail)).head))(return_b, return_a)
- )(
- b(((*(pair) ((*(pair) &d).tail)).tail), ((some_function) ((*(pair) ((*(pair) &d).tail)).tail))(return_b, return_a)),
- return_b
- );
- {
- some_function a = (some_function) ((*(pair) ((*&d).head)).tail);
- {
- some_function b = C(return_b, i(u(return_b, return_a), return_b));
- {
- some_function u = C(return_b, ((some_function) ((*((*&d).head)).head))(return_b, return_a));
- ((*((*((*w).head)).head)).head) = (pair *) i(return_a, ((*((*((*w).head)).head)).head));
- r = b(m(c, return_b),
- C(m(return_b, ((some_function) ((*(pair) ((*((*w).head)).head)).tail))(return_b, return_a)), (f)));
- v = b(return_b, v);
- i = b(a(return_b, return_a), return_b);
- g = (b)(a(m(c(return_b, return_a), return_a), return_b), return_b);
- q = u(
- ((*(pair) ((*&d).head)).tail), return_b)(
- ((some_function) ((*(pair) ((*((*w).head)).head)).tail))(
- ((some_function) ((*((*(pair) &d).tail)).head))(((*((*(pair) ((*w).head)).tail)).head),
- ((some_function) ((*((*(pair) ((*w).head)).tail)).head))(return_b, return_a))(return_b, return_a),
- return_b)(return_b, return_a),
- return_b
- );
- ((*((*(pair) ((*w).head)).tail)).head) = (pair *) u(((*(pair) ((*&d).head)).tail), return_b)(
- ((some_function) ((*(pair) ((*((*w).head)).head)).tail))(return_b, return_a), return_b)(
- ((*((*(pair) &d).tail)).head), ((*((*(pair) ((*w).head)).tail)).head));
- }
- }
- ((*(pair) ((*((*w).head)).head)).tail) = (pair *) q(
- a = ((some_function) ((*(pair) ((*((*w).head)).head)).tail))(return_b, return_a), ((*(pair) ((*((*w).head)).head)).tail));
- fwrite((k, &table_size), 1,
- u(return_b, g)(1, 0), stdout);
- table_size = k;
- fwrite((k, &k), 1, u(return_a, g)(1, 0), stdout);
- ((*((*((*(pair) w).tail)).head)).head) = (pair *) u(((p) ((*((*((*(pair) w).tail)).head)).head))(return_b, return_a),
- ((*((*((*(pair) w).tail)).head)).head));
- ((*((*(pair) ((*w).head)).tail)).head) = (pair *) q(a(((*((*(pair) &d).tail)).head), ((*((*(pair) ((*w).head)).tail)).head)),
- ((*((*(pair) ((*w).head)).tail)).head));
- }
- ((*(pair) ((*((*(pair) w).tail)).head)).tail) = (pair *) ((some_function) ((*((*((*(pair) w).tail)).head)).head))(
- ((*(pair) ((*((*(pair) w).tail)).head)).tail),
- u(((some_function) ((*(pair) ((*((*(pair) w).tail)).head)).tail))(return_b, return_a),
- ((*(pair) ((*((*(pair) w).tail)).head)).tail)));
- g = u(
- (q = u(
- C(return_a,
- ((some_function) ((*((*((*(pair) w).tail)).head)).head))(((*(pair) ((*((*(pair) w).tail)).head)).tail), return_b)),
- return_b))(return_b, return_a), g
- );
- v = g(return_a, i(u(return_b, i(f, return_b))(((*((*(pair) &d).tail)).head), ((*(pair) ((*(pair) &d).tail)).tail)), v));
- r = q(return_b, g(f, i(v(f, (((*((*((*w).head)).head)).head) = (pair *) m, return_b)), r)));
- return q(return_b, v)(r(g(return_a, a), g(return_a, b)), r);
- }
- int main() {
- // W = control flow/logic data?
- w = cons(
- cons(
- cons((pair *) return_b, (pair *) return_b), // w is set to this
- cons((pair *) return_b, (pair *) return_b)
- ),
- cons(
- cons((pair *) return_b, (pair *) return_b),
- cons((pair *) return_b, (pair *) return_b)
- )
- );
- return printf((u_char *) f(return_b, return_b)("OK\n", "\n ^ Error\n"));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement