| Index: third_party/sqlite/src/tool/mkopts.tcl
|
| diff --git a/third_party/sqlite/src/tool/mkopts.tcl b/third_party/sqlite/src/tool/mkopts.tcl
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e3ddcb9eeb378667d3ca11e1487f66d438f1487f
|
| --- /dev/null
|
| +++ b/third_party/sqlite/src/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;"
|
|
|