⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uniclass.tcl

📁 tcl是工具命令语言
💻 TCL
字号:
#!/bin/sh# The next line is executed by /bin/sh, but not tcl \exec tclsh "$0" ${1+"$@"}## uniClass.tcl --##	Generates the character ranges and singletons that are used in#	generic/regc_locale.c for translation of character classes.#	This file must be generated using a tclsh that contains the#	correct corresponding tclUniData.c file (generated by uniParse.tcl)#	in order for the class ranges to match.#proc emitRange {first last} {    global ranges numranges chars numchars    if {$first < ($last-1)} {	append ranges [format "{0x%04x, 0x%04x}, " \		$first $last]	if {[incr numranges] % 4 == 0} {	    append ranges "\n    "	}    } else {	append chars [format "0x%04x, " $first]	incr numchars	if {$numchars % 9 == 0} {	    append chars "\n    "	}	if {$first != $last} {	    append chars [format "0x%04x, " $last]	    incr numchars	    if {$numchars % 9 == 0} {		append chars "\n    "	    }	}    }}proc genTable {type} {    global first last ranges numranges chars numchars    set first -2    set last -2    set ranges "    "    set numranges 0    set chars "    "    set numchars 0    for {set i 0} {$i <= 0xFFFF} {incr i} {	if {[string is $type [format %c $i]]} {	    if {$i == ($last + 1)} {		set last $i	    } else {		if {$first > 0} {		    emitRange $first $last		}		set first $i		set last $i	    }	}    }    emitRange $first $last    set ranges [string trimright $ranges "\t\n ,"]    set chars  [string trimright $chars "\t\n ,"]    if {$ranges != ""} {	puts "static crange ${type}RangeTable\[\] = {\n$ranges\n};\n"	puts "#define NUM_[string toupper $type]_RANGE (sizeof(${type}RangeTable)/sizeof(crange))\n"    } else {	puts "/* no contiguous ranges of $type characters */\n"    }    if {$chars != ""} {	puts "static chr ${type}CharTable\[\] = {\n$chars\n};\n"	puts "#define NUM_[string toupper $type]_CHAR (sizeof(${type}CharTable)/sizeof(chr))\n"    } else {	puts "/* no singletons of $type characters */\n"    }}puts "/* *	Declarations of Unicode character ranges.  This code *	is automatically generated by the tools/uniClass.tcl script *	and used in generic/regc_locale.c.  Do not modify by hand. */"foreach {type desc} {    alpha "alphabetic characters"    digit "decimal digit characters"    punct "punctuation characters"    space "white space characters"    lower "lowercase characters"    upper "uppercase characters"    graph "unicode print characters excluding space"} {    puts "/* Unicode: $desc */\n"    genTable $type}puts "/* *	End of auto-generated Unicode character ranges declarations. */"

⌨️ 快捷键说明

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