mkopts.tcl

来自「最新的sqlite3.6.2源代码」· TCL 代码 · 共 52 行

TCL
52
字号
#!/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 0proc 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 0finalizeputs "  \175;"puts "  enum ${prefix}_enum \173"foreach name [lsort $namelist] {  regsub -all {@} $name {} name  put_item ${prefix}_[string toupper $name],}finalizeputs "  \175;"

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?