| static char id_space[2] [32 +1]; |
| typedef short COUNT; |
| |
| typedef char TEXT; |
| |
| union T_VALS |
| { |
| TEXT *id __attribute__ ((aligned (2), packed)) ; |
| }; |
| typedef union T_VALS VALS; |
| |
| struct T_VAL |
| { |
| COUNT pos __attribute__ ((aligned (2), packed)) ; |
| VALS vals __attribute__ ((aligned (2), packed)) ; |
| }; |
| typedef struct T_VAL VAL; |
| |
| VAL curval = {0}; |
| |
| static short idc = 0; |
| static int cur_line; |
| static int char_pos; |
| |
| typedef unsigned short WORD; |
| |
| WORD |
| get_id (char c) |
| { |
| curval.vals.id[0] = c; |
| } |
| |
| WORD |
| get_tok () |
| { |
| char c = 'c'; |
| curval.vals.id = id_space[idc]; |
| curval.pos = (cur_line << 10) | char_pos; |
| return get_id (c); |
| } |
| |
| main () |
| { |
| get_tok (); |
| exit (0); |
| } |