Obsah / Utility / UNICHAR / Definiční tabulka typů znaků
Zdrojový kód:
INCLUDE\UTIL\UNICHAR.INC, UTIL\UNICHAR.ASM.
Definiční
tabulka typů znaků
Následuje výňatek tabulky
CHTypeTab, která popisuje typy Unicode znaků. Tabulka není
uvedená celá kvůli své délce.
; ------------- Unicode character types - directory table
align 4, db 0
CHTypeTab: dd CHType0000 ; 00xx
dd CHType0100 ; 01xx
dd CHType0200 ; 02xx
dd CHType0300 ; 03xx
dd CHType0400 ; 04xx
dd CHType0500 ; 05xx
dd CHType0600 ; 06xx
INVCHTYPE 7 ; 07xx .. 0Dxx
dd CHType0E00 ; 0Exx
INVCHTYPE 14 ; 0Fxx .. 1Cxx
dd CHType1D00 ; 1Dxx
dd CHType1E00 ; 1Exx
dd CHType1F00 ; 1Fxx
dd CHType2000 ; 20xx
dd CHType2100 ; 21xx
dd CHType2200 ; 22xx
dd CHType2300 ; 23xx
dd CHType2400 ; 24xx
dd CHType2500 ; 25xx
dd CHType2600 ; 26xx
dd CHType2700 ; 27xx
dd CHType2800 ; 28xx
dd CHType2900 ; 29xx
dd CHType2A00 ; 2Axx
dd CHType2B00 ; 2Bxx
dd CHType2C00 ; 2Cxx
; ------------- Unicode character types
align 4, db 0
CHType2B00: UNISIGNUM 27 ; 2B00..2B1A symbols
UNIINV 5 ; 2B1B..2B1F
UNISIGNUM 4 ; 2B20..2B23
; UNIINV 220 ; 2B24..2BFF
; CHTypeInv must follow.
CHTypeInv: UNIINV 256 ; invalid unicode type table
CHType0000: UNICTRCH 0,32 ; 0000..001F
UNISPC 1 ; 0020
UNIMRK "!" ; 0021 !
UNIMRK 34 ; 0022 "
UNISIG "#" ; 0023 #
UNISIG "$" ; 0024 $
UNISIG "%" ; 0025 %
UNISIG "&" ; 0026 &
UNIMRK 39 ; 0027 '
UNIMRK "(" ; 0028 (
UNIMRK ")" ; 0029 )
UNISIG "*" ; 002A *
|
Základem tabulky je pole ukazatelů do
256-znakových podtabulek s definicemi typů znaků. Při
vyhledání popisovače typu znaku je nejdříve pomocí
vyššího bajtu kódu znaku vyhledán ukazatel na podtabulku a v
ní je vyhledán příslušný popisovač typu podle nižšího
bajtu kódu znaku.
Za tabulkou ukazatelů následují
podtabulky typů znaků. Podtabulka CHTypeInv je oblast 256
neplatných znaků. Tato tabulka je polem ukazatelů používána
vícenásobně. Podtabulky jsou organizovány tak, aby se pokud
možno efektivně využilo možné překrývání začátků a
konců tabulek - například konec podtabulky CHType2100 obsahuje
oblast 112 znaků symbolů a ty se sdílejí spolu se začátkem
tabulky CHType2600, který obsahuje 157 znaků symbolů.
Obsah / Utility / UNICHAR / Definiční tabulka typů znaků