| #!/usr/bin/awk | 
 | # | 
 | # This script appends additional token codes to the end of the | 
 | # parse.h file that lemon generates.  These extra token codes are | 
 | # not used by the parser.  But they are used by the tokenizer and/or | 
 | # the code generator. | 
 | # | 
 | # | 
 | BEGIN { | 
 |   max = 0 | 
 | } | 
 | /^#define TK_/ { | 
 |   print $0 | 
 |   if( max<$3 ) max = $3 | 
 | } | 
 | END { | 
 |   printf "#define TK_%-29s %4d\n", "TO_TEXT",         ++max | 
 |   printf "#define TK_%-29s %4d\n", "TO_BLOB",         ++max | 
 |   printf "#define TK_%-29s %4d\n", "TO_NUMERIC",      ++max | 
 |   printf "#define TK_%-29s %4d\n", "TO_INT",          ++max | 
 |   printf "#define TK_%-29s %4d\n", "TO_REAL",         ++max | 
 |   printf "#define TK_%-29s %4d\n", "ISNOT",           ++max | 
 |   printf "#define TK_%-29s %4d\n", "END_OF_FILE",     ++max | 
 |   printf "#define TK_%-29s %4d\n", "ILLEGAL",         ++max | 
 |   printf "#define TK_%-29s %4d\n", "SPACE",           ++max | 
 |   printf "#define TK_%-29s %4d\n", "UNCLOSED_STRING", ++max | 
 |   printf "#define TK_%-29s %4d\n", "FUNCTION",        ++max | 
 |   printf "#define TK_%-29s %4d\n", "COLUMN",          ++max | 
 |   printf "#define TK_%-29s %4d\n", "AGG_FUNCTION",    ++max | 
 |   printf "#define TK_%-29s %4d\n", "AGG_COLUMN",      ++max | 
 |   printf "#define TK_%-29s %4d\n", "CONST_FUNC",      ++max | 
 |   printf "#define TK_%-29s %4d\n", "UMINUS",          ++max | 
 |   printf "#define TK_%-29s %4d\n", "UPLUS",           ++max | 
 | } |