summaryrefslogtreecommitdiff
path: root/addopcodes.awk
diff options
context:
space:
mode:
authorHans-Christoph Steiner <hans@eds.org>2012-03-30 20:42:12 -0400
committerHans-Christoph Steiner <hans@eds.org>2012-03-30 20:42:12 -0400
commit7bb481fda9ecb134804b49c2ce77ca28f7eea583 (patch)
tree31b520b9914d3e2453968abe375f2c102772c3dc /addopcodes.awk
Imported Upstream version 2.0.3
Diffstat (limited to 'addopcodes.awk')
-rw-r--r--addopcodes.awk34
1 files changed, 34 insertions, 0 deletions
diff --git a/addopcodes.awk b/addopcodes.awk
new file mode 100644
index 0000000..c90e1dd
--- /dev/null
+++ b/addopcodes.awk
@@ -0,0 +1,34 @@
+#!/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
+}