Tvůrce webu je i pro tebe! Postav třeba web. Bez grafika. Bez kodéra. Hned.
wz

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ů