437 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
		
		
			
		
	
	
			437 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
| 
								 | 
							
								/*  $Id$
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    Part of SWI-Prolog
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    Author:        Jan Wielemaker
							 | 
						||
| 
								 | 
							
								    E-mail:        wielemak@science.uva.nl
							 | 
						||
| 
								 | 
							
								    WWW:           http://www.swi-prolog.org
							 | 
						||
| 
								 | 
							
								    Copyright (C): 1985-2006, University of Amsterdam
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    This program is free software; you can redistribute it and/or
							 | 
						||
| 
								 | 
							
								    modify it under the terms of the GNU General Public License
							 | 
						||
| 
								 | 
							
								    as published by the Free Software Foundation; either version 2
							 | 
						||
| 
								 | 
							
								    of the License, or (at your option) any later version.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    This program is distributed in the hope that it will be useful,
							 | 
						||
| 
								 | 
							
								    but WITHOUT ANY WARRANTY; without even the implied warranty of
							 | 
						||
| 
								 | 
							
								    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
							 | 
						||
| 
								 | 
							
								    GNU General Public License for more details.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    You should have received a copy of the GNU General Public
							 | 
						||
| 
								 | 
							
								    License along with this library; if not, write to the Free Software
							 | 
						||
| 
								 | 
							
								    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    As a special exception, if you link this library with other files,
							 | 
						||
| 
								 | 
							
								    compiled with a Free Software compiler, to produce an executable, this
							 | 
						||
| 
								 | 
							
								    library does not by itself cause the resulting executable to be covered
							 | 
						||
| 
								 | 
							
								    by the GNU General Public License. This exception does not however
							 | 
						||
| 
								 | 
							
								    invalidate any other reasons why the executable file might be covered by
							 | 
						||
| 
								 | 
							
								    the GNU General Public License.
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:- module(xml_unicode,
							 | 
						||
| 
								 | 
							
									  [ mkclassify/0
							 | 
						||
| 
								 | 
							
									  ]).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%%	mkclassify
							 | 
						||
| 
								 | 
							
								%
							 | 
						||
| 
								 | 
							
								%	Generate the core of xml_unicode.c.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								mkclassify :-
							 | 
						||
| 
								 | 
							
									forall(list(List, _),
							 | 
						||
| 
								 | 
							
									       mkfunc(List)).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								mkfunc(Name) :-
							 | 
						||
| 
								 | 
							
									format('int~n'),
							 | 
						||
| 
								 | 
							
									format('wcis_~w(int c)~n', [Name]),
							 | 
						||
| 
								 | 
							
									format('{ '),
							 | 
						||
| 
								 | 
							
									list(Name, List),
							 | 
						||
| 
								 | 
							
									mkswitch(List),
							 | 
						||
| 
								 | 
							
									format('}~n~n').
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								mkswitch(List) :-
							 | 
						||
| 
								 | 
							
									mkswitch(List, 2).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								mkswitch([Low-High], Indent) :- !,
							 | 
						||
| 
								 | 
							
									indent(Indent),
							 | 
						||
| 
								 | 
							
									format('return (c >= 0x~|~`0t~16r~4+ && c <= 0x~|~`0t~16r~4+);~n', [Low, High]).
							 | 
						||
| 
								 | 
							
								mkswitch([Value], Indent) :- !,
							 | 
						||
| 
								 | 
							
									indent(Indent),
							 | 
						||
| 
								 | 
							
									format('return (c == 0x~|~`0t~16r~4+);', [Value]).
							 | 
						||
| 
								 | 
							
								mkswitch(List, Indent) :-
							 | 
						||
| 
								 | 
							
									split(List, Low, High),
							 | 
						||
| 
								 | 
							
									end(Low, MaxLow),
							 | 
						||
| 
								 | 
							
									indent(Indent),
							 | 
						||
| 
								 | 
							
									NextIndent is Indent + 2,
							 | 
						||
| 
								 | 
							
									format('if ( c <= 0x~|~`0t~16r~4+ )~n', [MaxLow]),
							 | 
						||
| 
								 | 
							
									indent(Indent),
							 | 
						||
| 
								 | 
							
									format('{ '),
							 | 
						||
| 
								 | 
							
									mkswitch(Low, NextIndent),
							 | 
						||
| 
								 | 
							
									indent(Indent),
							 | 
						||
| 
								 | 
							
									format('} else~n'),
							 | 
						||
| 
								 | 
							
									indent(Indent),
							 | 
						||
| 
								 | 
							
									format('{ '),
							 | 
						||
| 
								 | 
							
									mkswitch(High, NextIndent),
							 | 
						||
| 
								 | 
							
									indent(Indent),
							 | 
						||
| 
								 | 
							
									format('}~n').
							 | 
						||
| 
								 | 
							
									       
							 | 
						||
| 
								 | 
							
								end(List, Max) :-
							 | 
						||
| 
								 | 
							
									last(List, Last),
							 | 
						||
| 
								 | 
							
									(   Last = _-Max
							 | 
						||
| 
								 | 
							
									->  true
							 | 
						||
| 
								 | 
							
									;   Max = Last
							 | 
						||
| 
								 | 
							
									).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								split(List, Low, High) :-
							 | 
						||
| 
								 | 
							
									length(List, Len),
							 | 
						||
| 
								 | 
							
									Mid is Len//2,
							 | 
						||
| 
								 | 
							
									length(Low, Mid),
							 | 
						||
| 
								 | 
							
									append(Low, High, List).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								indent(N) :-
							 | 
						||
| 
								 | 
							
									line_position(current_output, Pos),
							 | 
						||
| 
								 | 
							
									Spaces is N - Pos,
							 | 
						||
| 
								 | 
							
									format('~*c', [Spaces, 32]).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								list(basechar,
							 | 
						||
| 
								 | 
							
								     [ 0x0041-0x005A,
							 | 
						||
| 
								 | 
							
								       0x0061-0x007A,
							 | 
						||
| 
								 | 
							
								       0x00C0-0x00D6,
							 | 
						||
| 
								 | 
							
								       0x00D8-0x00F6,
							 | 
						||
| 
								 | 
							
								       0x00F8-0x00FF,
							 | 
						||
| 
								 | 
							
								       0x0100-0x0131,
							 | 
						||
| 
								 | 
							
								       0x0134-0x013E,
							 | 
						||
| 
								 | 
							
								       0x0141-0x0148,
							 | 
						||
| 
								 | 
							
								       0x014A-0x017E,
							 | 
						||
| 
								 | 
							
								       0x0180-0x01C3,
							 | 
						||
| 
								 | 
							
								       0x01CD-0x01F0,
							 | 
						||
| 
								 | 
							
								       0x01F4-0x01F5,
							 | 
						||
| 
								 | 
							
								       0x01FA-0x0217,
							 | 
						||
| 
								 | 
							
								       0x0250-0x02A8,
							 | 
						||
| 
								 | 
							
								       0x02BB-0x02C1,
							 | 
						||
| 
								 | 
							
								       0x0386,
							 | 
						||
| 
								 | 
							
								       0x0388-0x038A,
							 | 
						||
| 
								 | 
							
								       0x038C,
							 | 
						||
| 
								 | 
							
								       0x038E-0x03A1,
							 | 
						||
| 
								 | 
							
								       0x03A3-0x03CE,
							 | 
						||
| 
								 | 
							
								       0x03D0-0x03D6,
							 | 
						||
| 
								 | 
							
								       0x03DA,
							 | 
						||
| 
								 | 
							
								       0x03DC,
							 | 
						||
| 
								 | 
							
								       0x03DE,
							 | 
						||
| 
								 | 
							
								       0x03E0,
							 | 
						||
| 
								 | 
							
								       0x03E2-0x03F3,
							 | 
						||
| 
								 | 
							
								       0x0401-0x040C,
							 | 
						||
| 
								 | 
							
								       0x040E-0x044F,
							 | 
						||
| 
								 | 
							
								       0x0451-0x045C,
							 | 
						||
| 
								 | 
							
								       0x045E-0x0481,
							 | 
						||
| 
								 | 
							
								       0x0490-0x04C4,
							 | 
						||
| 
								 | 
							
								       0x04C7-0x04C8,
							 | 
						||
| 
								 | 
							
								       0x04CB-0x04CC,
							 | 
						||
| 
								 | 
							
								       0x04D0-0x04EB,
							 | 
						||
| 
								 | 
							
								       0x04EE-0x04F5,
							 | 
						||
| 
								 | 
							
								       0x04F8-0x04F9,
							 | 
						||
| 
								 | 
							
								       0x0531-0x0556,
							 | 
						||
| 
								 | 
							
								       0x0559,
							 | 
						||
| 
								 | 
							
								       0x0561-0x0586,
							 | 
						||
| 
								 | 
							
								       0x05D0-0x05EA,
							 | 
						||
| 
								 | 
							
								       0x05F0-0x05F2,
							 | 
						||
| 
								 | 
							
								       0x0621-0x063A,
							 | 
						||
| 
								 | 
							
								       0x0641-0x064A,
							 | 
						||
| 
								 | 
							
								       0x0671-0x06B7,
							 | 
						||
| 
								 | 
							
								       0x06BA-0x06BE,
							 | 
						||
| 
								 | 
							
								       0x06C0-0x06CE,
							 | 
						||
| 
								 | 
							
								       0x06D0-0x06D3,
							 | 
						||
| 
								 | 
							
								       0x06D5,
							 | 
						||
| 
								 | 
							
								       0x06E5-0x06E6,
							 | 
						||
| 
								 | 
							
								       0x0905-0x0939,
							 | 
						||
| 
								 | 
							
								       0x093D,
							 | 
						||
| 
								 | 
							
								       0x0958-0x0961,
							 | 
						||
| 
								 | 
							
								       0x0985-0x098C,
							 | 
						||
| 
								 | 
							
								       0x098F-0x0990,
							 | 
						||
| 
								 | 
							
								       0x0993-0x09A8,
							 | 
						||
| 
								 | 
							
								       0x09AA-0x09B0,
							 | 
						||
| 
								 | 
							
								       0x09B2,
							 | 
						||
| 
								 | 
							
								       0x09B6-0x09B9,
							 | 
						||
| 
								 | 
							
								       0x09DC-0x09DD,
							 | 
						||
| 
								 | 
							
								       0x09DF-0x09E1,
							 | 
						||
| 
								 | 
							
								       0x09F0-0x09F1,
							 | 
						||
| 
								 | 
							
								       0x0A05-0x0A0A,
							 | 
						||
| 
								 | 
							
								       0x0A0F-0x0A10,
							 | 
						||
| 
								 | 
							
								       0x0A13-0x0A28,
							 | 
						||
| 
								 | 
							
								       0x0A2A-0x0A30,
							 | 
						||
| 
								 | 
							
								       0x0A32-0x0A33,
							 | 
						||
| 
								 | 
							
								       0x0A35-0x0A36,
							 | 
						||
| 
								 | 
							
								       0x0A38-0x0A39,
							 | 
						||
| 
								 | 
							
								       0x0A59-0x0A5C,
							 | 
						||
| 
								 | 
							
								       0x0A5E,
							 | 
						||
| 
								 | 
							
								       0x0A72-0x0A74,
							 | 
						||
| 
								 | 
							
								       0x0A85-0x0A8B,
							 | 
						||
| 
								 | 
							
								       0x0A8D,
							 | 
						||
| 
								 | 
							
								       0x0A8F-0x0A91,
							 | 
						||
| 
								 | 
							
								       0x0A93-0x0AA8,
							 | 
						||
| 
								 | 
							
								       0x0AAA-0x0AB0,
							 | 
						||
| 
								 | 
							
								       0x0AB2-0x0AB3,
							 | 
						||
| 
								 | 
							
								       0x0AB5-0x0AB9,
							 | 
						||
| 
								 | 
							
								       0x0ABD,
							 | 
						||
| 
								 | 
							
								       0x0AE0,
							 | 
						||
| 
								 | 
							
								       0x0B05-0x0B0C,
							 | 
						||
| 
								 | 
							
								       0x0B0F-0x0B10,
							 | 
						||
| 
								 | 
							
								       0x0B13-0x0B28,
							 | 
						||
| 
								 | 
							
								       0x0B2A-0x0B30,
							 | 
						||
| 
								 | 
							
								       0x0B32-0x0B33,
							 | 
						||
| 
								 | 
							
								       0x0B36-0x0B39,
							 | 
						||
| 
								 | 
							
								       0x0B3D,
							 | 
						||
| 
								 | 
							
								       0x0B5C-0x0B5D,
							 | 
						||
| 
								 | 
							
								       0x0B5F-0x0B61,
							 | 
						||
| 
								 | 
							
								       0x0B85-0x0B8A,
							 | 
						||
| 
								 | 
							
								       0x0B8E-0x0B90,
							 | 
						||
| 
								 | 
							
								       0x0B92-0x0B95,
							 | 
						||
| 
								 | 
							
								       0x0B99-0x0B9A,
							 | 
						||
| 
								 | 
							
								       0x0B9C,
							 | 
						||
| 
								 | 
							
								       0x0B9E-0x0B9F,
							 | 
						||
| 
								 | 
							
								       0x0BA3-0x0BA4,
							 | 
						||
| 
								 | 
							
								       0x0BA8-0x0BAA,
							 | 
						||
| 
								 | 
							
								       0x0BAE-0x0BB5,
							 | 
						||
| 
								 | 
							
								       0x0BB7-0x0BB9,
							 | 
						||
| 
								 | 
							
								       0x0C05-0x0C0C,
							 | 
						||
| 
								 | 
							
								       0x0C0E-0x0C10,
							 | 
						||
| 
								 | 
							
								       0x0C12-0x0C28,
							 | 
						||
| 
								 | 
							
								       0x0C2A-0x0C33,
							 | 
						||
| 
								 | 
							
								       0x0C35-0x0C39,
							 | 
						||
| 
								 | 
							
								       0x0C60-0x0C61,
							 | 
						||
| 
								 | 
							
								       0x0C85-0x0C8C,
							 | 
						||
| 
								 | 
							
								       0x0C8E-0x0C90,
							 | 
						||
| 
								 | 
							
								       0x0C92-0x0CA8,
							 | 
						||
| 
								 | 
							
								       0x0CAA-0x0CB3,
							 | 
						||
| 
								 | 
							
								       0x0CB5-0x0CB9,
							 | 
						||
| 
								 | 
							
								       0x0CDE,
							 | 
						||
| 
								 | 
							
								       0x0CE0-0x0CE1,
							 | 
						||
| 
								 | 
							
								       0x0D05-0x0D0C,
							 | 
						||
| 
								 | 
							
								       0x0D0E-0x0D10,
							 | 
						||
| 
								 | 
							
								       0x0D12-0x0D28,
							 | 
						||
| 
								 | 
							
								       0x0D2A-0x0D39,
							 | 
						||
| 
								 | 
							
								       0x0D60-0x0D61,
							 | 
						||
| 
								 | 
							
								       0x0E01-0x0E2E,
							 | 
						||
| 
								 | 
							
								       0x0E30,
							 | 
						||
| 
								 | 
							
								       0x0E32-0x0E33,
							 | 
						||
| 
								 | 
							
								       0x0E40-0x0E45,
							 | 
						||
| 
								 | 
							
								       0x0E81-0x0E82,
							 | 
						||
| 
								 | 
							
								       0x0E84,
							 | 
						||
| 
								 | 
							
								       0x0E87-0x0E88,
							 | 
						||
| 
								 | 
							
								       0x0E8A,
							 | 
						||
| 
								 | 
							
								       0x0E8D,
							 | 
						||
| 
								 | 
							
								       0x0E94-0x0E97,
							 | 
						||
| 
								 | 
							
								       0x0E99-0x0E9F,
							 | 
						||
| 
								 | 
							
								       0x0EA1-0x0EA3,
							 | 
						||
| 
								 | 
							
								       0x0EA5,
							 | 
						||
| 
								 | 
							
								       0x0EA7,
							 | 
						||
| 
								 | 
							
								       0x0EAA-0x0EAB,
							 | 
						||
| 
								 | 
							
								       0x0EAD-0x0EAE,
							 | 
						||
| 
								 | 
							
								       0x0EB0,
							 | 
						||
| 
								 | 
							
								       0x0EB2-0x0EB3,
							 | 
						||
| 
								 | 
							
								       0x0EBD,
							 | 
						||
| 
								 | 
							
								       0x0EC0-0x0EC4,
							 | 
						||
| 
								 | 
							
								       0x0F40-0x0F47,
							 | 
						||
| 
								 | 
							
								       0x0F49-0x0F69,
							 | 
						||
| 
								 | 
							
								       0x10A0-0x10C5,
							 | 
						||
| 
								 | 
							
								       0x10D0-0x10F6,
							 | 
						||
| 
								 | 
							
								       0x1100,
							 | 
						||
| 
								 | 
							
								       0x1102-0x1103,
							 | 
						||
| 
								 | 
							
								       0x1105-0x1107,
							 | 
						||
| 
								 | 
							
								       0x1109,
							 | 
						||
| 
								 | 
							
								       0x110B-0x110C,
							 | 
						||
| 
								 | 
							
								       0x110E-0x1112,
							 | 
						||
| 
								 | 
							
								       0x113C,
							 | 
						||
| 
								 | 
							
								       0x113E,
							 | 
						||
| 
								 | 
							
								       0x1140,
							 | 
						||
| 
								 | 
							
								       0x114C,
							 | 
						||
| 
								 | 
							
								       0x114E,
							 | 
						||
| 
								 | 
							
								       0x1150,
							 | 
						||
| 
								 | 
							
								       0x1154-0x1155,
							 | 
						||
| 
								 | 
							
								       0x1159,
							 | 
						||
| 
								 | 
							
								       0x115F-0x1161,
							 | 
						||
| 
								 | 
							
								       0x1163,
							 | 
						||
| 
								 | 
							
								       0x1165,
							 | 
						||
| 
								 | 
							
								       0x1167,
							 | 
						||
| 
								 | 
							
								       0x1169,
							 | 
						||
| 
								 | 
							
								       0x116D-0x116E,
							 | 
						||
| 
								 | 
							
								       0x1172-0x1173,
							 | 
						||
| 
								 | 
							
								       0x1175,
							 | 
						||
| 
								 | 
							
								       0x119E,
							 | 
						||
| 
								 | 
							
								       0x11A8,
							 | 
						||
| 
								 | 
							
								       0x11AB,
							 | 
						||
| 
								 | 
							
								       0x11AE-0x11AF,
							 | 
						||
| 
								 | 
							
								       0x11B7-0x11B8,
							 | 
						||
| 
								 | 
							
								       0x11BA,
							 | 
						||
| 
								 | 
							
								       0x11BC-0x11C2,
							 | 
						||
| 
								 | 
							
								       0x11EB,
							 | 
						||
| 
								 | 
							
								       0x11F0,
							 | 
						||
| 
								 | 
							
								       0x11F9,
							 | 
						||
| 
								 | 
							
								       0x1E00-0x1E9B,
							 | 
						||
| 
								 | 
							
								       0x1EA0-0x1EF9,
							 | 
						||
| 
								 | 
							
								       0x1F00-0x1F15,
							 | 
						||
| 
								 | 
							
								       0x1F18-0x1F1D,
							 | 
						||
| 
								 | 
							
								       0x1F20-0x1F45,
							 | 
						||
| 
								 | 
							
								       0x1F48-0x1F4D,
							 | 
						||
| 
								 | 
							
								       0x1F50-0x1F57,
							 | 
						||
| 
								 | 
							
								       0x1F59,
							 | 
						||
| 
								 | 
							
								       0x1F5B,
							 | 
						||
| 
								 | 
							
								       0x1F5D,
							 | 
						||
| 
								 | 
							
								       0x1F5F-0x1F7D,
							 | 
						||
| 
								 | 
							
								       0x1F80-0x1FB4,
							 | 
						||
| 
								 | 
							
								       0x1FB6-0x1FBC,
							 | 
						||
| 
								 | 
							
								       0x1FBE,
							 | 
						||
| 
								 | 
							
								       0x1FC2-0x1FC4,
							 | 
						||
| 
								 | 
							
								       0x1FC6-0x1FCC,
							 | 
						||
| 
								 | 
							
								       0x1FD0-0x1FD3,
							 | 
						||
| 
								 | 
							
								       0x1FD6-0x1FDB,
							 | 
						||
| 
								 | 
							
								       0x1FE0-0x1FEC,
							 | 
						||
| 
								 | 
							
								       0x1FF2-0x1FF4,
							 | 
						||
| 
								 | 
							
								       0x1FF6-0x1FFC,
							 | 
						||
| 
								 | 
							
								       0x2126,
							 | 
						||
| 
								 | 
							
								       0x212A-0x212B,
							 | 
						||
| 
								 | 
							
								       0x212E,
							 | 
						||
| 
								 | 
							
								       0x2180-0x2182,
							 | 
						||
| 
								 | 
							
								       0x3041-0x3094,
							 | 
						||
| 
								 | 
							
								       0x30A1-0x30FA,
							 | 
						||
| 
								 | 
							
								       0x3105-0x312C,
							 | 
						||
| 
								 | 
							
								       0xAC00-0xD7A3]).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								list(ideographic,
							 | 
						||
| 
								 | 
							
								     [ 0x4E00-0x9FA5,
							 | 
						||
| 
								 | 
							
								       0x3007,
							 | 
						||
| 
								 | 
							
								       0x3021-0x3029
							 | 
						||
| 
								 | 
							
								     ]).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								list(combining_char,
							 | 
						||
| 
								 | 
							
								     [ 0x0300-0x0345,
							 | 
						||
| 
								 | 
							
								       0x0360-0x0361,
							 | 
						||
| 
								 | 
							
								       0x0483-0x0486,
							 | 
						||
| 
								 | 
							
								       0x0591-0x05A1,
							 | 
						||
| 
								 | 
							
								       0x05A3-0x05B9,
							 | 
						||
| 
								 | 
							
								       0x05BB-0x05BD,
							 | 
						||
| 
								 | 
							
								       0x05BF,
							 | 
						||
| 
								 | 
							
								       0x05C1-0x05C2,
							 | 
						||
| 
								 | 
							
								       0x05C4,
							 | 
						||
| 
								 | 
							
								       0x064B-0x0652,
							 | 
						||
| 
								 | 
							
								       0x0670,
							 | 
						||
| 
								 | 
							
								       0x06D6-0x06DC,
							 | 
						||
| 
								 | 
							
								       0x06DD-0x06DF,
							 | 
						||
| 
								 | 
							
								       0x06E0-0x06E4,
							 | 
						||
| 
								 | 
							
								       0x06E7-0x06E8,
							 | 
						||
| 
								 | 
							
								       0x06EA-0x06ED,
							 | 
						||
| 
								 | 
							
								       0x0901-0x0903,
							 | 
						||
| 
								 | 
							
								       0x093C,
							 | 
						||
| 
								 | 
							
								       0x093E-0x094C,
							 | 
						||
| 
								 | 
							
								       0x094D,
							 | 
						||
| 
								 | 
							
								       0x0951-0x0954,
							 | 
						||
| 
								 | 
							
								       0x0962-0x0963,
							 | 
						||
| 
								 | 
							
								       0x0981-0x0983,
							 | 
						||
| 
								 | 
							
								       0x09BC,
							 | 
						||
| 
								 | 
							
								       0x09BE,
							 | 
						||
| 
								 | 
							
								       0x09BF,
							 | 
						||
| 
								 | 
							
								       0x09C0-0x09C4,
							 | 
						||
| 
								 | 
							
								       0x09C7-0x09C8,
							 | 
						||
| 
								 | 
							
								       0x09CB-0x09CD,
							 | 
						||
| 
								 | 
							
								       0x09D7,
							 | 
						||
| 
								 | 
							
								       0x09E2-0x09E3,
							 | 
						||
| 
								 | 
							
								       0x0A02,
							 | 
						||
| 
								 | 
							
								       0x0A3C,
							 | 
						||
| 
								 | 
							
								       0x0A3E,
							 | 
						||
| 
								 | 
							
								       0x0A3F,
							 | 
						||
| 
								 | 
							
								       0x0A40-0x0A42,
							 | 
						||
| 
								 | 
							
								       0x0A47-0x0A48,
							 | 
						||
| 
								 | 
							
								       0x0A4B-0x0A4D,
							 | 
						||
| 
								 | 
							
								       0x0A70-0x0A71,
							 | 
						||
| 
								 | 
							
								       0x0A81-0x0A83,
							 | 
						||
| 
								 | 
							
								       0x0ABC,
							 | 
						||
| 
								 | 
							
								       0x0ABE-0x0AC5,
							 | 
						||
| 
								 | 
							
								       0x0AC7-0x0AC9,
							 | 
						||
| 
								 | 
							
								       0x0ACB-0x0ACD,
							 | 
						||
| 
								 | 
							
								       0x0B01-0x0B03,
							 | 
						||
| 
								 | 
							
								       0x0B3C,
							 | 
						||
| 
								 | 
							
								       0x0B3E-0x0B43,
							 | 
						||
| 
								 | 
							
								       0x0B47-0x0B48,
							 | 
						||
| 
								 | 
							
								       0x0B4B-0x0B4D,
							 | 
						||
| 
								 | 
							
								       0x0B56-0x0B57,
							 | 
						||
| 
								 | 
							
								       0x0B82-0x0B83,
							 | 
						||
| 
								 | 
							
								       0x0BBE-0x0BC2,
							 | 
						||
| 
								 | 
							
								       0x0BC6-0x0BC8,
							 | 
						||
| 
								 | 
							
								       0x0BCA-0x0BCD,
							 | 
						||
| 
								 | 
							
								       0x0BD7,
							 | 
						||
| 
								 | 
							
								       0x0C01-0x0C03,
							 | 
						||
| 
								 | 
							
								       0x0C3E-0x0C44,
							 | 
						||
| 
								 | 
							
								       0x0C46-0x0C48,
							 | 
						||
| 
								 | 
							
								       0x0C4A-0x0C4D,
							 | 
						||
| 
								 | 
							
								       0x0C55-0x0C56,
							 | 
						||
| 
								 | 
							
								       0x0C82-0x0C83,
							 | 
						||
| 
								 | 
							
								       0x0CBE-0x0CC4,
							 | 
						||
| 
								 | 
							
								       0x0CC6-0x0CC8,
							 | 
						||
| 
								 | 
							
								       0x0CCA-0x0CCD,
							 | 
						||
| 
								 | 
							
								       0x0CD5-0x0CD6,
							 | 
						||
| 
								 | 
							
								       0x0D02-0x0D03,
							 | 
						||
| 
								 | 
							
								       0x0D3E-0x0D43,
							 | 
						||
| 
								 | 
							
								       0x0D46-0x0D48,
							 | 
						||
| 
								 | 
							
								       0x0D4A-0x0D4D,
							 | 
						||
| 
								 | 
							
								       0x0D57,
							 | 
						||
| 
								 | 
							
								       0x0E31,
							 | 
						||
| 
								 | 
							
								       0x0E34-0x0E3A,
							 | 
						||
| 
								 | 
							
								       0x0E47-0x0E4E,
							 | 
						||
| 
								 | 
							
								       0x0EB1,
							 | 
						||
| 
								 | 
							
								       0x0EB4-0x0EB9,
							 | 
						||
| 
								 | 
							
								       0x0EBB-0x0EBC,
							 | 
						||
| 
								 | 
							
								       0x0EC8-0x0ECD,
							 | 
						||
| 
								 | 
							
								       0x0F18-0x0F19,
							 | 
						||
| 
								 | 
							
								       0x0F35,
							 | 
						||
| 
								 | 
							
								       0x0F37,
							 | 
						||
| 
								 | 
							
								       0x0F39,
							 | 
						||
| 
								 | 
							
								       0x0F3E,
							 | 
						||
| 
								 | 
							
								       0x0F3F,
							 | 
						||
| 
								 | 
							
								       0x0F71-0x0F84,
							 | 
						||
| 
								 | 
							
								       0x0F86-0x0F8B,
							 | 
						||
| 
								 | 
							
								       0x0F90-0x0F95,
							 | 
						||
| 
								 | 
							
								       0x0F97,
							 | 
						||
| 
								 | 
							
								       0x0F99-0x0FAD,
							 | 
						||
| 
								 | 
							
								       0x0FB1-0x0FB7,
							 | 
						||
| 
								 | 
							
								       0x0FB9,
							 | 
						||
| 
								 | 
							
								       0x20D0-0x20DC,
							 | 
						||
| 
								 | 
							
								       0x20E1,
							 | 
						||
| 
								 | 
							
								       0x302A-0x302F,
							 | 
						||
| 
								 | 
							
								       0x3099,
							 | 
						||
| 
								 | 
							
								       0x309A
							 | 
						||
| 
								 | 
							
								     ]).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								list(digit,
							 | 
						||
| 
								 | 
							
								     [ 0x0030-0x0039,
							 | 
						||
| 
								 | 
							
								       0x0660-0x0669,
							 | 
						||
| 
								 | 
							
								       0x06F0-0x06F9,
							 | 
						||
| 
								 | 
							
								       0x0966-0x096F,
							 | 
						||
| 
								 | 
							
								       0x09E6-0x09EF,
							 | 
						||
| 
								 | 
							
								       0x0A66-0x0A6F,
							 | 
						||
| 
								 | 
							
								       0x0AE6-0x0AEF,
							 | 
						||
| 
								 | 
							
								       0x0B66-0x0B6F,
							 | 
						||
| 
								 | 
							
								       0x0BE7-0x0BEF,
							 | 
						||
| 
								 | 
							
								       0x0C66-0x0C6F,
							 | 
						||
| 
								 | 
							
								       0x0CE6-0x0CEF,
							 | 
						||
| 
								 | 
							
								       0x0D66-0x0D6F,
							 | 
						||
| 
								 | 
							
								       0x0E50-0x0E59,
							 | 
						||
| 
								 | 
							
								       0x0ED0-0x0ED9,
							 | 
						||
| 
								 | 
							
								       0x0F20-0x0F29
							 | 
						||
| 
								 | 
							
								     ]).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								list(extender,
							 | 
						||
| 
								 | 
							
								     [ 0x00B7,
							 | 
						||
| 
								 | 
							
								       0x02D0,
							 | 
						||
| 
								 | 
							
								       0x02D1,
							 | 
						||
| 
								 | 
							
								       0x0387,
							 | 
						||
| 
								 | 
							
								       0x0640,
							 | 
						||
| 
								 | 
							
								       0x0E46,
							 | 
						||
| 
								 | 
							
								       0x0EC6,
							 | 
						||
| 
								 | 
							
								       0x3005,
							 | 
						||
| 
								 | 
							
								       0x3031-0x3035,
							 | 
						||
| 
								 | 
							
								       0x309D-0x309E,
							 | 
						||
| 
								 | 
							
								       0x30FC-0x30FE
							 | 
						||
| 
								 | 
							
								     ]).
							 |