Index: third_party/sqlite/sqlite-src-3170000/tool/addopcodes.tcl |
diff --git a/third_party/sqlite/sqlite-src-3170000/tool/addopcodes.tcl b/third_party/sqlite/sqlite-src-3170000/tool/addopcodes.tcl |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a6c58f1a251c83cff9bc343dd1fce681cb17fce5 |
--- /dev/null |
+++ b/third_party/sqlite/sqlite-src-3170000/tool/addopcodes.tcl |
@@ -0,0 +1,66 @@ |
+#!/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. SPACE and |
+# ILLEGAL *must* be the last two token codes and they must be in that order. |
+# |
+set extras { |
+ TO_TEXT |
+ TO_BLOB |
+ TO_NUMERIC |
+ TO_INT |
+ TO_REAL |
+ ISNOT |
+ END_OF_FILE |
+ UNCLOSED_STRING |
+ FUNCTION |
+ COLUMN |
+ AGG_FUNCTION |
+ AGG_COLUMN |
+ UMINUS |
+ UPLUS |
+ REGISTER |
+ VECTOR |
+ SELECT_COLUMN |
+ ASTERISK |
+ SPAN |
+ SPACE |
+ ILLEGAL |
+} |
+if {[lrange $extras end-1 end]!="SPACE ILLEGAL"} { |
+ error "SPACE and ILLEGAL must be the last two token codes and they\ |
+ must be in that order" |
+} |
+foreach x $extras { |
+ incr max |
+ puts [format "#define TK_%-29s %4d" $x $max] |
+} |
+ |
+# Some additional #defines related to token codes. |
+# |
+puts "\n/* The token codes above must all fit in 8 bits */" |
+puts [format "#define %-20s %-6s" TKFLG_MASK 0xff] |
+puts "\n/* Flags that can be added to a token code when it is not" |
+puts "** being stored in a u8: */" |
+foreach {fg val comment} { |
+ TKFLG_DONTFOLD 0x100 {/* Omit constant folding optimizations */} |
+} { |
+ puts [format "#define %-20s %-6s %s" $fg $val $comment] |
+} |