diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-05 17:28:19 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-05 17:28:19 +0000 |
commit | 18657a960e125336f704ea058e25c27bd3900dcb (patch) | |
tree | 17b438b680ed45a996d7b59951e6aa34023783f2 /tool/mkopts.tcl | |
parent | Initial commit. (diff) | |
download | sqlite3-18657a960e125336f704ea058e25c27bd3900dcb.tar.xz sqlite3-18657a960e125336f704ea058e25c27bd3900dcb.zip |
Adding upstream version 3.40.1.upstream/3.40.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tool/mkopts.tcl')
-rw-r--r-- | tool/mkopts.tcl | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/tool/mkopts.tcl b/tool/mkopts.tcl new file mode 100644 index 0000000..88f645b --- /dev/null +++ b/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-Z0-9]+)} $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 " %-25s" $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;" |