--- /dev/null
+BEGIN {printf("struct {int n; char *name;} tok_tab[] = {\n");}
+/#define/ {printf(" {%d, \"%s\"},\n", $3, $2);}
+/# define/ {printf(" {%d, \"%s\"},\n", $4, $3);}
+END {printf("};\n#define N_TOK (sizeof tok_tab / sizeof tok_tab[0])\nint n_tok = N_TOK;\n");}