Annotation of embedaddon/sqlite3/tool/mkopts.tcl, revision 1.1
1.1 ! misho 1: #!/usr/bin/tclsh
! 2: #
! 3: # This script is used to generate the array of strings and the enum
! 4: # that appear at the beginning of the C code implementation of a
! 5: # a TCL command and that define the available subcommands for that
! 6: # TCL command.
! 7:
! 8: set prefix {}
! 9: while {![eof stdin]} {
! 10: set line [gets stdin]
! 11: if {$line==""} continue
! 12: regsub -all "\[ \t\n,\]+" [string trim $line] { } line
! 13: foreach token [split $line { }] {
! 14: if {![regexp {(([a-zA-Z]+)_)?([_a-zA-Z]+)} $token all px p2 name]} continue
! 15: lappend namelist [string tolower $name]
! 16: if {$px!=""} {set prefix $p2}
! 17: }
! 18: }
! 19:
! 20: puts " static const char *${prefix}_strs\[\] = \173"
! 21: set col 0
! 22: proc put_item x {
! 23: global col
! 24: if {$col==0} {puts -nonewline " "}
! 25: if {$col<2} {
! 26: puts -nonewline [format " %-21s" $x]
! 27: incr col
! 28: } else {
! 29: puts $x
! 30: set col 0
! 31: }
! 32: }
! 33: proc finalize {} {
! 34: global col
! 35: if {$col>0} {puts {}}
! 36: set col 0
! 37: }
! 38:
! 39: foreach name [lsort $namelist] {
! 40: put_item \"$name\",
! 41: }
! 42: put_item 0
! 43: finalize
! 44: puts " \175;"
! 45: puts " enum ${prefix}_enum \173"
! 46: foreach name [lsort $namelist] {
! 47: regsub -all {@} $name {} name
! 48: put_item ${prefix}_[string toupper $name],
! 49: }
! 50: finalize
! 51: puts " \175;"
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>