xamplr-pp 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +504 -0
- data/README.rdoc +94 -0
- data/Rakefile +56 -0
- data/VERSION.yml +4 -0
- data/lib/xampl-pp-dtd.rb +126 -0
- data/lib/xampl-pp-wf.rb +1037 -0
- data/lib/xamplr-pp.rb +991 -0
- data/lib/xamplr-pp/ANNOUNCE.TXT +47 -0
- data/lib/xamplr-pp/LICENSE +504 -0
- data/lib/xamplr-pp/Makefile +122 -0
- data/lib/xamplr-pp/examples/parse-wf.rb +55 -0
- data/lib/xamplr-pp/examples/parse.rb +59 -0
- data/lib/xamplr-pp/license.inc +17 -0
- data/lib/xamplr-pp/saxdemo.rb +214 -0
- data/lib/xamplr-pp/saxish.rb +298 -0
- data/lib/xamplr-pp/saxishHandler.rb +58 -0
- data/lib/xamplr-pp/toys/chew.rb +62 -0
- data/lib/xamplr-pp/toys/chewMultibyte.rb +44 -0
- data/lib/xamplr-pp/toys/dump.rb +58 -0
- data/lib/xamplr-pp/xmlName.defn +67 -0
- data/lib/xamplr-pp/xpp.rb +908 -0
- data/lib/xamplr-pp/xppDeluxe.rb +49 -0
- data/lib/xamplr-pp/xppIter.rb +845 -0
- data/test/test_helper.rb +10 -0
- data/test/xamplr_pp_gem_test.rb +7 -0
- metadata +79 -0
data/README.rdoc
ADDED
@@ -0,0 +1,94 @@
|
|
1
|
+
= xamplr-pp-gem
|
2
|
+
|
3
|
+
== INTRODUCTION
|
4
|
+
|
5
|
+
This is the Ruby version of the xampl pull parser, xamplr-pp. The
|
6
|
+
class name is xampl_PP.
|
7
|
+
|
8
|
+
Both pull parsers and SAX parsers are stream based -- they parse
|
9
|
+
the XML file bit by bit informing its client of interesting events
|
10
|
+
as they are encountered. The whole XML document is not required to
|
11
|
+
be in memory. The significant difference between pull parsers and
|
12
|
+
SAX parsers is in where the 'main loop' is located: in the client
|
13
|
+
for pull parsers, in the parser for SAX parsers. Clients call a
|
14
|
+
method of the pull parser to get the next event. SAX parsers call
|
15
|
+
methods of the client to notify it of events (so these are 'push
|
16
|
+
parsers'). You can pass the pull parser around as an argument.
|
17
|
+
|
18
|
+
As a way of illustrating the use of xamplr-pp a reasonably usable
|
19
|
+
SAX-like parser (SAXish) is implemented as well. There is a saxdemo.rb
|
20
|
+
file provided that provides statistics on the parsed XML file. It
|
21
|
+
can be run using 'make sax' (look in the Makefile to see how it is
|
22
|
+
used)
|
23
|
+
|
24
|
+
== STATUS
|
25
|
+
|
26
|
+
xamplr-pp has been in daily use in a SaaS content management system since about 2004. It is an integral component of xamplr. Unfortunately documentation is sparse.
|
27
|
+
|
28
|
+
xamplr-pp has passed all unit tests using Ruby 1.6.7, 1.8.6, 1.8.7 on Linux and OS X. It has not even been tried on Ruby 1.9.1 at this point.
|
29
|
+
|
30
|
+
The unit tests require Lapidary (remember that?). Run these by typing 'make ut' on
|
31
|
+
the command line in the installation directory.
|
32
|
+
|
33
|
+
xamplr-pp is not a validating parser, in fact, it
|
34
|
+
doesn't enforce some wellformedness rules. DOCTYPE definitions are passed
|
35
|
+
intact to the client program. No attempt is made
|
36
|
+
to extract any kind of entity definitions from the DOCTYPE. Clever
|
37
|
+
use of the DOCTYPE event and the resolver method can relieve this
|
38
|
+
problem.
|
39
|
+
|
40
|
+
I have some serious reservations about the way that xamplr-pp handles
|
41
|
+
multi-byte characters, but it definitely works well with UTF8.
|
42
|
+
|
43
|
+
Some attention has been paid to performance. It is reasonably quick, certainly on the fast side for pure ruby parsers.
|
44
|
+
|
45
|
+
== DOCUMENTATION
|
46
|
+
|
47
|
+
There isn't much. Fortunately, the API to xamplr-pp is very small
|
48
|
+
and quite easy to understand.
|
49
|
+
|
50
|
+
It turns out to be quite easy to build a SAX-like parser from a
|
51
|
+
push parser. It also turns out that doing this pretty much uses
|
52
|
+
the entire xamplr-pp api. So I've implemented a SAX-like parser
|
53
|
+
(SAXish) and annotated it. This is pretty much all the documentation
|
54
|
+
in this release.
|
55
|
+
|
56
|
+
SAXish is, in itself, a pretty usable SAX-like parser (of course
|
57
|
+
the limits to validation and wellformedness checking mentioned above
|
58
|
+
apply).
|
59
|
+
|
60
|
+
== CONFORMANCE
|
61
|
+
|
62
|
+
Well, this is an interesting question. Right now, it doesn't do too
|
63
|
+
well, but it does this in a 'good' way, or at least a manageable
|
64
|
+
way.
|
65
|
+
|
66
|
+
On the Oasis conformance tests xamplr-pp 435 tests pass that should
|
67
|
+
pass, 188 fail that should fail, 3 failed that should pass, and
|
68
|
+
1188 passed that should fail. Generally speaking, xamplr-pp is 'permissive'.
|
69
|
+
|
70
|
+
However to do this I had to *cheat*. I defined a resolver that
|
71
|
+
returns a string rather than nil, this allows xamplr-pp to pretend
|
72
|
+
that it is dealing with entities defined in the DOCTYPE. In other words, for you to achieve this level of conformance you'll need to supply an entity resolver.
|
73
|
+
|
74
|
+
The three that failed that should have passed all involve apparently
|
75
|
+
legal DOCTYPE declarations that xamplr-pp does not recognise as
|
76
|
+
legal. It is unlikely that I do anything about these.
|
77
|
+
|
78
|
+
The 1188 that passed that should not appear to be due to the
|
79
|
+
non-enforcement of well-formedness rules. I have not looked at them
|
80
|
+
all, I assure you of that, but it seems that this most involve
|
81
|
+
entity definitions. Well, every one that I looked at did, can't say for what I didn't look at.
|
82
|
+
|
83
|
+
== LICENCE
|
84
|
+
|
85
|
+
xamplr-pp is licensed under the LGPL (see LICENSE)
|
86
|
+
|
87
|
+
== CONTACT INFORMATION
|
88
|
+
|
89
|
+
My email is hutch@recursive.ca, feel free to contact me there, or
|
90
|
+
you can use the facilities provided by Sourceforge.
|
91
|
+
|
92
|
+
== Copyright
|
93
|
+
|
94
|
+
Copyright (c) 2009 Bob Hutchison. See LICENSE for details.
|
data/Rakefile
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'jeweler'
|
6
|
+
Jeweler::Tasks.new do |gem|
|
7
|
+
gem.name = "xamplr-pp"
|
8
|
+
gem.summary = %Q{A pure ruby XML pull parser}
|
9
|
+
gem.email = "hutch@recursive.ca"
|
10
|
+
gem.homepage = "http://github.com/hutch/xamplr-pp"
|
11
|
+
gem.authors = ["Bob Hutchison"]
|
12
|
+
|
13
|
+
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
14
|
+
end
|
15
|
+
rescue LoadError
|
16
|
+
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
17
|
+
end
|
18
|
+
|
19
|
+
require 'rake/testtask'
|
20
|
+
Rake::TestTask.new(:test) do |test|
|
21
|
+
test.libs << 'lib' << 'test'
|
22
|
+
test.pattern = 'test/**/*_test.rb'
|
23
|
+
test.verbose = true
|
24
|
+
end
|
25
|
+
|
26
|
+
begin
|
27
|
+
require 'rcov/rcovtask'
|
28
|
+
Rcov::RcovTask.new do |test|
|
29
|
+
test.libs << 'test'
|
30
|
+
test.pattern = 'test/**/*_test.rb'
|
31
|
+
test.verbose = true
|
32
|
+
end
|
33
|
+
rescue LoadError
|
34
|
+
task :rcov do
|
35
|
+
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
|
40
|
+
task :default => :test
|
41
|
+
|
42
|
+
require 'rake/rdoctask'
|
43
|
+
Rake::RDocTask.new do |rdoc|
|
44
|
+
if File.exist?('VERSION.yml')
|
45
|
+
config = YAML.load(File.read('VERSION.yml'))
|
46
|
+
version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
|
47
|
+
else
|
48
|
+
version = ""
|
49
|
+
end
|
50
|
+
|
51
|
+
rdoc.rdoc_dir = 'rdoc'
|
52
|
+
rdoc.title = "xamplr-pp #{version}"
|
53
|
+
rdoc.rdoc_files.include('README*')
|
54
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
55
|
+
end
|
56
|
+
|
data/VERSION.yml
ADDED
data/lib/xampl-pp-dtd.rb
ADDED
@@ -0,0 +1,126 @@
|
|
1
|
+
# xampl-pp : XML pull parser
|
2
|
+
# Copyright (C) 2002-2009 Bob Hutchison
|
3
|
+
#
|
4
|
+
# This library is free software; you can redistribute it and/or
|
5
|
+
# modify it under the terms of the GNU Lesser General Public
|
6
|
+
# License as published by the Free Software Foundation; either
|
7
|
+
# version 2.1 of the License, or (at your option) any later version.
|
8
|
+
#
|
9
|
+
# This library is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
12
|
+
# #Lesser General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU Lesser General Public
|
15
|
+
# License along with this library; if not, write to the Free Software
|
16
|
+
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
17
|
+
#
|
18
|
+
|
19
|
+
require "xampl-pp"
|
20
|
+
|
21
|
+
class Xampl_PP
|
22
|
+
|
23
|
+
def parseXMLDecl
|
24
|
+
@standalone = false
|
25
|
+
return nil != @text.index(/^xml[\n\r\t ]/mu)
|
26
|
+
end
|
27
|
+
|
28
|
+
def parseDefinition(defn, internal)
|
29
|
+
return if defn.length <= 0
|
30
|
+
|
31
|
+
p = defn.index(/<!ELEMENT/u)
|
32
|
+
if 0 == p then
|
33
|
+
return parseElementDefinition(defn, internal)
|
34
|
+
end
|
35
|
+
|
36
|
+
p = defn.index(/<!ATTLIST/u)
|
37
|
+
if 0 == p then
|
38
|
+
return parseAttlistDefinition(defn, internal)
|
39
|
+
end
|
40
|
+
|
41
|
+
p = defn.index(/<!NOTATION/u)
|
42
|
+
if 0 == p then
|
43
|
+
return parseNotationDefinition(defn, internal)
|
44
|
+
end
|
45
|
+
|
46
|
+
p = defn.index(/<!ENTITY.*%/mu)
|
47
|
+
if 0 == p then
|
48
|
+
return parseParameterEntityDefinition(defn, internal)
|
49
|
+
end
|
50
|
+
|
51
|
+
p = defn.index(/<!ENTITY.*SYSTEM/mu)
|
52
|
+
if 0 == p then
|
53
|
+
return parseSystemEntityDefinition(defn, internal)
|
54
|
+
end
|
55
|
+
|
56
|
+
p = defn.index(/<!ENTITY.*PUBLIC/mu)
|
57
|
+
if 0 == p then
|
58
|
+
return parsePublicEntityDefinition(defn, internal)
|
59
|
+
end
|
60
|
+
|
61
|
+
p = defn.index(/<!ENTITY/u)
|
62
|
+
if 0 == p then
|
63
|
+
return parseEntityDefinition(defn, internal)
|
64
|
+
end
|
65
|
+
|
66
|
+
p = defn.index(/<\?.*\?>/mu)
|
67
|
+
if 0 == p then
|
68
|
+
return parsePIDefinition(defn, internal)
|
69
|
+
end
|
70
|
+
|
71
|
+
raise sprintf("NOT recognised in the %s subset", (internal ? "internal" : "external"))
|
72
|
+
end
|
73
|
+
|
74
|
+
def parseElementDefinition(defn, internal)
|
75
|
+
#printf("element '%s' internal? %s\n", defn, internal)
|
76
|
+
end
|
77
|
+
|
78
|
+
def parseEntityDefinition(defn, internal)
|
79
|
+
if !internal then
|
80
|
+
raise "unexpected GEDecl"
|
81
|
+
end
|
82
|
+
#printf("entity '%s' internal? %s\n", defn, internal)
|
83
|
+
regex = /<!ENTITY[\n\r\t ]+([^\n\r\t ]+)[\n\r\t ]+"([^"]*)"[\n\r\t ]*>/mu
|
84
|
+
match = defn.match(regex).to_a
|
85
|
+
if 3 != match.length then
|
86
|
+
regex = /<!ENTITY[\n\r\t ]+([^\n\r\t ]+)[\n\r\t ]+'([^']*)'[\n\r\t ]*>/mu
|
87
|
+
match = defn.match(regex).to_a
|
88
|
+
if 3 != match.length then
|
89
|
+
raise sprintf("invalid GEDecl")
|
90
|
+
end
|
91
|
+
#raise sprintf("invalid GEDecl '%s'", defn)
|
92
|
+
end
|
93
|
+
name = match[1]
|
94
|
+
value = match[2]
|
95
|
+
#printf("name [%s] value [%s]\n", name, value)
|
96
|
+
entityMap[name] = value
|
97
|
+
end
|
98
|
+
|
99
|
+
def parseParameterEntityDefinition(defn, internal)
|
100
|
+
#printf("pentity '%s' internal? %s\n", defn, internal)
|
101
|
+
end
|
102
|
+
|
103
|
+
def parsePublicEntityDefinition(defn, internal)
|
104
|
+
#printf("public entity '%s' internal? %s\n", defn, internal)
|
105
|
+
end
|
106
|
+
|
107
|
+
def parseSystemEntityDefinition(defn, internal)
|
108
|
+
#printf("system entity '%s' internal? %s\n", defn, internal)
|
109
|
+
end
|
110
|
+
|
111
|
+
def parseAttlistDefinition(defn, internal)
|
112
|
+
printf("attlist '%s' internal? %s\n", defn, internal)
|
113
|
+
end
|
114
|
+
|
115
|
+
def parseNotationDefinition(defn, internal)
|
116
|
+
#printf("notation '%s' internal? %s\n", defn, internal)
|
117
|
+
end
|
118
|
+
|
119
|
+
def parsePIDefinition(defn, internal)
|
120
|
+
if !internal then
|
121
|
+
raise "unexpected processing instruction"
|
122
|
+
end
|
123
|
+
#printf("PI '%s' internal? %s\n", defn, internal)
|
124
|
+
end
|
125
|
+
|
126
|
+
end
|
data/lib/xampl-pp-wf.rb
ADDED
@@ -0,0 +1,1037 @@
|
|
1
|
+
# xampl-pp : XML pull parser
|
2
|
+
# Copyright (C) 2002-2009 Bob Hutchison
|
3
|
+
#
|
4
|
+
# This library is free software; you can redistribute it and/or
|
5
|
+
# modify it under the terms of the GNU Lesser General Public
|
6
|
+
# License as published by the Free Software Foundation; either
|
7
|
+
# version 2.1 of the License, or (at your option) any later version.
|
8
|
+
#
|
9
|
+
# This library is distributed in the hope that it will be useful,
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
12
|
+
# #Lesser General Public License for more details.
|
13
|
+
#
|
14
|
+
# You should have received a copy of the GNU Lesser General Public
|
15
|
+
# License along with this library; if not, write to the Free Software
|
16
|
+
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
17
|
+
#
|
18
|
+
|
19
|
+
require "xampl-pp-dtd"
|
20
|
+
|
21
|
+
class Xampl_PP
|
22
|
+
alias :nextEventBase :nextEvent
|
23
|
+
alias :setInputBase :setInput
|
24
|
+
alias :encodeBase :encode
|
25
|
+
alias :readBase :read
|
26
|
+
|
27
|
+
def nextEvent
|
28
|
+
begin
|
29
|
+
begin
|
30
|
+
return nextEventBase
|
31
|
+
ensure
|
32
|
+
#IGNORABLE_WHITESPACE
|
33
|
+
#DOCTYPE
|
34
|
+
if nil == @errorMessage then
|
35
|
+
if @unresolvedEntity then
|
36
|
+
raise "unresolvedEntity"
|
37
|
+
end
|
38
|
+
case @type
|
39
|
+
when START_ELEMENT
|
40
|
+
if (0 == @elementName.length) then
|
41
|
+
if @haveRoot then
|
42
|
+
raise "unexpected element"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
legalName
|
46
|
+
@haveRoot = true
|
47
|
+
when END_ELEMENT
|
48
|
+
legalName
|
49
|
+
when COMMENT
|
50
|
+
if nil != @text.index(/--/u) then
|
51
|
+
raise "illegal '--' in comment"
|
52
|
+
end
|
53
|
+
legalText
|
54
|
+
when TEXT
|
55
|
+
if 0 == @elementName.length then
|
56
|
+
raise "text at document level"
|
57
|
+
end
|
58
|
+
legalText
|
59
|
+
when CDATA_SECTION
|
60
|
+
if 0 == @elementName.length then
|
61
|
+
raise "CDATA section at document level"
|
62
|
+
end
|
63
|
+
legalText
|
64
|
+
when ENTITY_REF
|
65
|
+
if 0 == @elementName.length then
|
66
|
+
raise "entity ref at document level"
|
67
|
+
end
|
68
|
+
legalText
|
69
|
+
when END_DOCUMENT
|
70
|
+
if 0 != @elementName.length then
|
71
|
+
raise sprintf("unexpected end of document (%d open elements)",
|
72
|
+
@elementName.length)
|
73
|
+
end
|
74
|
+
if !@haveRoot then
|
75
|
+
raise "unexpected end of document (no element)"
|
76
|
+
end
|
77
|
+
when PROCESSING_INSTRUCTION
|
78
|
+
if @pastXMLDecl and parseXMLDecl then
|
79
|
+
raise "unexpected XMLDecl"
|
80
|
+
end
|
81
|
+
legalText
|
82
|
+
end
|
83
|
+
@pastXMLDecl = true
|
84
|
+
end
|
85
|
+
end
|
86
|
+
rescue Exception => message
|
87
|
+
#print message.backtrace.join("\n")
|
88
|
+
if nil == @errorMessage then
|
89
|
+
if nil != @inputBuffer then
|
90
|
+
@errorMessage = sprintf("parse error: '%s' -- String input, line %d, column %d", message, @line, @column)
|
91
|
+
elsif nil != @input then
|
92
|
+
if @input.kind_of? File then
|
93
|
+
@errorMessage = sprintf("parse error: '%s' -- file '%s', line %d, column %d", message, @input.path, @line, @column)
|
94
|
+
else
|
95
|
+
@errorMessage = sprintf("parse error: '%s' -- unnamed IO stream, line %d, column %d", message, @line, @column)
|
96
|
+
end
|
97
|
+
else
|
98
|
+
@errorMessage = sprintf("parse error: '%s' -- unknown source, line %d, column %d", message, @line, @column)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
raise @errorMessage
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
private
|
106
|
+
|
107
|
+
def setInput(v)
|
108
|
+
@haveRoot = false
|
109
|
+
@pastXMLDecl = false
|
110
|
+
@quickNamePattern = Regexp.new(/^[\x41-\x5A\x61-\x7a_:][\x30-\x39\x41-\x5A\x61-\x7a_:\.\-]*$/, 0, "UTF-8")
|
111
|
+
@quickTextPattern = /^[\x09\x0A\x0D\x20-\x7f]*$/mu
|
112
|
+
setInputBase(v)
|
113
|
+
end
|
114
|
+
|
115
|
+
def legalChar(c)
|
116
|
+
if c < 0x20 then
|
117
|
+
if (c != 0x9) and (c != 0x0A) and (c != 0x0D) then
|
118
|
+
raise "illegal character"
|
119
|
+
end
|
120
|
+
elsif (0xD7FF < c) and (c < 0xE000) then
|
121
|
+
raise "illegal character"
|
122
|
+
elsif (0xFFFD < c) and (c < 0x10000) then
|
123
|
+
raise "illegal character"
|
124
|
+
elsif (0x10FFFF < c) then
|
125
|
+
raise "illegal character"
|
126
|
+
end
|
127
|
+
return c
|
128
|
+
end
|
129
|
+
|
130
|
+
def encode(c)
|
131
|
+
return encodeBase(legalChar(c))
|
132
|
+
end
|
133
|
+
|
134
|
+
def read
|
135
|
+
return legalChar(readBase)
|
136
|
+
end
|
137
|
+
|
138
|
+
def legalText
|
139
|
+
if nil == @text then
|
140
|
+
raise "undefined text"
|
141
|
+
end
|
142
|
+
|
143
|
+
return if 0 == @text.index(@quickTextPattern)
|
144
|
+
|
145
|
+
a = @text.unpack('U*')
|
146
|
+
start = true
|
147
|
+
for c in a
|
148
|
+
legalChar(c)
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
def legalName
|
153
|
+
if nil == @name then
|
154
|
+
raise "undefined element name"
|
155
|
+
end
|
156
|
+
|
157
|
+
return if 0 == @name.index(@quickNamePattern)
|
158
|
+
|
159
|
+
a = @name.unpack('U*')
|
160
|
+
start = true
|
161
|
+
for c in a
|
162
|
+
# NameStart
|
163
|
+
while start do
|
164
|
+
break if (0x0041 <= c) and (c <= 0x005A)
|
165
|
+
break if (0x0061 <= c) and (c <= 0x007A)
|
166
|
+
break if c == ?_
|
167
|
+
break if c == ?:
|
168
|
+
break if (0x00C0 <= c) and (c <= 0x00D6)
|
169
|
+
break if (0x00D8 <= c) and (c <= 0x00F6)
|
170
|
+
break if (0x00F8 <= c) and (c <= 0x00FF)
|
171
|
+
break if (0x0100 <= c) and (c <= 0x0131)
|
172
|
+
break if (0x0134 <= c) and (c <= 0x013E)
|
173
|
+
break if (0x0141 <= c) and (c <= 0x0148)
|
174
|
+
break if (0x014A <= c) and (c <= 0x017E)
|
175
|
+
break if (0x0180 <= c) and (c <= 0x01C3)
|
176
|
+
break if (0x01CD <= c) and (c <= 0x01F0)
|
177
|
+
break if (0x01F4 <= c) and (c <= 0x01F5)
|
178
|
+
break if (0x01FA <= c) and (c <= 0x0217)
|
179
|
+
break if (0x0250 <= c) and (c <= 0x02A8)
|
180
|
+
break if (0x02BB <= c) and (c <= 0x02C1)
|
181
|
+
break if c == 0x0386
|
182
|
+
break if (0x0388 <= c) and (c <= 0x038A)
|
183
|
+
break if c == 0x038C
|
184
|
+
break if (0x038E <= c) and (c <= 0x03A1)
|
185
|
+
break if (0x03A3 <= c) and (c <= 0x03CE)
|
186
|
+
break if (0x03D0 <= c) and (c <= 0x03D6)
|
187
|
+
break if c == 0x03DA
|
188
|
+
break if c == 0x03DC
|
189
|
+
break if c == 0x03DE
|
190
|
+
break if c == 0x03E0
|
191
|
+
break if (0x03E2 <= c) and (c <= 0x03F3)
|
192
|
+
break if (0x0401 <= c) and (c <= 0x040C)
|
193
|
+
break if (0x040E <= c) and (c <= 0x044F)
|
194
|
+
break if (0x0451 <= c) and (c <= 0x045C)
|
195
|
+
break if (0x045E <= c) and (c <= 0x0481)
|
196
|
+
break if (0x0490 <= c) and (c <= 0x04C4)
|
197
|
+
break if (0x04C7 <= c) and (c <= 0x04C8)
|
198
|
+
break if (0x04CB <= c) and (c <= 0x04CC)
|
199
|
+
break if (0x04D0 <= c) and (c <= 0x04EB)
|
200
|
+
break if (0x04EE <= c) and (c <= 0x04F5)
|
201
|
+
break if (0x04F8 <= c) and (c <= 0x04F9)
|
202
|
+
break if (0x0531 <= c) and (c <= 0x0556)
|
203
|
+
break if c == 0x0559
|
204
|
+
break if (0x0561 <= c) and (c <= 0x0586)
|
205
|
+
break if (0x05D0 <= c) and (c <= 0x05EA)
|
206
|
+
break if (0x05F0 <= c) and (c <= 0x05F2)
|
207
|
+
break if (0x0621 <= c) and (c <= 0x063A)
|
208
|
+
break if (0x0641 <= c) and (c <= 0x064A)
|
209
|
+
break if (0x0671 <= c) and (c <= 0x06B7)
|
210
|
+
break if (0x06BA <= c) and (c <= 0x06BE)
|
211
|
+
break if (0x06C0 <= c) and (c <= 0x06CE)
|
212
|
+
break if (0x06D0 <= c) and (c <= 0x06D3)
|
213
|
+
break if c == 0x06D5
|
214
|
+
break if (0x06E5 <= c) and (c <= 0x06E6)
|
215
|
+
break if (0x0905 <= c) and (c <= 0x0939)
|
216
|
+
break if c == 0x093D
|
217
|
+
break if (0x0958 <= c) and (c <= 0x0961)
|
218
|
+
break if (0x0985 <= c) and (c <= 0x098C)
|
219
|
+
break if (0x098F <= c) and (c <= 0x0990)
|
220
|
+
break if (0x0993 <= c) and (c <= 0x09A8)
|
221
|
+
break if (0x09AA <= c) and (c <= 0x09B0)
|
222
|
+
break if c == 0x09B2
|
223
|
+
break if (0x09B6 <= c) and (c <= 0x09B9)
|
224
|
+
break if (0x09DC <= c) and (c <= 0x09DD)
|
225
|
+
break if (0x09DF <= c) and (c <= 0x09E1)
|
226
|
+
break if (0x09F0 <= c) and (c <= 0x09F1)
|
227
|
+
break if (0x0A05 <= c) and (c <= 0x0A0A)
|
228
|
+
break if (0x0A0F <= c) and (c <= 0x0A10)
|
229
|
+
break if (0x0A13 <= c) and (c <= 0x0A28)
|
230
|
+
break if (0x0A2A <= c) and (c <= 0x0A30)
|
231
|
+
break if (0x0A32 <= c) and (c <= 0x0A33)
|
232
|
+
break if (0x0A35 <= c) and (c <= 0x0A36)
|
233
|
+
break if (0x0A38 <= c) and (c <= 0x0A39)
|
234
|
+
break if (0x0A59 <= c) and (c <= 0x0A5C)
|
235
|
+
break if c == 0x0A5E
|
236
|
+
break if (0x0A72 <= c) and (c <= 0x0A74)
|
237
|
+
break if (0x0A85 <= c) and (c <= 0x0A8B)
|
238
|
+
break if c == 0x0A8D
|
239
|
+
break if (0x0A8F <= c) and (c <= 0x0A91)
|
240
|
+
break if (0x0A93 <= c) and (c <= 0x0AA8)
|
241
|
+
break if (0x0AAA <= c) and (c <= 0x0AB0)
|
242
|
+
break if (0x0AB2 <= c) and (c <= 0x0AB3)
|
243
|
+
break if (0x0AB5 <= c) and (c <= 0x0AB9)
|
244
|
+
break if c == 0x0ABD
|
245
|
+
break if c == 0x0AE0
|
246
|
+
break if (0x0B05 <= c) and (c <= 0x0B0C)
|
247
|
+
break if (0x0B0F <= c) and (c <= 0x0B10)
|
248
|
+
break if (0x0B13 <= c) and (c <= 0x0B28)
|
249
|
+
break if (0x0B2A <= c) and (c <= 0x0B30)
|
250
|
+
break if (0x0B32 <= c) and (c <= 0x0B33)
|
251
|
+
break if (0x0B36 <= c) and (c <= 0x0B39)
|
252
|
+
break if c == 0x0B3D
|
253
|
+
break if (0x0B5C <= c) and (c <= 0x0B5D)
|
254
|
+
break if (0x0B5F <= c) and (c <= 0x0B61)
|
255
|
+
break if (0x0B85 <= c) and (c <= 0x0B8A)
|
256
|
+
break if (0x0B8E <= c) and (c <= 0x0B90)
|
257
|
+
break if (0x0B92 <= c) and (c <= 0x0B95)
|
258
|
+
break if (0x0B99 <= c) and (c <= 0x0B9A)
|
259
|
+
break if c == 0x0B9C
|
260
|
+
break if (0x0B9E <= c) and (c <= 0x0B9F)
|
261
|
+
break if (0x0BA3 <= c) and (c <= 0x0BA4)
|
262
|
+
break if (0x0BA8 <= c) and (c <= 0x0BAA)
|
263
|
+
break if (0x0BAE <= c) and (c <= 0x0BB5)
|
264
|
+
break if (0x0BB7 <= c) and (c <= 0x0BB9)
|
265
|
+
break if (0x0C05 <= c) and (c <= 0x0C0C)
|
266
|
+
break if (0x0C0E <= c) and (c <= 0x0C10)
|
267
|
+
break if (0x0C12 <= c) and (c <= 0x0C28)
|
268
|
+
break if (0x0C2A <= c) and (c <= 0x0C33)
|
269
|
+
break if (0x0C35 <= c) and (c <= 0x0C39)
|
270
|
+
break if (0x0C60 <= c) and (c <= 0x0C61)
|
271
|
+
break if (0x0C85 <= c) and (c <= 0x0C8C)
|
272
|
+
break if (0x0C8E <= c) and (c <= 0x0C90)
|
273
|
+
break if (0x0C92 <= c) and (c <= 0x0CA8)
|
274
|
+
break if (0x0CAA <= c) and (c <= 0x0CB3)
|
275
|
+
break if (0x0CB5 <= c) and (c <= 0x0CB9)
|
276
|
+
break if c == 0x0CDE
|
277
|
+
break if (0x0CE0 <= c) and (c <= 0x0CE1)
|
278
|
+
break if (0x0D05 <= c) and (c <= 0x0D0C)
|
279
|
+
break if (0x0D0E <= c) and (c <= 0x0D10)
|
280
|
+
break if (0x0D12 <= c) and (c <= 0x0D28)
|
281
|
+
break if (0x0D2A <= c) and (c <= 0x0D39)
|
282
|
+
break if (0x0D60 <= c) and (c <= 0x0D61)
|
283
|
+
break if (0x0E01 <= c) and (c <= 0x0E2E)
|
284
|
+
break if c == 0x0E30
|
285
|
+
break if (0x0E32 <= c) and (c <= 0x0E33)
|
286
|
+
break if (0x0E40 <= c) and (c <= 0x0E45)
|
287
|
+
break if (0x0E81 <= c) and (c <= 0x0E82)
|
288
|
+
break if c == 0x0E84
|
289
|
+
break if (0x0E87 <= c) and (c <= 0x0E88)
|
290
|
+
break if c == 0x0E8A
|
291
|
+
break if c == 0x0E8D
|
292
|
+
break if (0x0E94 <= c) and (c <= 0x0E97)
|
293
|
+
break if (0x0E99 <= c) and (c <= 0x0E9F)
|
294
|
+
break if (0x0EA1 <= c) and (c <= 0x0EA3)
|
295
|
+
break if c == 0x0EA5
|
296
|
+
break if c == 0x0EA7
|
297
|
+
break if (0x0EAA <= c) and (c <= 0x0EAB)
|
298
|
+
break if (0x0EAD <= c) and (c <= 0x0EAE)
|
299
|
+
break if c == 0x0EB0
|
300
|
+
break if (0x0EB2 <= c) and (c <= 0x0EB3)
|
301
|
+
break if c == 0x0EBD
|
302
|
+
break if (0x0EC0 <= c) and (c <= 0x0EC4)
|
303
|
+
break if (0x0F40 <= c) and (c <= 0x0F47)
|
304
|
+
break if (0x0F49 <= c) and (c <= 0x0F69)
|
305
|
+
break if (0x10A0 <= c) and (c <= 0x10C5)
|
306
|
+
break if (0x10D0 <= c) and (c <= 0x10F6)
|
307
|
+
break if c == 0x1100
|
308
|
+
break if (0x1102 <= c) and (c <= 0x1103)
|
309
|
+
break if (0x1105 <= c) and (c <= 0x1107)
|
310
|
+
break if c == 0x1109
|
311
|
+
break if (0x110B <= c) and (c <= 0x110C)
|
312
|
+
break if (0x110E <= c) and (c <= 0x1112)
|
313
|
+
break if c == 0x113C
|
314
|
+
break if c == 0x113E
|
315
|
+
break if c == 0x1140
|
316
|
+
break if c == 0x114C
|
317
|
+
break if c == 0x114E
|
318
|
+
break if c == 0x1150
|
319
|
+
break if (0x1154 <= c) and (c <= 0x1155)
|
320
|
+
break if c == 0x1159
|
321
|
+
break if (0x115F <= c) and (c <= 0x1161)
|
322
|
+
break if c == 0x1163
|
323
|
+
break if c == 0x1165
|
324
|
+
break if c == 0x1167
|
325
|
+
break if c == 0x1169
|
326
|
+
break if (0x116D <= c) and (c <= 0x116E)
|
327
|
+
break if (0x1172 <= c) and (c <= 0x1173)
|
328
|
+
break if c == 0x1175
|
329
|
+
break if c == 0x119E
|
330
|
+
break if c == 0x11A8
|
331
|
+
break if c == 0x11AB
|
332
|
+
break if (0x11AE <= c) and (c <= 0x11AF)
|
333
|
+
break if (0x11B7 <= c) and (c <= 0x11B8)
|
334
|
+
break if c == 0x11BA
|
335
|
+
break if (0x11BC <= c) and (c <= 0x11C2)
|
336
|
+
break if c == 0x11EB
|
337
|
+
break if c == 0x11F0
|
338
|
+
break if c == 0x11F9
|
339
|
+
break if (0x1E00 <= c) and (c <= 0x1E9B)
|
340
|
+
break if (0x1EA0 <= c) and (c <= 0x1EF9)
|
341
|
+
break if (0x1F00 <= c) and (c <= 0x1F15)
|
342
|
+
break if (0x1F18 <= c) and (c <= 0x1F1D)
|
343
|
+
break if (0x1F20 <= c) and (c <= 0x1F45)
|
344
|
+
break if (0x1F48 <= c) and (c <= 0x1F4D)
|
345
|
+
break if (0x1F50 <= c) and (c <= 0x1F57)
|
346
|
+
break if c == 0x1F59
|
347
|
+
break if c == 0x1F5B
|
348
|
+
break if c == 0x1F5D
|
349
|
+
break if (0x1F5F <= c) and (c <= 0x1F7D)
|
350
|
+
break if (0x1F80 <= c) and (c <= 0x1FB4)
|
351
|
+
break if (0x1FB6 <= c) and (c <= 0x1FBC)
|
352
|
+
break if c == 0x1FBE
|
353
|
+
break if (0x1FC2 <= c) and (c <= 0x1FC4)
|
354
|
+
break if (0x1FC6 <= c) and (c <= 0x1FCC)
|
355
|
+
break if (0x1FD0 <= c) and (c <= 0x1FD3)
|
356
|
+
break if (0x1FD6 <= c) and (c <= 0x1FDB)
|
357
|
+
break if (0x1FE0 <= c) and (c <= 0x1FEC)
|
358
|
+
break if (0x1FF2 <= c) and (c <= 0x1FF4)
|
359
|
+
break if (0x1FF6 <= c) and (c <= 0x1FFC)
|
360
|
+
break if c == 0x2126
|
361
|
+
break if (0x212A <= c) and (c <= 0x212B)
|
362
|
+
break if c == 0x212E
|
363
|
+
break if (0x2180 <= c) and (c <= 0x2182)
|
364
|
+
break if c == 0x3007
|
365
|
+
break if (0x3021 <= c) and (c <= 0x3029)
|
366
|
+
break if (0x3041 <= c) and (c <= 0x3094)
|
367
|
+
break if (0x30A1 <= c) and (c <= 0x30FA)
|
368
|
+
break if (0x3105 <= c) and (c <= 0x312C)
|
369
|
+
break if (0x4E00 <= c) and (c <= 0x9FA5)
|
370
|
+
break if (0xAC00 <= c) and (c <= 0xD7A3)
|
371
|
+
break if (0x0030 <= c) and (c <= 0x0039)
|
372
|
+
break if (0x0041 <= c) and (c <= 0x005A)
|
373
|
+
break if (0x0061 <= c) and (c <= 0x007A)
|
374
|
+
break if c == 0x00B7
|
375
|
+
break if (0x00C0 <= c) and (c <= 0x00D6)
|
376
|
+
break if (0x00D8 <= c) and (c <= 0x00F6)
|
377
|
+
break if (0x00F8 <= c) and (c <= 0x00FF)
|
378
|
+
break if (0x0100 <= c) and (c <= 0x0131)
|
379
|
+
break if (0x0134 <= c) and (c <= 0x013E)
|
380
|
+
break if (0x0141 <= c) and (c <= 0x0148)
|
381
|
+
break if (0x014A <= c) and (c <= 0x017E)
|
382
|
+
break if (0x0180 <= c) and (c <= 0x01C3)
|
383
|
+
break if (0x01CD <= c) and (c <= 0x01F0)
|
384
|
+
break if (0x01F4 <= c) and (c <= 0x01F5)
|
385
|
+
break if (0x01FA <= c) and (c <= 0x0217)
|
386
|
+
break if (0x0250 <= c) and (c <= 0x02A8)
|
387
|
+
break if (0x02BB <= c) and (c <= 0x02C1)
|
388
|
+
break if c == 0x02D0
|
389
|
+
break if c == 0x02D1
|
390
|
+
break if (0x0300 <= c) and (c <= 0x0345)
|
391
|
+
break if (0x0360 <= c) and (c <= 0x0361)
|
392
|
+
break if c == 0x0386
|
393
|
+
break if c == 0x0387
|
394
|
+
break if (0x0388 <= c) and (c <= 0x038A)
|
395
|
+
break if c == 0x038C
|
396
|
+
break if (0x038E <= c) and (c <= 0x03A1)
|
397
|
+
break if (0x03A3 <= c) and (c <= 0x03CE)
|
398
|
+
break if (0x03D0 <= c) and (c <= 0x03D6)
|
399
|
+
break if c == 0x03DA
|
400
|
+
break if c == 0x03DC
|
401
|
+
break if c == 0x03DE
|
402
|
+
break if c == 0x03E0
|
403
|
+
break if (0x03E2 <= c) and (c <= 0x03F3)
|
404
|
+
break if (0x0401 <= c) and (c <= 0x040C)
|
405
|
+
break if (0x040E <= c) and (c <= 0x044F)
|
406
|
+
break if (0x0451 <= c) and (c <= 0x045C)
|
407
|
+
break if (0x045E <= c) and (c <= 0x0481)
|
408
|
+
break if (0x0483 <= c) and (c <= 0x0486)
|
409
|
+
break if (0x0490 <= c) and (c <= 0x04C4)
|
410
|
+
break if (0x04C7 <= c) and (c <= 0x04C8)
|
411
|
+
break if (0x04CB <= c) and (c <= 0x04CC)
|
412
|
+
break if (0x04D0 <= c) and (c <= 0x04EB)
|
413
|
+
break if (0x04EE <= c) and (c <= 0x04F5)
|
414
|
+
break if (0x04F8 <= c) and (c <= 0x04F9)
|
415
|
+
break if (0x0531 <= c) and (c <= 0x0556)
|
416
|
+
break if c == 0x0559
|
417
|
+
break if (0x0561 <= c) and (c <= 0x0586)
|
418
|
+
break if (0x0591 <= c) and (c <= 0x05A1)
|
419
|
+
break if (0x05A3 <= c) and (c <= 0x05B9)
|
420
|
+
break if (0x05BB <= c) and (c <= 0x05BD)
|
421
|
+
break if c == 0x05BF
|
422
|
+
break if (0x05C1 <= c) and (c <= 0x05C2)
|
423
|
+
break if c == 0x05C4
|
424
|
+
break if (0x05D0 <= c) and (c <= 0x05EA)
|
425
|
+
break if (0x05F0 <= c) and (c <= 0x05F2)
|
426
|
+
break if (0x0621 <= c) and (c <= 0x063A)
|
427
|
+
break if c == 0x0640
|
428
|
+
break if (0x0641 <= c) and (c <= 0x064A)
|
429
|
+
break if (0x064B <= c) and (c <= 0x0652)
|
430
|
+
break if (0x0660 <= c) and (c <= 0x0669)
|
431
|
+
break if c == 0x0670
|
432
|
+
break if (0x0671 <= c) and (c <= 0x06B7)
|
433
|
+
break if (0x06BA <= c) and (c <= 0x06BE)
|
434
|
+
break if (0x06C0 <= c) and (c <= 0x06CE)
|
435
|
+
break if (0x06D0 <= c) and (c <= 0x06D3)
|
436
|
+
break if c == 0x06D5
|
437
|
+
break if (0x06D6 <= c) and (c <= 0x06DC)
|
438
|
+
break if (0x06DD <= c) and (c <= 0x06DF)
|
439
|
+
break if (0x06E0 <= c) and (c <= 0x06E4)
|
440
|
+
break if (0x06E5 <= c) and (c <= 0x06E6)
|
441
|
+
break if (0x06E7 <= c) and (c <= 0x06E8)
|
442
|
+
break if (0x06EA <= c) and (c <= 0x06ED)
|
443
|
+
break if (0x06F0 <= c) and (c <= 0x06F9)
|
444
|
+
break if (0x0901 <= c) and (c <= 0x0903)
|
445
|
+
break if (0x0905 <= c) and (c <= 0x0939)
|
446
|
+
break if c == 0x093C
|
447
|
+
break if c == 0x093D
|
448
|
+
break if (0x093E <= c) and (c <= 0x094C)
|
449
|
+
break if c == 0x094D
|
450
|
+
break if (0x0951 <= c) and (c <= 0x0954)
|
451
|
+
break if (0x0958 <= c) and (c <= 0x0961)
|
452
|
+
break if (0x0962 <= c) and (c <= 0x0963)
|
453
|
+
break if (0x0966 <= c) and (c <= 0x096F)
|
454
|
+
break if (0x0981 <= c) and (c <= 0x0983)
|
455
|
+
break if (0x0985 <= c) and (c <= 0x098C)
|
456
|
+
break if (0x098F <= c) and (c <= 0x0990)
|
457
|
+
break if (0x0993 <= c) and (c <= 0x09A8)
|
458
|
+
break if (0x09AA <= c) and (c <= 0x09B0)
|
459
|
+
break if c == 0x09B2
|
460
|
+
break if (0x09B6 <= c) and (c <= 0x09B9)
|
461
|
+
break if c == 0x09BC
|
462
|
+
break if c == 0x09BE
|
463
|
+
break if c == 0x09BF
|
464
|
+
break if (0x09C0 <= c) and (c <= 0x09C4)
|
465
|
+
break if (0x09C7 <= c) and (c <= 0x09C8)
|
466
|
+
break if (0x09CB <= c) and (c <= 0x09CD)
|
467
|
+
break if c == 0x09D7
|
468
|
+
break if (0x09DC <= c) and (c <= 0x09DD)
|
469
|
+
break if (0x09DF <= c) and (c <= 0x09E1)
|
470
|
+
break if (0x09E2 <= c) and (c <= 0x09E3)
|
471
|
+
break if (0x09E6 <= c) and (c <= 0x09EF)
|
472
|
+
break if (0x09F0 <= c) and (c <= 0x09F1)
|
473
|
+
break if c == 0x0A02
|
474
|
+
break if (0x0A05 <= c) and (c <= 0x0A0A)
|
475
|
+
break if (0x0A0F <= c) and (c <= 0x0A10)
|
476
|
+
break if (0x0A13 <= c) and (c <= 0x0A28)
|
477
|
+
break if (0x0A2A <= c) and (c <= 0x0A30)
|
478
|
+
break if (0x0A32 <= c) and (c <= 0x0A33)
|
479
|
+
break if (0x0A35 <= c) and (c <= 0x0A36)
|
480
|
+
break if (0x0A38 <= c) and (c <= 0x0A39)
|
481
|
+
break if c == 0x0A3C
|
482
|
+
break if c == 0x0A3E
|
483
|
+
break if c == 0x0A3F
|
484
|
+
break if (0x0A40 <= c) and (c <= 0x0A42)
|
485
|
+
break if (0x0A47 <= c) and (c <= 0x0A48)
|
486
|
+
break if (0x0A4B <= c) and (c <= 0x0A4D)
|
487
|
+
break if (0x0A59 <= c) and (c <= 0x0A5C)
|
488
|
+
break if c == 0x0A5E
|
489
|
+
break if (0x0A66 <= c) and (c <= 0x0A6F)
|
490
|
+
break if (0x0A70 <= c) and (c <= 0x0A71)
|
491
|
+
break if (0x0A72 <= c) and (c <= 0x0A74)
|
492
|
+
break if (0x0A81 <= c) and (c <= 0x0A83)
|
493
|
+
break if (0x0A85 <= c) and (c <= 0x0A8B)
|
494
|
+
break if c == 0x0A8D
|
495
|
+
break if (0x0A8F <= c) and (c <= 0x0A91)
|
496
|
+
break if (0x0A93 <= c) and (c <= 0x0AA8)
|
497
|
+
break if (0x0AAA <= c) and (c <= 0x0AB0)
|
498
|
+
break if (0x0AB2 <= c) and (c <= 0x0AB3)
|
499
|
+
break if (0x0AB5 <= c) and (c <= 0x0AB9)
|
500
|
+
break if c == 0x0ABC
|
501
|
+
break if c == 0x0ABD
|
502
|
+
break if (0x0ABE <= c) and (c <= 0x0AC5)
|
503
|
+
break if (0x0AC7 <= c) and (c <= 0x0AC9)
|
504
|
+
break if (0x0ACB <= c) and (c <= 0x0ACD)
|
505
|
+
break if c == 0x0AE0
|
506
|
+
break if (0x0AE6 <= c) and (c <= 0x0AEF)
|
507
|
+
break if (0x0B01 <= c) and (c <= 0x0B03)
|
508
|
+
break if (0x0B05 <= c) and (c <= 0x0B0C)
|
509
|
+
break if (0x0B0F <= c) and (c <= 0x0B10)
|
510
|
+
break if (0x0B13 <= c) and (c <= 0x0B28)
|
511
|
+
break if (0x0B2A <= c) and (c <= 0x0B30)
|
512
|
+
break if (0x0B32 <= c) and (c <= 0x0B33)
|
513
|
+
break if (0x0B36 <= c) and (c <= 0x0B39)
|
514
|
+
break if c == 0x0B3C
|
515
|
+
break if c == 0x0B3D
|
516
|
+
break if (0x0B3E <= c) and (c <= 0x0B43)
|
517
|
+
break if (0x0B47 <= c) and (c <= 0x0B48)
|
518
|
+
break if (0x0B4B <= c) and (c <= 0x0B4D)
|
519
|
+
break if (0x0B56 <= c) and (c <= 0x0B57)
|
520
|
+
break if (0x0B5C <= c) and (c <= 0x0B5D)
|
521
|
+
break if (0x0B5F <= c) and (c <= 0x0B61)
|
522
|
+
break if (0x0B66 <= c) and (c <= 0x0B6F)
|
523
|
+
break if (0x0B82 <= c) and (c <= 0x0B83)
|
524
|
+
break if (0x0B85 <= c) and (c <= 0x0B8A)
|
525
|
+
break if (0x0B8E <= c) and (c <= 0x0B90)
|
526
|
+
break if (0x0B92 <= c) and (c <= 0x0B95)
|
527
|
+
break if (0x0B99 <= c) and (c <= 0x0B9A)
|
528
|
+
break if c == 0x0B9C
|
529
|
+
break if (0x0B9E <= c) and (c <= 0x0B9F)
|
530
|
+
break if (0x0BA3 <= c) and (c <= 0x0BA4)
|
531
|
+
break if (0x0BA8 <= c) and (c <= 0x0BAA)
|
532
|
+
break if (0x0BAE <= c) and (c <= 0x0BB5)
|
533
|
+
break if (0x0BB7 <= c) and (c <= 0x0BB9)
|
534
|
+
break if (0x0BBE <= c) and (c <= 0x0BC2)
|
535
|
+
break if (0x0BC6 <= c) and (c <= 0x0BC8)
|
536
|
+
break if (0x0BCA <= c) and (c <= 0x0BCD)
|
537
|
+
break if c == 0x0BD7
|
538
|
+
break if (0x0BE7 <= c) and (c <= 0x0BEF)
|
539
|
+
break if (0x0C01 <= c) and (c <= 0x0C03)
|
540
|
+
break if (0x0C05 <= c) and (c <= 0x0C0C)
|
541
|
+
break if (0x0C0E <= c) and (c <= 0x0C10)
|
542
|
+
break if (0x0C12 <= c) and (c <= 0x0C28)
|
543
|
+
break if (0x0C2A <= c) and (c <= 0x0C33)
|
544
|
+
break if (0x0C35 <= c) and (c <= 0x0C39)
|
545
|
+
break if (0x0C3E <= c) and (c <= 0x0C44)
|
546
|
+
break if (0x0C46 <= c) and (c <= 0x0C48)
|
547
|
+
break if (0x0C4A <= c) and (c <= 0x0C4D)
|
548
|
+
break if (0x0C55 <= c) and (c <= 0x0C56)
|
549
|
+
break if (0x0C60 <= c) and (c <= 0x0C61)
|
550
|
+
break if (0x0C66 <= c) and (c <= 0x0C6F)
|
551
|
+
break if (0x0C82 <= c) and (c <= 0x0C83)
|
552
|
+
break if (0x0C85 <= c) and (c <= 0x0C8C)
|
553
|
+
break if (0x0C8E <= c) and (c <= 0x0C90)
|
554
|
+
break if (0x0C92 <= c) and (c <= 0x0CA8)
|
555
|
+
break if (0x0CAA <= c) and (c <= 0x0CB3)
|
556
|
+
break if (0x0CB5 <= c) and (c <= 0x0CB9)
|
557
|
+
break if (0x0CBE <= c) and (c <= 0x0CC4)
|
558
|
+
break if (0x0CC6 <= c) and (c <= 0x0CC8)
|
559
|
+
break if (0x0CCA <= c) and (c <= 0x0CCD)
|
560
|
+
break if (0x0CD5 <= c) and (c <= 0x0CD6)
|
561
|
+
break if c == 0x0CDE
|
562
|
+
break if (0x0CE0 <= c) and (c <= 0x0CE1)
|
563
|
+
break if (0x0CE6 <= c) and (c <= 0x0CEF)
|
564
|
+
break if (0x0D02 <= c) and (c <= 0x0D03)
|
565
|
+
break if (0x0D05 <= c) and (c <= 0x0D0C)
|
566
|
+
break if (0x0D0E <= c) and (c <= 0x0D10)
|
567
|
+
break if (0x0D12 <= c) and (c <= 0x0D28)
|
568
|
+
break if (0x0D2A <= c) and (c <= 0x0D39)
|
569
|
+
break if (0x0D3E <= c) and (c <= 0x0D43)
|
570
|
+
break if (0x0D46 <= c) and (c <= 0x0D48)
|
571
|
+
break if (0x0D4A <= c) and (c <= 0x0D4D)
|
572
|
+
break if c == 0x0D57
|
573
|
+
break if (0x0D60 <= c) and (c <= 0x0D61)
|
574
|
+
break if (0x0D66 <= c) and (c <= 0x0D6F)
|
575
|
+
break if (0x0E01 <= c) and (c <= 0x0E2E)
|
576
|
+
break if c == 0x0E30
|
577
|
+
break if c == 0x0E31
|
578
|
+
break if (0x0E32 <= c) and (c <= 0x0E33)
|
579
|
+
break if (0x0E34 <= c) and (c <= 0x0E3A)
|
580
|
+
break if (0x0E40 <= c) and (c <= 0x0E45)
|
581
|
+
break if c == 0x0E46
|
582
|
+
break if (0x0E47 <= c) and (c <= 0x0E4E)
|
583
|
+
break if (0x0E50 <= c) and (c <= 0x0E59)
|
584
|
+
break if (0x0E81 <= c) and (c <= 0x0E82)
|
585
|
+
break if c == 0x0E84
|
586
|
+
break if (0x0E87 <= c) and (c <= 0x0E88)
|
587
|
+
break if c == 0x0E8A
|
588
|
+
break if c == 0x0E8D
|
589
|
+
break if (0x0E94 <= c) and (c <= 0x0E97)
|
590
|
+
break if (0x0E99 <= c) and (c <= 0x0E9F)
|
591
|
+
break if (0x0EA1 <= c) and (c <= 0x0EA3)
|
592
|
+
break if c == 0x0EA5
|
593
|
+
break if c == 0x0EA7
|
594
|
+
break if (0x0EAA <= c) and (c <= 0x0EAB)
|
595
|
+
break if (0x0EAD <= c) and (c <= 0x0EAE)
|
596
|
+
break if c == 0x0EB0
|
597
|
+
break if c == 0x0EB1
|
598
|
+
break if (0x0EB2 <= c) and (c <= 0x0EB3)
|
599
|
+
break if (0x0EB4 <= c) and (c <= 0x0EB9)
|
600
|
+
break if (0x0EBB <= c) and (c <= 0x0EBC)
|
601
|
+
break if c == 0x0EBD
|
602
|
+
break if (0x0EC0 <= c) and (c <= 0x0EC4)
|
603
|
+
break if c == 0x0EC6
|
604
|
+
break if (0x0EC8 <= c) and (c <= 0x0ECD)
|
605
|
+
break if (0x0ED0 <= c) and (c <= 0x0ED9)
|
606
|
+
break if (0x0F18 <= c) and (c <= 0x0F19)
|
607
|
+
break if (0x0F20 <= c) and (c <= 0x0F29)
|
608
|
+
break if c == 0x0F35
|
609
|
+
break if c == 0x0F37
|
610
|
+
break if c == 0x0F39
|
611
|
+
break if c == 0x0F3E
|
612
|
+
break if c == 0x0F3F
|
613
|
+
break if (0x0F40 <= c) and (c <= 0x0F47)
|
614
|
+
break if (0x0F49 <= c) and (c <= 0x0F69)
|
615
|
+
break if (0x0F71 <= c) and (c <= 0x0F84)
|
616
|
+
break if (0x0F86 <= c) and (c <= 0x0F8B)
|
617
|
+
break if (0x0F90 <= c) and (c <= 0x0F95)
|
618
|
+
break if c == 0x0F97
|
619
|
+
break if (0x0F99 <= c) and (c <= 0x0FAD)
|
620
|
+
break if (0x0FB1 <= c) and (c <= 0x0FB7)
|
621
|
+
break if c == 0x0FB9
|
622
|
+
break if (0x10A0 <= c) and (c <= 0x10C5)
|
623
|
+
break if (0x10D0 <= c) and (c <= 0x10F6)
|
624
|
+
break if c == 0x1100
|
625
|
+
break if (0x1102 <= c) and (c <= 0x1103)
|
626
|
+
break if (0x1105 <= c) and (c <= 0x1107)
|
627
|
+
break if c == 0x1109
|
628
|
+
break if (0x110B <= c) and (c <= 0x110C)
|
629
|
+
break if (0x110E <= c) and (c <= 0x1112)
|
630
|
+
break if c == 0x113C
|
631
|
+
break if c == 0x113E
|
632
|
+
break if c == 0x1140
|
633
|
+
break if c == 0x114C
|
634
|
+
break if c == 0x114E
|
635
|
+
break if c == 0x1150
|
636
|
+
break if (0x1154 <= c) and (c <= 0x1155)
|
637
|
+
break if c == 0x1159
|
638
|
+
break if (0x115F <= c) and (c <= 0x1161)
|
639
|
+
break if c == 0x1163
|
640
|
+
break if c == 0x1165
|
641
|
+
break if c == 0x1167
|
642
|
+
break if c == 0x1169
|
643
|
+
break if (0x116D <= c) and (c <= 0x116E)
|
644
|
+
break if (0x1172 <= c) and (c <= 0x1173)
|
645
|
+
break if c == 0x1175
|
646
|
+
break if c == 0x119E
|
647
|
+
break if c == 0x11A8
|
648
|
+
break if c == 0x11AB
|
649
|
+
break if (0x11AE <= c) and (c <= 0x11AF)
|
650
|
+
break if (0x11B7 <= c) and (c <= 0x11B8)
|
651
|
+
break if c == 0x11BA
|
652
|
+
break if (0x11BC <= c) and (c <= 0x11C2)
|
653
|
+
break if c == 0x11EB
|
654
|
+
break if c == 0x11F0
|
655
|
+
break if c == 0x11F9
|
656
|
+
break if (0x1E00 <= c) and (c <= 0x1E9B)
|
657
|
+
break if (0x1EA0 <= c) and (c <= 0x1EF9)
|
658
|
+
break if (0x1F00 <= c) and (c <= 0x1F15)
|
659
|
+
break if (0x1F18 <= c) and (c <= 0x1F1D)
|
660
|
+
break if (0x1F20 <= c) and (c <= 0x1F45)
|
661
|
+
break if (0x1F48 <= c) and (c <= 0x1F4D)
|
662
|
+
break if (0x1F50 <= c) and (c <= 0x1F57)
|
663
|
+
break if c == 0x1F59
|
664
|
+
break if c == 0x1F5B
|
665
|
+
break if c == 0x1F5D
|
666
|
+
break if (0x1F5F <= c) and (c <= 0x1F7D)
|
667
|
+
break if (0x1F80 <= c) and (c <= 0x1FB4)
|
668
|
+
break if (0x1FB6 <= c) and (c <= 0x1FBC)
|
669
|
+
break if c == 0x1FBE
|
670
|
+
break if (0x1FC2 <= c) and (c <= 0x1FC4)
|
671
|
+
break if (0x1FC6 <= c) and (c <= 0x1FCC)
|
672
|
+
break if (0x1FD0 <= c) and (c <= 0x1FD3)
|
673
|
+
break if (0x1FD6 <= c) and (c <= 0x1FDB)
|
674
|
+
break if (0x1FE0 <= c) and (c <= 0x1FEC)
|
675
|
+
break if (0x1FF2 <= c) and (c <= 0x1FF4)
|
676
|
+
break if (0x1FF6 <= c) and (c <= 0x1FFC)
|
677
|
+
break if (0x20D0 <= c) and (c <= 0x20DC)
|
678
|
+
break if c == 0x20E1
|
679
|
+
break if c == 0x2126
|
680
|
+
break if (0x212A <= c) and (c <= 0x212B)
|
681
|
+
break if c == 0x212E
|
682
|
+
break if (0x2180 <= c) and (c <= 0x2182)
|
683
|
+
break if c == 0x3005
|
684
|
+
break if c == 0x3007
|
685
|
+
break if (0x3021 <= c) and (c <= 0x3029)
|
686
|
+
break if (0x302A <= c) and (c <= 0x302F)
|
687
|
+
break if (0x3031 <= c) and (c <= 0x3035)
|
688
|
+
break if (0x3041 <= c) and (c <= 0x3094)
|
689
|
+
break if c == 0x3099
|
690
|
+
break if c == 0x309A
|
691
|
+
break if (0x309D <= c) and (c <= 0x309E)
|
692
|
+
break if (0x30A1 <= c) and (c <= 0x30FA)
|
693
|
+
break if (0x30FC <= c) and (c <= 0x30FE)
|
694
|
+
break if (0x3105 <= c) and (c <= 0x312C)
|
695
|
+
break if (0x4E00 <= c) and (c <= 0x9FA5)
|
696
|
+
break if (0xAC00 <= c) and (c <= 0xD7A3)
|
697
|
+
raise "illegal name start character"
|
698
|
+
end
|
699
|
+
start = false
|
700
|
+
|
701
|
+
#while true do
|
702
|
+
next if (0x0030 <= c) and (c <= 0x0039)
|
703
|
+
next if (0x0041 <= c) and (c <= 0x005A)
|
704
|
+
next if (0x0061 <= c) and (c <= 0x007A)
|
705
|
+
next if c == ?.
|
706
|
+
next if c == ?-
|
707
|
+
next if c == ?_
|
708
|
+
next if c == ?:
|
709
|
+
next if c == 0x00B7
|
710
|
+
next if (0x00C0 <= c) and (c <= 0x00D6)
|
711
|
+
next if (0x00D8 <= c) and (c <= 0x00F6)
|
712
|
+
next if (0x00F8 <= c) and (c <= 0x00FF)
|
713
|
+
next if (0x0100 <= c) and (c <= 0x0131)
|
714
|
+
next if (0x0134 <= c) and (c <= 0x013E)
|
715
|
+
next if (0x0141 <= c) and (c <= 0x0148)
|
716
|
+
next if (0x014A <= c) and (c <= 0x017E)
|
717
|
+
next if (0x0180 <= c) and (c <= 0x01C3)
|
718
|
+
next if (0x01CD <= c) and (c <= 0x01F0)
|
719
|
+
next if (0x01F4 <= c) and (c <= 0x01F5)
|
720
|
+
next if (0x01FA <= c) and (c <= 0x0217)
|
721
|
+
next if (0x0250 <= c) and (c <= 0x02A8)
|
722
|
+
next if (0x02BB <= c) and (c <= 0x02C1)
|
723
|
+
next if c == 0x02D0
|
724
|
+
next if c == 0x02D1
|
725
|
+
next if (0x0300 <= c) and (c <= 0x0345)
|
726
|
+
next if (0x0360 <= c) and (c <= 0x0361)
|
727
|
+
next if c == 0x0386
|
728
|
+
next if c == 0x0387
|
729
|
+
next if (0x0388 <= c) and (c <= 0x038A)
|
730
|
+
next if c == 0x038C
|
731
|
+
next if (0x038E <= c) and (c <= 0x03A1)
|
732
|
+
next if (0x03A3 <= c) and (c <= 0x03CE)
|
733
|
+
next if (0x03D0 <= c) and (c <= 0x03D6)
|
734
|
+
next if c == 0x03DA
|
735
|
+
next if c == 0x03DC
|
736
|
+
next if c == 0x03DE
|
737
|
+
next if c == 0x03E0
|
738
|
+
next if (0x03E2 <= c) and (c <= 0x03F3)
|
739
|
+
next if (0x0401 <= c) and (c <= 0x040C)
|
740
|
+
next if (0x040E <= c) and (c <= 0x044F)
|
741
|
+
next if (0x0451 <= c) and (c <= 0x045C)
|
742
|
+
next if (0x045E <= c) and (c <= 0x0481)
|
743
|
+
next if (0x0483 <= c) and (c <= 0x0486)
|
744
|
+
next if (0x0490 <= c) and (c <= 0x04C4)
|
745
|
+
next if (0x04C7 <= c) and (c <= 0x04C8)
|
746
|
+
next if (0x04CB <= c) and (c <= 0x04CC)
|
747
|
+
next if (0x04D0 <= c) and (c <= 0x04EB)
|
748
|
+
next if (0x04EE <= c) and (c <= 0x04F5)
|
749
|
+
next if (0x04F8 <= c) and (c <= 0x04F9)
|
750
|
+
next if (0x0531 <= c) and (c <= 0x0556)
|
751
|
+
next if c == 0x0559
|
752
|
+
next if (0x0561 <= c) and (c <= 0x0586)
|
753
|
+
next if (0x0591 <= c) and (c <= 0x05A1)
|
754
|
+
next if (0x05A3 <= c) and (c <= 0x05B9)
|
755
|
+
next if (0x05BB <= c) and (c <= 0x05BD)
|
756
|
+
next if c == 0x05BF
|
757
|
+
next if (0x05C1 <= c) and (c <= 0x05C2)
|
758
|
+
next if c == 0x05C4
|
759
|
+
next if (0x05D0 <= c) and (c <= 0x05EA)
|
760
|
+
next if (0x05F0 <= c) and (c <= 0x05F2)
|
761
|
+
next if (0x0621 <= c) and (c <= 0x063A)
|
762
|
+
next if c == 0x0640
|
763
|
+
next if (0x0641 <= c) and (c <= 0x064A)
|
764
|
+
next if (0x064B <= c) and (c <= 0x0652)
|
765
|
+
next if (0x0660 <= c) and (c <= 0x0669)
|
766
|
+
next if c == 0x0670
|
767
|
+
next if (0x0671 <= c) and (c <= 0x06B7)
|
768
|
+
next if (0x06BA <= c) and (c <= 0x06BE)
|
769
|
+
next if (0x06C0 <= c) and (c <= 0x06CE)
|
770
|
+
next if (0x06D0 <= c) and (c <= 0x06D3)
|
771
|
+
next if c == 0x06D5
|
772
|
+
next if (0x06D6 <= c) and (c <= 0x06DC)
|
773
|
+
next if (0x06DD <= c) and (c <= 0x06DF)
|
774
|
+
next if (0x06E0 <= c) and (c <= 0x06E4)
|
775
|
+
next if (0x06E5 <= c) and (c <= 0x06E6)
|
776
|
+
next if (0x06E7 <= c) and (c <= 0x06E8)
|
777
|
+
next if (0x06EA <= c) and (c <= 0x06ED)
|
778
|
+
next if (0x06F0 <= c) and (c <= 0x06F9)
|
779
|
+
next if (0x0901 <= c) and (c <= 0x0903)
|
780
|
+
next if (0x0905 <= c) and (c <= 0x0939)
|
781
|
+
next if c == 0x093C
|
782
|
+
next if c == 0x093D
|
783
|
+
next if (0x093E <= c) and (c <= 0x094C)
|
784
|
+
next if c == 0x094D
|
785
|
+
next if (0x0951 <= c) and (c <= 0x0954)
|
786
|
+
next if (0x0958 <= c) and (c <= 0x0961)
|
787
|
+
next if (0x0962 <= c) and (c <= 0x0963)
|
788
|
+
next if (0x0966 <= c) and (c <= 0x096F)
|
789
|
+
next if (0x0981 <= c) and (c <= 0x0983)
|
790
|
+
next if (0x0985 <= c) and (c <= 0x098C)
|
791
|
+
next if (0x098F <= c) and (c <= 0x0990)
|
792
|
+
next if (0x0993 <= c) and (c <= 0x09A8)
|
793
|
+
next if (0x09AA <= c) and (c <= 0x09B0)
|
794
|
+
next if c == 0x09B2
|
795
|
+
next if (0x09B6 <= c) and (c <= 0x09B9)
|
796
|
+
next if c == 0x09BC
|
797
|
+
next if c == 0x09BE
|
798
|
+
next if c == 0x09BF
|
799
|
+
next if (0x09C0 <= c) and (c <= 0x09C4)
|
800
|
+
next if (0x09C7 <= c) and (c <= 0x09C8)
|
801
|
+
next if (0x09CB <= c) and (c <= 0x09CD)
|
802
|
+
next if c == 0x09D7
|
803
|
+
next if (0x09DC <= c) and (c <= 0x09DD)
|
804
|
+
next if (0x09DF <= c) and (c <= 0x09E1)
|
805
|
+
next if (0x09E2 <= c) and (c <= 0x09E3)
|
806
|
+
next if (0x09E6 <= c) and (c <= 0x09EF)
|
807
|
+
next if (0x09F0 <= c) and (c <= 0x09F1)
|
808
|
+
next if c == 0x0A02
|
809
|
+
next if (0x0A05 <= c) and (c <= 0x0A0A)
|
810
|
+
next if (0x0A0F <= c) and (c <= 0x0A10)
|
811
|
+
next if (0x0A13 <= c) and (c <= 0x0A28)
|
812
|
+
next if (0x0A2A <= c) and (c <= 0x0A30)
|
813
|
+
next if (0x0A32 <= c) and (c <= 0x0A33)
|
814
|
+
next if (0x0A35 <= c) and (c <= 0x0A36)
|
815
|
+
next if (0x0A38 <= c) and (c <= 0x0A39)
|
816
|
+
next if c == 0x0A3C
|
817
|
+
next if c == 0x0A3E
|
818
|
+
next if c == 0x0A3F
|
819
|
+
next if (0x0A40 <= c) and (c <= 0x0A42)
|
820
|
+
next if (0x0A47 <= c) and (c <= 0x0A48)
|
821
|
+
next if (0x0A4B <= c) and (c <= 0x0A4D)
|
822
|
+
next if (0x0A59 <= c) and (c <= 0x0A5C)
|
823
|
+
next if c == 0x0A5E
|
824
|
+
next if (0x0A66 <= c) and (c <= 0x0A6F)
|
825
|
+
next if (0x0A70 <= c) and (c <= 0x0A71)
|
826
|
+
next if (0x0A72 <= c) and (c <= 0x0A74)
|
827
|
+
next if (0x0A81 <= c) and (c <= 0x0A83)
|
828
|
+
next if (0x0A85 <= c) and (c <= 0x0A8B)
|
829
|
+
next if c == 0x0A8D
|
830
|
+
next if (0x0A8F <= c) and (c <= 0x0A91)
|
831
|
+
next if (0x0A93 <= c) and (c <= 0x0AA8)
|
832
|
+
next if (0x0AAA <= c) and (c <= 0x0AB0)
|
833
|
+
next if (0x0AB2 <= c) and (c <= 0x0AB3)
|
834
|
+
next if (0x0AB5 <= c) and (c <= 0x0AB9)
|
835
|
+
next if c == 0x0ABC
|
836
|
+
next if c == 0x0ABD
|
837
|
+
next if (0x0ABE <= c) and (c <= 0x0AC5)
|
838
|
+
next if (0x0AC7 <= c) and (c <= 0x0AC9)
|
839
|
+
next if (0x0ACB <= c) and (c <= 0x0ACD)
|
840
|
+
next if c == 0x0AE0
|
841
|
+
next if (0x0AE6 <= c) and (c <= 0x0AEF)
|
842
|
+
next if (0x0B01 <= c) and (c <= 0x0B03)
|
843
|
+
next if (0x0B05 <= c) and (c <= 0x0B0C)
|
844
|
+
next if (0x0B0F <= c) and (c <= 0x0B10)
|
845
|
+
next if (0x0B13 <= c) and (c <= 0x0B28)
|
846
|
+
next if (0x0B2A <= c) and (c <= 0x0B30)
|
847
|
+
next if (0x0B32 <= c) and (c <= 0x0B33)
|
848
|
+
next if (0x0B36 <= c) and (c <= 0x0B39)
|
849
|
+
next if c == 0x0B3C
|
850
|
+
next if c == 0x0B3D
|
851
|
+
next if (0x0B3E <= c) and (c <= 0x0B43)
|
852
|
+
next if (0x0B47 <= c) and (c <= 0x0B48)
|
853
|
+
next if (0x0B4B <= c) and (c <= 0x0B4D)
|
854
|
+
next if (0x0B56 <= c) and (c <= 0x0B57)
|
855
|
+
next if (0x0B5C <= c) and (c <= 0x0B5D)
|
856
|
+
next if (0x0B5F <= c) and (c <= 0x0B61)
|
857
|
+
next if (0x0B66 <= c) and (c <= 0x0B6F)
|
858
|
+
next if (0x0B82 <= c) and (c <= 0x0B83)
|
859
|
+
next if (0x0B85 <= c) and (c <= 0x0B8A)
|
860
|
+
next if (0x0B8E <= c) and (c <= 0x0B90)
|
861
|
+
next if (0x0B92 <= c) and (c <= 0x0B95)
|
862
|
+
next if (0x0B99 <= c) and (c <= 0x0B9A)
|
863
|
+
next if c == 0x0B9C
|
864
|
+
next if (0x0B9E <= c) and (c <= 0x0B9F)
|
865
|
+
next if (0x0BA3 <= c) and (c <= 0x0BA4)
|
866
|
+
next if (0x0BA8 <= c) and (c <= 0x0BAA)
|
867
|
+
next if (0x0BAE <= c) and (c <= 0x0BB5)
|
868
|
+
next if (0x0BB7 <= c) and (c <= 0x0BB9)
|
869
|
+
next if (0x0BBE <= c) and (c <= 0x0BC2)
|
870
|
+
next if (0x0BC6 <= c) and (c <= 0x0BC8)
|
871
|
+
next if (0x0BCA <= c) and (c <= 0x0BCD)
|
872
|
+
next if c == 0x0BD7
|
873
|
+
next if (0x0BE7 <= c) and (c <= 0x0BEF)
|
874
|
+
next if (0x0C01 <= c) and (c <= 0x0C03)
|
875
|
+
next if (0x0C05 <= c) and (c <= 0x0C0C)
|
876
|
+
next if (0x0C0E <= c) and (c <= 0x0C10)
|
877
|
+
next if (0x0C12 <= c) and (c <= 0x0C28)
|
878
|
+
next if (0x0C2A <= c) and (c <= 0x0C33)
|
879
|
+
next if (0x0C35 <= c) and (c <= 0x0C39)
|
880
|
+
next if (0x0C3E <= c) and (c <= 0x0C44)
|
881
|
+
next if (0x0C46 <= c) and (c <= 0x0C48)
|
882
|
+
next if (0x0C4A <= c) and (c <= 0x0C4D)
|
883
|
+
next if (0x0C55 <= c) and (c <= 0x0C56)
|
884
|
+
next if (0x0C60 <= c) and (c <= 0x0C61)
|
885
|
+
next if (0x0C66 <= c) and (c <= 0x0C6F)
|
886
|
+
next if (0x0C82 <= c) and (c <= 0x0C83)
|
887
|
+
next if (0x0C85 <= c) and (c <= 0x0C8C)
|
888
|
+
next if (0x0C8E <= c) and (c <= 0x0C90)
|
889
|
+
next if (0x0C92 <= c) and (c <= 0x0CA8)
|
890
|
+
next if (0x0CAA <= c) and (c <= 0x0CB3)
|
891
|
+
next if (0x0CB5 <= c) and (c <= 0x0CB9)
|
892
|
+
next if (0x0CBE <= c) and (c <= 0x0CC4)
|
893
|
+
next if (0x0CC6 <= c) and (c <= 0x0CC8)
|
894
|
+
next if (0x0CCA <= c) and (c <= 0x0CCD)
|
895
|
+
next if (0x0CD5 <= c) and (c <= 0x0CD6)
|
896
|
+
next if c == 0x0CDE
|
897
|
+
next if (0x0CE0 <= c) and (c <= 0x0CE1)
|
898
|
+
next if (0x0CE6 <= c) and (c <= 0x0CEF)
|
899
|
+
next if (0x0D02 <= c) and (c <= 0x0D03)
|
900
|
+
next if (0x0D05 <= c) and (c <= 0x0D0C)
|
901
|
+
next if (0x0D0E <= c) and (c <= 0x0D10)
|
902
|
+
next if (0x0D12 <= c) and (c <= 0x0D28)
|
903
|
+
next if (0x0D2A <= c) and (c <= 0x0D39)
|
904
|
+
next if (0x0D3E <= c) and (c <= 0x0D43)
|
905
|
+
next if (0x0D46 <= c) and (c <= 0x0D48)
|
906
|
+
next if (0x0D4A <= c) and (c <= 0x0D4D)
|
907
|
+
next if c == 0x0D57
|
908
|
+
next if (0x0D60 <= c) and (c <= 0x0D61)
|
909
|
+
next if (0x0D66 <= c) and (c <= 0x0D6F)
|
910
|
+
next if (0x0E01 <= c) and (c <= 0x0E2E)
|
911
|
+
next if c == 0x0E30
|
912
|
+
next if c == 0x0E31
|
913
|
+
next if (0x0E32 <= c) and (c <= 0x0E33)
|
914
|
+
next if (0x0E34 <= c) and (c <= 0x0E3A)
|
915
|
+
next if (0x0E40 <= c) and (c <= 0x0E45)
|
916
|
+
next if c == 0x0E46
|
917
|
+
next if (0x0E47 <= c) and (c <= 0x0E4E)
|
918
|
+
next if (0x0E50 <= c) and (c <= 0x0E59)
|
919
|
+
next if (0x0E81 <= c) and (c <= 0x0E82)
|
920
|
+
next if c == 0x0E84
|
921
|
+
next if (0x0E87 <= c) and (c <= 0x0E88)
|
922
|
+
next if c == 0x0E8A
|
923
|
+
next if c == 0x0E8D
|
924
|
+
next if (0x0E94 <= c) and (c <= 0x0E97)
|
925
|
+
next if (0x0E99 <= c) and (c <= 0x0E9F)
|
926
|
+
next if (0x0EA1 <= c) and (c <= 0x0EA3)
|
927
|
+
next if c == 0x0EA5
|
928
|
+
next if c == 0x0EA7
|
929
|
+
next if (0x0EAA <= c) and (c <= 0x0EAB)
|
930
|
+
next if (0x0EAD <= c) and (c <= 0x0EAE)
|
931
|
+
next if c == 0x0EB0
|
932
|
+
next if c == 0x0EB1
|
933
|
+
next if (0x0EB2 <= c) and (c <= 0x0EB3)
|
934
|
+
next if (0x0EB4 <= c) and (c <= 0x0EB9)
|
935
|
+
next if (0x0EBB <= c) and (c <= 0x0EBC)
|
936
|
+
next if c == 0x0EBD
|
937
|
+
next if (0x0EC0 <= c) and (c <= 0x0EC4)
|
938
|
+
next if c == 0x0EC6
|
939
|
+
next if (0x0EC8 <= c) and (c <= 0x0ECD)
|
940
|
+
next if (0x0ED0 <= c) and (c <= 0x0ED9)
|
941
|
+
next if (0x0F18 <= c) and (c <= 0x0F19)
|
942
|
+
next if (0x0F20 <= c) and (c <= 0x0F29)
|
943
|
+
next if c == 0x0F35
|
944
|
+
next if c == 0x0F37
|
945
|
+
next if c == 0x0F39
|
946
|
+
next if c == 0x0F3E
|
947
|
+
next if c == 0x0F3F
|
948
|
+
next if (0x0F40 <= c) and (c <= 0x0F47)
|
949
|
+
next if (0x0F49 <= c) and (c <= 0x0F69)
|
950
|
+
next if (0x0F71 <= c) and (c <= 0x0F84)
|
951
|
+
next if (0x0F86 <= c) and (c <= 0x0F8B)
|
952
|
+
next if (0x0F90 <= c) and (c <= 0x0F95)
|
953
|
+
next if c == 0x0F97
|
954
|
+
next if (0x0F99 <= c) and (c <= 0x0FAD)
|
955
|
+
next if (0x0FB1 <= c) and (c <= 0x0FB7)
|
956
|
+
next if c == 0x0FB9
|
957
|
+
next if (0x10A0 <= c) and (c <= 0x10C5)
|
958
|
+
next if (0x10D0 <= c) and (c <= 0x10F6)
|
959
|
+
next if c == 0x1100
|
960
|
+
next if (0x1102 <= c) and (c <= 0x1103)
|
961
|
+
next if (0x1105 <= c) and (c <= 0x1107)
|
962
|
+
next if c == 0x1109
|
963
|
+
next if (0x110B <= c) and (c <= 0x110C)
|
964
|
+
next if (0x110E <= c) and (c <= 0x1112)
|
965
|
+
next if c == 0x113C
|
966
|
+
next if c == 0x113E
|
967
|
+
next if c == 0x1140
|
968
|
+
next if c == 0x114C
|
969
|
+
next if c == 0x114E
|
970
|
+
next if c == 0x1150
|
971
|
+
next if (0x1154 <= c) and (c <= 0x1155)
|
972
|
+
next if c == 0x1159
|
973
|
+
next if (0x115F <= c) and (c <= 0x1161)
|
974
|
+
next if c == 0x1163
|
975
|
+
next if c == 0x1165
|
976
|
+
next if c == 0x1167
|
977
|
+
next if c == 0x1169
|
978
|
+
next if (0x116D <= c) and (c <= 0x116E)
|
979
|
+
next if (0x1172 <= c) and (c <= 0x1173)
|
980
|
+
next if c == 0x1175
|
981
|
+
next if c == 0x119E
|
982
|
+
next if c == 0x11A8
|
983
|
+
next if c == 0x11AB
|
984
|
+
next if (0x11AE <= c) and (c <= 0x11AF)
|
985
|
+
next if (0x11B7 <= c) and (c <= 0x11B8)
|
986
|
+
next if c == 0x11BA
|
987
|
+
next if (0x11BC <= c) and (c <= 0x11C2)
|
988
|
+
next if c == 0x11EB
|
989
|
+
next if c == 0x11F0
|
990
|
+
next if c == 0x11F9
|
991
|
+
next if (0x1E00 <= c) and (c <= 0x1E9B)
|
992
|
+
next if (0x1EA0 <= c) and (c <= 0x1EF9)
|
993
|
+
next if (0x1F00 <= c) and (c <= 0x1F15)
|
994
|
+
next if (0x1F18 <= c) and (c <= 0x1F1D)
|
995
|
+
next if (0x1F20 <= c) and (c <= 0x1F45)
|
996
|
+
next if (0x1F48 <= c) and (c <= 0x1F4D)
|
997
|
+
next if (0x1F50 <= c) and (c <= 0x1F57)
|
998
|
+
next if c == 0x1F59
|
999
|
+
next if c == 0x1F5B
|
1000
|
+
next if c == 0x1F5D
|
1001
|
+
next if (0x1F5F <= c) and (c <= 0x1F7D)
|
1002
|
+
next if (0x1F80 <= c) and (c <= 0x1FB4)
|
1003
|
+
next if (0x1FB6 <= c) and (c <= 0x1FBC)
|
1004
|
+
next if c == 0x1FBE
|
1005
|
+
next if (0x1FC2 <= c) and (c <= 0x1FC4)
|
1006
|
+
next if (0x1FC6 <= c) and (c <= 0x1FCC)
|
1007
|
+
next if (0x1FD0 <= c) and (c <= 0x1FD3)
|
1008
|
+
next if (0x1FD6 <= c) and (c <= 0x1FDB)
|
1009
|
+
next if (0x1FE0 <= c) and (c <= 0x1FEC)
|
1010
|
+
next if (0x1FF2 <= c) and (c <= 0x1FF4)
|
1011
|
+
next if (0x1FF6 <= c) and (c <= 0x1FFC)
|
1012
|
+
next if (0x20D0 <= c) and (c <= 0x20DC)
|
1013
|
+
next if c == 0x20E1
|
1014
|
+
next if c == 0x2126
|
1015
|
+
next if (0x212A <= c) and (c <= 0x212B)
|
1016
|
+
next if c == 0x212E
|
1017
|
+
next if (0x2180 <= c) and (c <= 0x2182)
|
1018
|
+
next if c == 0x3005
|
1019
|
+
next if c == 0x3007
|
1020
|
+
next if (0x3021 <= c) and (c <= 0x3029)
|
1021
|
+
next if (0x302A <= c) and (c <= 0x302F)
|
1022
|
+
next if (0x3031 <= c) and (c <= 0x3035)
|
1023
|
+
next if (0x3041 <= c) and (c <= 0x3094)
|
1024
|
+
next if c == 0x3099
|
1025
|
+
next if c == 0x309A
|
1026
|
+
next if (0x309D <= c) and (c <= 0x309E)
|
1027
|
+
next if (0x30A1 <= c) and (c <= 0x30FA)
|
1028
|
+
next if (0x30FC <= c) and (c <= 0x30FE)
|
1029
|
+
next if (0x3105 <= c) and (c <= 0x312C)
|
1030
|
+
next if (0x4E00 <= c) and (c <= 0x9FA5)
|
1031
|
+
next if (0xAC00 <= c) and (c <= 0xD7A3)
|
1032
|
+
|
1033
|
+
raise "illegal name character"
|
1034
|
+
#end
|
1035
|
+
end
|
1036
|
+
end
|
1037
|
+
end
|