1 static char id_space[2] [32 +1]; 2 typedef short COUNT; 3 4 typedef char TEXT; 5 6 union T_VALS 7 { 8 TEXT *id __attribute__ ((aligned (2), packed)) ; 9 }; 10 typedef union T_VALS VALS; 11 12 struct T_VAL 13 { 14 COUNT pos __attribute__ ((aligned (2), packed)) ; 15 VALS vals __attribute__ ((aligned (2), packed)) ; 16 }; 17 typedef struct T_VAL VAL; 18 19 VAL curval = {0}; 20 21 static short idc = 0; 22 static int cur_line; 23 static int char_pos; 24 25 typedef unsigned short WORD; 26 27 WORD 28 get_id (char c) 29 { 30 curval.vals.id[0] = c; 31 } 32 33 WORD 34 get_tok () 35 { 36 char c = 'c'; 37 curval.vals.id = id_space[idc]; 38 curval.pos = (cur_line << 10) | char_pos; 39 return get_id (c); 40 } 41 42 main () 43 { 44 get_tok (); 45 exit (0); 46 } 47