aboutsummaryrefslogtreecommitdiff
path: root/tool/addopcodes.tcl
diff options
context:
space:
mode:
Diffstat (limited to 'tool/addopcodes.tcl')
-rw-r--r--tool/addopcodes.tcl45
1 files changed, 45 insertions, 0 deletions
diff --git a/tool/addopcodes.tcl b/tool/addopcodes.tcl
new file mode 100644
index 000000000..46675cb25
--- /dev/null
+++ b/tool/addopcodes.tcl
@@ -0,0 +1,45 @@
+#!/usr/bin/tclsh
+#
+# 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.
+#
+#
+set in [open [lindex $argv 0] rb]
+set max 0
+while {![eof $in]} {
+ set line [gets $in]
+ if {[regexp {^#define TK_} $line]} {
+ puts $line
+ set x [lindex $line 2]
+ if {$x>$max} {set max $x}
+ }
+}
+close $in
+
+# The following are the extra token codes to be added
+#
+set extras {
+ TO_TEXT
+ TO_BLOB
+ TO_NUMERIC
+ TO_INT
+ TO_REAL
+ ISNOT
+ END_OF_FILE
+ ILLEGAL
+ SPACE
+ UNCLOSED_STRING
+ FUNCTION
+ COLUMN
+ AGG_FUNCTION
+ AGG_COLUMN
+ UMINUS
+ UPLUS
+ REGISTER
+}
+foreach x $extras {
+ incr max
+ puts [format "#define TK_%-29s %4d" $x $max]
+}