Index: third_party/sqlite/sqlite-src-3070603/tool/mkopts.tcl |
diff --git a/third_party/sqlite/sqlite-src-3070603/tool/mkopts.tcl b/third_party/sqlite/sqlite-src-3070603/tool/mkopts.tcl |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e3ddcb9eeb378667d3ca11e1487f66d438f1487f |
--- /dev/null |
+++ b/third_party/sqlite/sqlite-src-3070603/tool/mkopts.tcl |
@@ -0,0 +1,51 @@ |
+#!/usr/bin/tclsh |
+# |
+# This script is used to generate the array of strings and the enum |
+# that appear at the beginning of the C code implementation of a |
+# a TCL command and that define the available subcommands for that |
+# TCL command. |
+ |
+set prefix {} |
+while {![eof stdin]} { |
+ set line [gets stdin] |
+ if {$line==""} continue |
+ regsub -all "\[ \t\n,\]+" [string trim $line] { } line |
+ foreach token [split $line { }] { |
+ if {![regexp {(([a-zA-Z]+)_)?([_a-zA-Z]+)} $token all px p2 name]} continue |
+ lappend namelist [string tolower $name] |
+ if {$px!=""} {set prefix $p2} |
+ } |
+} |
+ |
+puts " static const char *${prefix}_strs\[\] = \173" |
+set col 0 |
+proc put_item x { |
+ global col |
+ if {$col==0} {puts -nonewline " "} |
+ if {$col<2} { |
+ puts -nonewline [format " %-21s" $x] |
+ incr col |
+ } else { |
+ puts $x |
+ set col 0 |
+ } |
+} |
+proc finalize {} { |
+ global col |
+ if {$col>0} {puts {}} |
+ set col 0 |
+} |
+ |
+foreach name [lsort $namelist] { |
+ put_item \"$name\", |
+} |
+put_item 0 |
+finalize |
+puts " \175;" |
+puts " enum ${prefix}_enum \173" |
+foreach name [lsort $namelist] { |
+ regsub -all {@} $name {} name |
+ put_item ${prefix}_[string toupper $name], |
+} |
+finalize |
+puts " \175;" |