15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#!/usr/bin/awk 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# This script appends additional token codes to the end of the 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# parse.h file that lemon generates. These extra token codes are 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# not used by the parser. But they are used by the tokenizer and/or 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# the code generator. 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BEGIN { 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) max = 0 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/^#define TK_/ { 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) print $0 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if( max<$3 ) max = $3 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)END { 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf "#define TK_%-29s %4d\n", "TO_TEXT", ++max 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf "#define TK_%-29s %4d\n", "TO_BLOB", ++max 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf "#define TK_%-29s %4d\n", "TO_NUMERIC", ++max 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf "#define TK_%-29s %4d\n", "TO_INT", ++max 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf "#define TK_%-29s %4d\n", "TO_REAL", ++max 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf "#define TK_%-29s %4d\n", "ISNOT", ++max 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf "#define TK_%-29s %4d\n", "END_OF_FILE", ++max 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf "#define TK_%-29s %4d\n", "ILLEGAL", ++max 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf "#define TK_%-29s %4d\n", "SPACE", ++max 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf "#define TK_%-29s %4d\n", "UNCLOSED_STRING", ++max 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf "#define TK_%-29s %4d\n", "FUNCTION", ++max 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf "#define TK_%-29s %4d\n", "COLUMN", ++max 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf "#define TK_%-29s %4d\n", "AGG_FUNCTION", ++max 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf "#define TK_%-29s %4d\n", "AGG_COLUMN", ++max 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf "#define TK_%-29s %4d\n", "CONST_FUNC", ++max 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf "#define TK_%-29s %4d\n", "UMINUS", ++max 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) printf "#define TK_%-29s %4d\n", "UPLUS", ++max 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 35