hutch-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/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/lib/xamplr-pp.rb +991 -0
- data/test/test_helper.rb +10 -0
- data/test/xamplr_pp_gem_test.rb +7 -0
- metadata +79 -0
@@ -0,0 +1,62 @@
|
|
1
|
+
#!/usr/local/bin/ruby
|
2
|
+
require "xampl-pp-wf"
|
3
|
+
#require "xampl-pp"
|
4
|
+
|
5
|
+
class Chew
|
6
|
+
|
7
|
+
def resolve(name)
|
8
|
+
@resolveRequest = true
|
9
|
+
# if not @xpp.standalone then
|
10
|
+
# # for the purposes of conformance, accept this since we don't
|
11
|
+
# # know if the external subset defines something
|
12
|
+
# return "fake it"
|
13
|
+
# else
|
14
|
+
# return nil
|
15
|
+
# end
|
16
|
+
end
|
17
|
+
|
18
|
+
def run
|
19
|
+
@allFiles = File.new ARGV[1]
|
20
|
+
|
21
|
+
while true do
|
22
|
+
fileName = @allFiles.gets
|
23
|
+
if nil == fileName then
|
24
|
+
break
|
25
|
+
end
|
26
|
+
fileName.chop!
|
27
|
+
|
28
|
+
@xpp = Xampl_PP.new
|
29
|
+
@xpp.input = File.new(fileName)
|
30
|
+
@xpp.resolver = self
|
31
|
+
@resolveRequest = false
|
32
|
+
@xpp.processNamespace = false
|
33
|
+
@xpp.reportNamespaceAttributes = false
|
34
|
+
|
35
|
+
begin
|
36
|
+
i = 0
|
37
|
+
while not @xpp.endDocument? do
|
38
|
+
type = @xpp.nextEvent
|
39
|
+
i += 1
|
40
|
+
end
|
41
|
+
printf("%sPASSED '%s' -- there were %d events\n", (("PASS" == ARGV[0])? " " : "#"), fileName, i)
|
42
|
+
rescue RuntimeError => message
|
43
|
+
#print message.backtrace.join("\n")
|
44
|
+
if @resolveRequest then
|
45
|
+
printf("ENTITY [%s] '%s'\n", (("FAIL" == ARGV[0])? " " : "#"), message, fileName)
|
46
|
+
else
|
47
|
+
printf("%sFAILED [%s] '%s'\n", (("FAIL" == ARGV[0])? " " : "#"), message, fileName)
|
48
|
+
end
|
49
|
+
rescue Exception => message
|
50
|
+
#print message.backtrace.join("\n")
|
51
|
+
if @resolveRequest then
|
52
|
+
printf("ENTITY [%s] '%s'\n", (("FAIL" == ARGV[0])? " " : "#"), message, fileName)
|
53
|
+
else
|
54
|
+
printf("%sFAILED [%s] '%s'\n", (("FAIL" == ARGV[0])? " " : "#"), message, fileName)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
chew = Chew.new
|
62
|
+
chew.run
|
@@ -0,0 +1,44 @@
|
|
1
|
+
#!/usr/local/bin/ruby
|
2
|
+
require "xppMultibyte"
|
3
|
+
|
4
|
+
class Chew
|
5
|
+
|
6
|
+
def resolve(name)
|
7
|
+
return "fake it"
|
8
|
+
end
|
9
|
+
|
10
|
+
def run
|
11
|
+
@allFiles = File.new ARGV[1]
|
12
|
+
|
13
|
+
while true do
|
14
|
+
fileName = @allFiles.gets
|
15
|
+
if nil == fileName then
|
16
|
+
break
|
17
|
+
end
|
18
|
+
fileName.chop!
|
19
|
+
|
20
|
+
@xpp = Xpp.new
|
21
|
+
@xpp.input = File.new(fileName)
|
22
|
+
@xpp.resolver = self
|
23
|
+
@xpp.processNamespace = false
|
24
|
+
@xpp.reportNamespaceAttributes = false
|
25
|
+
|
26
|
+
begin
|
27
|
+
i = 0
|
28
|
+
while not @xpp.endDocument? do
|
29
|
+
type = @xpp.nextEvent
|
30
|
+
i += 1
|
31
|
+
end
|
32
|
+
printf("%sPASSED '%s' -- there were %d events\n", (("PASS" == ARGV[0])? " " : "#"), fileName, i)
|
33
|
+
rescue RuntimeError => message
|
34
|
+
printf("%sFAILED [%s] '%s'\n", (("FAIL" == ARGV[0])? " " : "#"), message, fileName)
|
35
|
+
rescue Exception => message
|
36
|
+
printf("%sFAILED [%s] '%s'\n", (("FAIL" == ARGV[0])? " " : "#"), message, fileName)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
chew = Chew.new
|
43
|
+
chew.run
|
44
|
+
|
@@ -0,0 +1,58 @@
|
|
1
|
+
#!/usr/local/bin/ruby
|
2
|
+
|
3
|
+
pattern = Regexp.compile(".", nil, 'u')
|
4
|
+
|
5
|
+
for filename in ARGV do
|
6
|
+
printf("file: %s\n", filename)
|
7
|
+
file = File.new(filename)
|
8
|
+
file.each do
|
9
|
+
| line |
|
10
|
+
p = 0
|
11
|
+
while true do
|
12
|
+
line.index(pattern, p)
|
13
|
+
if nil == $& then
|
14
|
+
break;
|
15
|
+
end
|
16
|
+
p += $&.length
|
17
|
+
$&.each_byte do
|
18
|
+
| c |
|
19
|
+
printf("%3x ", c)
|
20
|
+
end
|
21
|
+
printf("-- '%s'\n", $&);
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def decode(s)
|
27
|
+
r = 0
|
28
|
+
$&.each_byte do
|
29
|
+
| c |
|
30
|
+
if c < 0x80 then
|
31
|
+
r += c
|
32
|
+
elsif
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
|
37
|
+
def encode(c)
|
38
|
+
if utf8encode then
|
39
|
+
if c < 0x80 then
|
40
|
+
@textBuffer << c
|
41
|
+
elsif c < 0x0800
|
42
|
+
@textBuffer << ((c >> 6) | 0xC0)
|
43
|
+
@textBuffer << (c & (0x3F | 0x80))
|
44
|
+
elsif c < 0x10000
|
45
|
+
@textBuffer << ((c >> 12) | 0xE0)
|
46
|
+
@textBuffer << ((c >> 6) & (0x3F | 0x80))
|
47
|
+
@textBuffer << (c & (0x3F | 0x80))
|
48
|
+
else
|
49
|
+
@textBuffer << ((c >> 18) | 0xF0)
|
50
|
+
@textBuffer << ((c >> 12) & (0x3F | 0x80))
|
51
|
+
@textBuffer << ((c >> 6) & (0x3F | 0x80))
|
52
|
+
@textBuffer << (c & (0x3F | 0x80))
|
53
|
+
end
|
54
|
+
else
|
55
|
+
@textBuffer << c
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
@@ -0,0 +1,67 @@
|
|
1
|
+
Name ::= (Letter | '_' | ':') (NameChar)*
|
2
|
+
NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | | CombiningChar | Extender
|
3
|
+
Letter ::= BaseChar | Ideographic
|
4
|
+
Ideographic ::= [#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029]
|
5
|
+
WhiteSpace ::= x20 | x9 | xD | xA
|
6
|
+
Char := x09 | xA | xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
|
7
|
+
|
8
|
+
Digit ::= [#x0030-#x0039] [#x0660-#x0669] |[#x06F0-#x06F9]
|
9
|
+
|[#x0966-#x096F] |[#x09E6-#x09EF] |[#x0A66-#x0A6F] |[#x0AE6-#x0AEF]
|
10
|
+
|[#x0B66-#x0B6F] |[#x0BE7-#x0BEF] |[#x0C66-#x0C6F] |[#x0CE6-#x0CEF]
|
11
|
+
|[#x0D66-#x0D6F] |[#x0E50-#x0E59] |[#x0ED0-#x0ED9] |[#x0F20-#x0F29]
|
12
|
+
|
13
|
+
Extender ::= [#x0030-#x0039] |[#x0660-#x0669] |[#x06F0-#x06F9]
|
14
|
+
|[#x0966-#x096F] |[#x09E6-#x09EF] |[#x0A66-#x0A6F]
|
15
|
+
|[#x0AE6-#x0AEF] |[#x0B66-#x0B6F] |[#x0BE7-#x0BEF]
|
16
|
+
|[#x0C66-#x0C6F] |[#x0CE6-#x0CEF] |[#x0D66-#x0D6F]
|
17
|
+
|[#x0E50-#x0E59] |[#x0ED0-#x0ED9] |[#x0F20-#x0F29]
|
18
|
+
CombiningChar ::=[#x0300-#x0345] |[#x0360-#x0361] |[#x0483-#x0486]
|
19
|
+
|[#x0591-#x05A1] |[#x05A3-#x05B9] |[#x05BB-#x05BD]
|
20
|
+
|#x05BF |[#x05C1-#x05C2] |#x05C4 |[#x064B-#x0652]
|
21
|
+
|#x0670 |[#x06D6-#x06DC] |[#x06DD-#x06DF] |[#x06E0-#x06E4]
|
22
|
+
|[#x06E7-#x06E8] |[#x06EA-#x06ED] |[#x0901-#x0903] |#x093C
|
23
|
+
|[#x093E-#x094C] |#x094D |[#x0951-#x0954] |[#x0962-#x0963]
|
24
|
+
|[#x0981-#x0983] |#x09BC |#x09BE |#x09BF |[#x09C0-#x09C4]
|
25
|
+
|[#x09C7-#x09C8] |[#x09CB-#x09CD] |#x09D7 |[#x09E2-#x09E3]
|
26
|
+
|#x0A02 |#x0A3C |#x0A3E |#x0A3F |[#x0A40-#x0A42]
|
27
|
+
|[#x0A47-#x0A48] |[#x0A4B-#x0A4D] |[#x0A70-#x0A71]
|
28
|
+
|[#x0A81-#x0A83] |#x0ABC |[#x0ABE-#x0AC5] |[#x0AC7-#x0AC9]
|
29
|
+
|[#x0ACB-#x0ACD] |[#x0B01-#x0B03] |#x0B3C |[#x0B3E-#x0B43]
|
30
|
+
|[#x0B47-#x0B48] |[#x0B4B-#x0B4D] |[#x0B56-#x0B57]
|
31
|
+
|[#x0B82-#x0B83] |[#x0BBE-#x0BC2] |[#x0BC6-#x0BC8]
|
32
|
+
|[#x0BCA-#x0BCD] |#x0BD7 |[#x0C01-#x0C03] |[#x0C3E-#x0C44]
|
33
|
+
|[#x0C46-#x0C48] |[#x0C4A-#x0C4D] |[#x0C55-#x0C56]
|
34
|
+
|[#x0C82-#x0C83] |[#x0CBE-#x0CC4] |[#x0CC6-#x0CC8]
|
35
|
+
|[#x0CCA-#x0CCD] |[#x0CD5-#x0CD6] |[#x0D02-#x0D03]
|
36
|
+
|[#x0D3E-#x0D43] |[#x0D46-#x0D48] |[#x0D4A-#x0D4D]
|
37
|
+
|#x0D57 |#x0E31 [#x0E34-#x0E3A] |[#x0E47-#x0E4E] |#x0EB1
|
38
|
+
|[#x0EB4-#x0EB9] |[#x0EBB-#x0EBC] |[#x0EC8-#x0ECD][#x0F18-#x0F19]
|
39
|
+
|#x0F35 |#x0F37 |#x0F39 |#x0F3E |#x0F3F |[#x0F71-#x0F84]
|
40
|
+
|[#x0F86-#x0F8B] |[#x0F90-#x0F95] |#x0F97 |[#x0F99-#x0FAD]
|
41
|
+
|[#x0FB1-#x0FB7] |#x0FB9 |[#x20D0-#x20DC] |#x20E1
|
42
|
+
|[#x302A-#x302F] |#x3099 |#x309A
|
43
|
+
BaseChar ::= [#x0300-#x0345] |[#x0360-#x0361] |[#x0483-#x0486] |[#x0591-#x05A1]
|
44
|
+
|[#x05A3-#x05B9] |[#x05BB-#x05BD] |#x05BF |[#x05C1-#x05C2]
|
45
|
+
|#x05C4 |[#x064B-#x0652] |#x0670 |[#x06D6-#x06DC]
|
46
|
+
|[#x06DD-#x06DF] |[#x06E0-#x06E4] |[#x06E7-#x06E8]
|
47
|
+
|[#x06EA-#x06ED] |[#x0901-#x0903] |#x093C |[#x093E-#x094C]
|
48
|
+
|#x094D |[#x0951-#x0954] |[#x0962-#x0963] |[#x0981-#x0983]
|
49
|
+
|#x09BC |#x09BE |#x09BF |[#x09C0-#x09C4] |[#x09C7-#x09C8]
|
50
|
+
|[#x09CB-#x09CD] |#x09D7 |[#x09E2-#x09E3] |#x0A02 |#x0A3C
|
51
|
+
|#x0A3E |#x0A3F |[#x0A40-#x0A42] |[#x0A47-#x0A48]
|
52
|
+
|[#x0A4B-#x0A4D] |[#x0A70-#x0A71] |[#x0A81-#x0A83]
|
53
|
+
|#x0ABC |[#x0ABE-#x0AC5] |[#x0AC7-#x0AC9] |[#x0ACB-#x0ACD]
|
54
|
+
|[#x0B01-#x0B03] |#x0B3C |[#x0B3E-#x0B43] |[#x0B47-#x0B48]
|
55
|
+
|[#x0B4B-#x0B4D] |[#x0B56-#x0B57] |[#x0B82-#x0B83]
|
56
|
+
|[#x0BBE-#x0BC2] |[#x0BC6-#x0BC8] |[#x0BCA-#x0BCD] |#x0BD7
|
57
|
+
|[#x0C01-#x0C03] |[#x0C3E-#x0C44] |[#x0C46-#x0C48]
|
58
|
+
|[#x0C4A-#x0C4D] |[#x0C55-#x0C56] |[#x0C82-#x0C83]
|
59
|
+
|[#x0CBE-#x0CC4] |[#x0CC6-#x0CC8] |[#x0CCA-#x0CCD]
|
60
|
+
|[#x0CD5-#x0CD6] |[#x0D02-#x0D03] |[#x0D3E-#x0D43]
|
61
|
+
|[#x0D46-#x0D48] |[#x0D4A-#x0D4D] |#x0D57 |#x0E31
|
62
|
+
|[#x0E34-#x0E3A] |[#x0E47-#x0E4E] |#x0EB1 |[#x0EB4-#x0EB9]
|
63
|
+
|[#x0EBB-#x0EBC] |[#x0EC8-#x0ECD]|[#x0F18-#x0F19] |#x0F35
|
64
|
+
|#x0F37 |#x0F39 |#x0F3E |#x0F3F |[#x0F71-#x0F84]
|
65
|
+
|[#x0F86-#x0F8B] |[#x0F90-#x0F95] |#x0F97 |[#x0F99-#x0FAD]
|
66
|
+
|[#x0FB1-#x0FB7] |#x0FB9 |[#x20D0-#x20DC] |#x20E1
|
67
|
+
|[#x302A-#x302F] |#x3099 |#x309A
|