json-maglev- 1.5.4
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +200 -0
- data/COPYING +58 -0
- data/COPYING-json-jruby +57 -0
- data/GPL +340 -0
- data/Gemfile +7 -0
- data/README-json-jruby.markdown +33 -0
- data/README.rdoc +358 -0
- data/Rakefile +407 -0
- data/TODO +1 -0
- data/VERSION +1 -0
- data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkComparison.log +52 -0
- data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast-autocorrelation.dat +1000 -0
- data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast.dat +1001 -0
- data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty-autocorrelation.dat +900 -0
- data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty.dat +901 -0
- data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe-autocorrelation.dat +1000 -0
- data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe.dat +1001 -0
- data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt.log +261 -0
- data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast-autocorrelation.dat +1000 -0
- data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast.dat +1001 -0
- data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty-autocorrelation.dat +1000 -0
- data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty.dat +1001 -0
- data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe-autocorrelation.dat +1000 -0
- data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe.dat +1001 -0
- data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure.log +262 -0
- data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator-autocorrelation.dat +1000 -0
- data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator.dat +1001 -0
- data/benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails.log +82 -0
- data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkComparison.log +34 -0
- data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser-autocorrelation.dat +900 -0
- data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser.dat +901 -0
- data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt.log +81 -0
- data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser-autocorrelation.dat +1000 -0
- data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser.dat +1001 -0
- data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure.log +82 -0
- data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser-autocorrelation.dat +1000 -0
- data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser.dat +1001 -0
- data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails.log +82 -0
- data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser-autocorrelation.dat +1000 -0
- data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser.dat +1001 -0
- data/benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML.log +82 -0
- data/benchmarks/generator2_benchmark.rb +222 -0
- data/benchmarks/generator_benchmark.rb +224 -0
- data/benchmarks/ohai.json +1216 -0
- data/benchmarks/ohai.ruby +1 -0
- data/benchmarks/parser2_benchmark.rb +251 -0
- data/benchmarks/parser_benchmark.rb +259 -0
- data/bin/edit_json.rb +9 -0
- data/bin/prettify_json.rb +48 -0
- data/data/example.json +1 -0
- data/data/index.html +38 -0
- data/data/prototype.js +4184 -0
- data/ext/json/ext/generator/extconf.rb +20 -0
- data/ext/json/ext/generator/generator.c +1414 -0
- data/ext/json/ext/generator/generator.h +196 -0
- data/ext/json/ext/parser/extconf.rb +16 -0
- data/ext/json/ext/parser/parser.c +1996 -0
- data/ext/json/ext/parser/parser.h +82 -0
- data/ext/json/ext/parser/parser.rl +853 -0
- data/install.rb +26 -0
- data/java/lib/bytelist-1.0.6.jar +0 -0
- data/java/lib/jcodings.jar +0 -0
- data/java/src/json/ext/ByteListTranscoder.java +167 -0
- data/java/src/json/ext/Generator.java +437 -0
- data/java/src/json/ext/GeneratorMethods.java +232 -0
- data/java/src/json/ext/GeneratorService.java +43 -0
- data/java/src/json/ext/GeneratorState.java +473 -0
- data/java/src/json/ext/OptionsReader.java +119 -0
- data/java/src/json/ext/Parser.java +2314 -0
- data/java/src/json/ext/Parser.rl +844 -0
- data/java/src/json/ext/ParserService.java +35 -0
- data/java/src/json/ext/RuntimeInfo.java +121 -0
- data/java/src/json/ext/StringDecoder.java +166 -0
- data/java/src/json/ext/StringEncoder.java +106 -0
- data/java/src/json/ext/Utils.java +89 -0
- data/json-java.gemspec +22 -0
- data/json.gemspec +41 -0
- data/json_pure.gemspec +46 -0
- data/lib/json.rb +62 -0
- data/lib/json/Array.xpm +21 -0
- data/lib/json/FalseClass.xpm +21 -0
- data/lib/json/Hash.xpm +21 -0
- data/lib/json/Key.xpm +73 -0
- data/lib/json/NilClass.xpm +21 -0
- data/lib/json/Numeric.xpm +28 -0
- data/lib/json/String.xpm +96 -0
- data/lib/json/TrueClass.xpm +21 -0
- data/lib/json/add/core.rb +243 -0
- data/lib/json/add/rails.rb +8 -0
- data/lib/json/common.rb +423 -0
- data/lib/json/editor.rb +1369 -0
- data/lib/json/ext.rb +28 -0
- data/lib/json/json.xpm +1499 -0
- data/lib/json/pure.rb +15 -0
- data/lib/json/pure/generator.rb +442 -0
- data/lib/json/pure/parser.rb +320 -0
- data/lib/json/version.rb +8 -0
- data/tests/fixtures/fail1.json +1 -0
- data/tests/fixtures/fail10.json +1 -0
- data/tests/fixtures/fail11.json +1 -0
- data/tests/fixtures/fail12.json +1 -0
- data/tests/fixtures/fail13.json +1 -0
- data/tests/fixtures/fail14.json +1 -0
- data/tests/fixtures/fail18.json +1 -0
- data/tests/fixtures/fail19.json +1 -0
- data/tests/fixtures/fail2.json +1 -0
- data/tests/fixtures/fail20.json +1 -0
- data/tests/fixtures/fail21.json +1 -0
- data/tests/fixtures/fail22.json +1 -0
- data/tests/fixtures/fail23.json +1 -0
- data/tests/fixtures/fail24.json +1 -0
- data/tests/fixtures/fail25.json +1 -0
- data/tests/fixtures/fail27.json +2 -0
- data/tests/fixtures/fail28.json +2 -0
- data/tests/fixtures/fail3.json +1 -0
- data/tests/fixtures/fail4.json +1 -0
- data/tests/fixtures/fail5.json +1 -0
- data/tests/fixtures/fail6.json +1 -0
- data/tests/fixtures/fail7.json +1 -0
- data/tests/fixtures/fail8.json +1 -0
- data/tests/fixtures/fail9.json +1 -0
- data/tests/fixtures/pass1.json +56 -0
- data/tests/fixtures/pass15.json +1 -0
- data/tests/fixtures/pass16.json +1 -0
- data/tests/fixtures/pass17.json +1 -0
- data/tests/fixtures/pass2.json +1 -0
- data/tests/fixtures/pass26.json +1 -0
- data/tests/fixtures/pass3.json +6 -0
- data/tests/setup_variant.rb +11 -0
- data/tests/test_json.rb +424 -0
- data/tests/test_json_addition.rb +167 -0
- data/tests/test_json_encoding.rb +65 -0
- data/tests/test_json_fixtures.rb +35 -0
- data/tests/test_json_generate.rb +180 -0
- data/tests/test_json_string_matching.rb +40 -0
- data/tests/test_json_unicode.rb +72 -0
- data/tools/fuzz.rb +139 -0
- data/tools/server.rb +61 -0
- metadata +265 -0
data/json-java.gemspec
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/env jruby
|
2
|
+
require "rubygems"
|
3
|
+
|
4
|
+
spec = Gem::Specification.new do |s|
|
5
|
+
s.name = "json"
|
6
|
+
s.version = File.read("VERSION").chomp
|
7
|
+
s.summary = "JSON implementation for JRuby"
|
8
|
+
s.description = "A JSON implementation as a JRuby extension."
|
9
|
+
s.author = "Daniel Luz"
|
10
|
+
s.email = "dev+ruby@mernen.com"
|
11
|
+
s.homepage = "http://json-jruby.rubyforge.org/"
|
12
|
+
s.platform = 'java'
|
13
|
+
s.rubyforge_project = "json-jruby"
|
14
|
+
|
15
|
+
s.files = Dir["{docs,lib,tests}/**/*"]
|
16
|
+
end
|
17
|
+
|
18
|
+
if $0 == __FILE__
|
19
|
+
Gem::Builder.new(spec).build
|
20
|
+
else
|
21
|
+
spec
|
22
|
+
end
|
data/json.gemspec
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{json-maglev-}
|
5
|
+
s.version = "1.5.4"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = [%q{Florian Frank}]
|
9
|
+
s.date = %q{2011-07-08}
|
10
|
+
s.description = %q{This is a JSON implementation as a Ruby extension in C.}
|
11
|
+
s.email = %q{flori@ping.de}
|
12
|
+
s.executables = [%q{edit_json.rb}, %q{prettify_json.rb}]
|
13
|
+
s.extensions = [%q{ext/json/ext/parser/extconf.rb}, %q{ext/json/ext/generator/extconf.rb}]
|
14
|
+
s.extra_rdoc_files = [%q{README.rdoc}]
|
15
|
+
s.files = [%q{tests}, %q{tests/test_json_string_matching.rb}, %q{tests/test_json_fixtures.rb}, %q{tests/setup_variant.rb}, %q{tests/fixtures}, %q{tests/fixtures/fail6.json}, %q{tests/fixtures/fail9.json}, %q{tests/fixtures/fail10.json}, %q{tests/fixtures/fail24.json}, %q{tests/fixtures/fail28.json}, %q{tests/fixtures/fail13.json}, %q{tests/fixtures/fail4.json}, %q{tests/fixtures/pass3.json}, %q{tests/fixtures/fail11.json}, %q{tests/fixtures/fail14.json}, %q{tests/fixtures/fail3.json}, %q{tests/fixtures/fail12.json}, %q{tests/fixtures/pass16.json}, %q{tests/fixtures/pass15.json}, %q{tests/fixtures/fail20.json}, %q{tests/fixtures/fail8.json}, %q{tests/fixtures/pass2.json}, %q{tests/fixtures/fail5.json}, %q{tests/fixtures/fail1.json}, %q{tests/fixtures/fail25.json}, %q{tests/fixtures/pass17.json}, %q{tests/fixtures/fail7.json}, %q{tests/fixtures/pass26.json}, %q{tests/fixtures/fail21.json}, %q{tests/fixtures/pass1.json}, %q{tests/fixtures/fail23.json}, %q{tests/fixtures/fail18.json}, %q{tests/fixtures/fail2.json}, %q{tests/fixtures/fail22.json}, %q{tests/fixtures/fail27.json}, %q{tests/fixtures/fail19.json}, %q{tests/test_json_unicode.rb}, %q{tests/test_json_addition.rb}, %q{tests/test_json_generate.rb}, %q{tests/test_json_encoding.rb}, %q{tests/test_json.rb}, %q{COPYING}, %q{TODO}, %q{Rakefile}, %q{benchmarks}, %q{benchmarks/data-p4-3GHz-ruby18}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure.log}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML.log}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails.log}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails.log}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure.log}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt.log}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkComparison.log}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt.log}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkComparison.log}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe-autocorrelation.dat}, %q{benchmarks/parser2_benchmark.rb}, %q{benchmarks/parser_benchmark.rb}, %q{benchmarks/generator2_benchmark.rb}, %q{benchmarks/generator_benchmark.rb}, %q{benchmarks/ohai.ruby}, %q{benchmarks/data}, %q{benchmarks/ohai.json}, %q{lib}, %q{lib/json}, %q{lib/json/json.xpm}, %q{lib/json/TrueClass.xpm}, %q{lib/json/version.rb}, %q{lib/json/Array.xpm}, %q{lib/json/add}, %q{lib/json/add/core.rb}, %q{lib/json/add/rails.rb}, %q{lib/json/common.rb}, %q{lib/json/pure}, %q{lib/json/pure/generator.rb}, %q{lib/json/pure/parser.rb}, %q{lib/json/ext.rb}, %q{lib/json/pure.rb}, %q{lib/json/Key.xpm}, %q{lib/json/FalseClass.xpm}, %q{lib/json/editor.rb}, %q{lib/json/Numeric.xpm}, %q{lib/json/ext}, %q{lib/json/NilClass.xpm}, %q{lib/json/String.xpm}, %q{lib/json/Hash.xpm}, %q{lib/json.rb}, %q{Gemfile}, %q{README.rdoc}, %q{json_pure.gemspec}, %q{GPL}, %q{CHANGES}, %q{bin}, %q{bin/prettify_json.rb}, %q{bin/edit_json.rb}, %q{COPYING-json-jruby}, %q{ext}, %q{ext/json}, %q{ext/json/ext}, %q{ext/json/ext/parser}, %q{ext/json/ext/parser/parser.h}, %q{ext/json/ext/parser/extconf.rb}, %q{ext/json/ext/parser/parser.rl}, %q{ext/json/ext/parser/parser.c}, %q{ext/json/ext/generator}, %q{ext/json/ext/generator/generator.c}, %q{ext/json/ext/generator/extconf.rb}, %q{ext/json/ext/generator/generator.h}, %q{VERSION}, %q{data}, %q{data/prototype.js}, %q{data/index.html}, %q{data/example.json}, %q{json.gemspec}, %q{java}, %q{java/src}, %q{java/src/json}, %q{java/src/json/ext}, %q{java/src/json/ext/Parser.java}, %q{java/src/json/ext/RuntimeInfo.java}, %q{java/src/json/ext/GeneratorState.java}, %q{java/src/json/ext/OptionsReader.java}, %q{java/src/json/ext/ParserService.java}, %q{java/src/json/ext/Parser.rl}, %q{java/src/json/ext/StringEncoder.java}, %q{java/src/json/ext/GeneratorService.java}, %q{java/src/json/ext/Utils.java}, %q{java/src/json/ext/StringDecoder.java}, %q{java/src/json/ext/Generator.java}, %q{java/src/json/ext/ByteListTranscoder.java}, %q{java/src/json/ext/GeneratorMethods.java}, %q{java/lib}, %q{java/lib/bytelist-1.0.6.jar}, %q{java/lib/jcodings.jar}, %q{diagrams}, %q{README-json-jruby.markdown}, %q{install.rb}, %q{json-java.gemspec}, %q{tools}, %q{tools/fuzz.rb}, %q{tools/server.rb}, %q{./tests/test_json_string_matching.rb}, %q{./tests/test_json_fixtures.rb}, %q{./tests/test_json_unicode.rb}, %q{./tests/test_json_addition.rb}, %q{./tests/test_json_generate.rb}, %q{./tests/test_json_encoding.rb}, %q{./tests/test_json.rb}]
|
16
|
+
s.homepage = %q{http://flori.github.com/json}
|
17
|
+
s.rdoc_options = [%q{--title}, %q{JSON implemention for Ruby}, %q{--main}, %q{README.rdoc}]
|
18
|
+
s.require_paths = [%q{ext/json/ext}, %q{ext}, %q{lib}]
|
19
|
+
s.rubyforge_project = %q{json}
|
20
|
+
s.rubygems_version = %q{1.8.5}
|
21
|
+
s.summary = %q{JSON Implementation for Ruby}
|
22
|
+
s.test_files = [%q{./tests/test_json_string_matching.rb}, %q{./tests/test_json_fixtures.rb}, %q{./tests/test_json_unicode.rb}, %q{./tests/test_json_addition.rb}, %q{./tests/test_json_generate.rb}, %q{./tests/test_json_encoding.rb}, %q{./tests/test_json.rb}]
|
23
|
+
|
24
|
+
if s.respond_to? :specification_version then
|
25
|
+
s.specification_version = 4
|
26
|
+
|
27
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
28
|
+
s.add_development_dependency(%q<permutation>, [">= 0"])
|
29
|
+
s.add_development_dependency(%q<bullshit>, [">= 0"])
|
30
|
+
s.add_development_dependency(%q<sdoc>, [">= 0"])
|
31
|
+
else
|
32
|
+
s.add_dependency(%q<permutation>, [">= 0"])
|
33
|
+
s.add_dependency(%q<bullshit>, [">= 0"])
|
34
|
+
s.add_dependency(%q<sdoc>, [">= 0"])
|
35
|
+
end
|
36
|
+
else
|
37
|
+
s.add_dependency(%q<permutation>, [">= 0"])
|
38
|
+
s.add_dependency(%q<bullshit>, [">= 0"])
|
39
|
+
s.add_dependency(%q<sdoc>, [">= 0"])
|
40
|
+
end
|
41
|
+
end
|
data/json_pure.gemspec
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{json_pure}
|
5
|
+
s.version = "1.5.4"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = [%q{Florian Frank}]
|
9
|
+
s.date = %q{2011-07-08}
|
10
|
+
s.description = %q{This is a JSON implementation in pure Ruby.}
|
11
|
+
s.email = %q{flori@ping.de}
|
12
|
+
s.executables = [%q{edit_json.rb}, %q{prettify_json.rb}]
|
13
|
+
s.extra_rdoc_files = [%q{README.rdoc}]
|
14
|
+
s.files = [%q{tests}, %q{tests/test_json_string_matching.rb}, %q{tests/test_json_fixtures.rb}, %q{tests/setup_variant.rb}, %q{tests/fixtures}, %q{tests/fixtures/fail6.json}, %q{tests/fixtures/fail9.json}, %q{tests/fixtures/fail10.json}, %q{tests/fixtures/fail24.json}, %q{tests/fixtures/fail28.json}, %q{tests/fixtures/fail13.json}, %q{tests/fixtures/fail4.json}, %q{tests/fixtures/pass3.json}, %q{tests/fixtures/fail11.json}, %q{tests/fixtures/fail14.json}, %q{tests/fixtures/fail3.json}, %q{tests/fixtures/fail12.json}, %q{tests/fixtures/pass16.json}, %q{tests/fixtures/pass15.json}, %q{tests/fixtures/fail20.json}, %q{tests/fixtures/fail8.json}, %q{tests/fixtures/pass2.json}, %q{tests/fixtures/fail5.json}, %q{tests/fixtures/fail1.json}, %q{tests/fixtures/fail25.json}, %q{tests/fixtures/pass17.json}, %q{tests/fixtures/fail7.json}, %q{tests/fixtures/pass26.json}, %q{tests/fixtures/fail21.json}, %q{tests/fixtures/pass1.json}, %q{tests/fixtures/fail23.json}, %q{tests/fixtures/fail18.json}, %q{tests/fixtures/fail2.json}, %q{tests/fixtures/fail22.json}, %q{tests/fixtures/fail27.json}, %q{tests/fixtures/fail19.json}, %q{tests/test_json_unicode.rb}, %q{tests/test_json_addition.rb}, %q{tests/test_json_generate.rb}, %q{tests/test_json_encoding.rb}, %q{tests/test_json.rb}, %q{COPYING}, %q{TODO}, %q{Rakefile}, %q{benchmarks}, %q{benchmarks/data-p4-3GHz-ruby18}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure.log}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML.log}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails.log}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails.log}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure.log}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt#parser-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkPure#parser.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkExt.log}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_pretty.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkComparison.log}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkRails#parser.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt.log}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_safe-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkRails#generator-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_fast-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkPure#generator_fast.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkComparison.log}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_pretty-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/ParserBenchmarkYAML#parser-autocorrelation.dat}, %q{benchmarks/data-p4-3GHz-ruby18/GeneratorBenchmarkExt#generator_safe-autocorrelation.dat}, %q{benchmarks/parser2_benchmark.rb}, %q{benchmarks/parser_benchmark.rb}, %q{benchmarks/generator2_benchmark.rb}, %q{benchmarks/generator_benchmark.rb}, %q{benchmarks/ohai.ruby}, %q{benchmarks/data}, %q{benchmarks/ohai.json}, %q{lib}, %q{lib/json}, %q{lib/json/json.xpm}, %q{lib/json/TrueClass.xpm}, %q{lib/json/version.rb}, %q{lib/json/Array.xpm}, %q{lib/json/add}, %q{lib/json/add/core.rb}, %q{lib/json/add/rails.rb}, %q{lib/json/common.rb}, %q{lib/json/pure}, %q{lib/json/pure/generator.rb}, %q{lib/json/pure/parser.rb}, %q{lib/json/ext.rb}, %q{lib/json/pure.rb}, %q{lib/json/Key.xpm}, %q{lib/json/FalseClass.xpm}, %q{lib/json/editor.rb}, %q{lib/json/Numeric.xpm}, %q{lib/json/ext}, %q{lib/json/NilClass.xpm}, %q{lib/json/String.xpm}, %q{lib/json/Hash.xpm}, %q{lib/json.rb}, %q{Gemfile}, %q{README.rdoc}, %q{json_pure.gemspec}, %q{GPL}, %q{CHANGES}, %q{bin}, %q{bin/prettify_json.rb}, %q{bin/edit_json.rb}, %q{COPYING-json-jruby}, %q{ext}, %q{ext/json}, %q{ext/json/ext}, %q{ext/json/ext/parser}, %q{ext/json/ext/parser/parser.h}, %q{ext/json/ext/parser/extconf.rb}, %q{ext/json/ext/parser/parser.rl}, %q{ext/json/ext/parser/mkmf.log}, %q{ext/json/ext/parser/parser.c}, %q{ext/json/ext/generator}, %q{ext/json/ext/generator/generator.c}, %q{ext/json/ext/generator/extconf.rb}, %q{ext/json/ext/generator/generator.h}, %q{VERSION}, %q{data}, %q{data/prototype.js}, %q{data/index.html}, %q{data/example.json}, %q{json.gemspec}, %q{java}, %q{java/src}, %q{java/src/json}, %q{java/src/json/ext}, %q{java/src/json/ext/Parser.java}, %q{java/src/json/ext/RuntimeInfo.java}, %q{java/src/json/ext/GeneratorState.java}, %q{java/src/json/ext/OptionsReader.java}, %q{java/src/json/ext/ParserService.java}, %q{java/src/json/ext/Parser.rl}, %q{java/src/json/ext/StringEncoder.java}, %q{java/src/json/ext/GeneratorService.java}, %q{java/src/json/ext/Utils.java}, %q{java/src/json/ext/StringDecoder.java}, %q{java/src/json/ext/Generator.java}, %q{java/src/json/ext/ByteListTranscoder.java}, %q{java/src/json/ext/GeneratorMethods.java}, %q{java/lib}, %q{java/lib/bytelist-1.0.6.jar}, %q{java/lib/jcodings.jar}, %q{diagrams}, %q{README-json-jruby.markdown}, %q{install.rb}, %q{json-java.gemspec}, %q{tools}, %q{tools/fuzz.rb}, %q{tools/server.rb}, %q{./tests/test_json_string_matching.rb}, %q{./tests/test_json_fixtures.rb}, %q{./tests/test_json_unicode.rb}, %q{./tests/test_json_addition.rb}, %q{./tests/test_json_generate.rb}, %q{./tests/test_json_encoding.rb}, %q{./tests/test_json.rb}]
|
15
|
+
s.homepage = %q{http://flori.github.com/json}
|
16
|
+
s.rdoc_options = [%q{--title}, %q{JSON implemention for ruby}, %q{--main}, %q{README.rdoc}]
|
17
|
+
s.require_paths = [%q{lib}]
|
18
|
+
s.rubyforge_project = %q{json}
|
19
|
+
s.rubygems_version = %q{1.8.5}
|
20
|
+
s.summary = %q{JSON Implementation for Ruby}
|
21
|
+
s.test_files = [%q{./tests/test_json_string_matching.rb}, %q{./tests/test_json_fixtures.rb}, %q{./tests/test_json_unicode.rb}, %q{./tests/test_json_addition.rb}, %q{./tests/test_json_generate.rb}, %q{./tests/test_json_encoding.rb}, %q{./tests/test_json.rb}]
|
22
|
+
|
23
|
+
if s.respond_to? :specification_version then
|
24
|
+
s.specification_version = 4
|
25
|
+
|
26
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
27
|
+
s.add_development_dependency(%q<permutation>, [">= 0"])
|
28
|
+
s.add_development_dependency(%q<bullshit>, [">= 0"])
|
29
|
+
s.add_development_dependency(%q<sdoc>, [">= 0"])
|
30
|
+
s.add_development_dependency(%q<rake>, ["~> 0.9.2"])
|
31
|
+
s.add_runtime_dependency(%q<spruz>, ["~> 0.2.8"])
|
32
|
+
else
|
33
|
+
s.add_dependency(%q<permutation>, [">= 0"])
|
34
|
+
s.add_dependency(%q<bullshit>, [">= 0"])
|
35
|
+
s.add_dependency(%q<sdoc>, [">= 0"])
|
36
|
+
s.add_dependency(%q<rake>, ["~> 0.9.2"])
|
37
|
+
s.add_dependency(%q<spruz>, ["~> 0.2.8"])
|
38
|
+
end
|
39
|
+
else
|
40
|
+
s.add_dependency(%q<permutation>, [">= 0"])
|
41
|
+
s.add_dependency(%q<bullshit>, [">= 0"])
|
42
|
+
s.add_dependency(%q<sdoc>, [">= 0"])
|
43
|
+
s.add_dependency(%q<rake>, ["~> 0.9.2"])
|
44
|
+
s.add_dependency(%q<spruz>, ["~> 0.2.8"])
|
45
|
+
end
|
46
|
+
end
|
data/lib/json.rb
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
##
|
2
|
+
# = JavaScript Object Notation (JSON)
|
3
|
+
#
|
4
|
+
# JSON is a lightweight data-interchange format. It is easy for us
|
5
|
+
# humans to read and write. Plus, equally simple for machines to generate or parse.
|
6
|
+
# JSON is completely language agnostic, making it the ideal interchange format.
|
7
|
+
#
|
8
|
+
# Built on two universally available structures:
|
9
|
+
# 1. A collection of name/value pairs. Often referred to as an _object_, hash table, record, struct, keyed list, or associative array.
|
10
|
+
# 2. An orderd list of values. More commonly named as an _array_, vector, sequence, or list.
|
11
|
+
#
|
12
|
+
# To read more about JSON visit: http://json.org
|
13
|
+
#
|
14
|
+
# == Parsing JSON
|
15
|
+
#
|
16
|
+
# To parse a JSON string received by another application, or generated within
|
17
|
+
# your existing application:
|
18
|
+
#
|
19
|
+
# require 'json'
|
20
|
+
#
|
21
|
+
# my_hash = JSON.parse('{"hello": "goodbye"}')
|
22
|
+
# puts my_hash["hello"] => "goodbye"
|
23
|
+
#
|
24
|
+
# Notice the extra quotes <tt>''</tt> around the hash notation. Ruby expects
|
25
|
+
# the argument to be a string and can't convert objects like a hash or array.
|
26
|
+
#
|
27
|
+
# Ruby converts your string into a hash
|
28
|
+
#
|
29
|
+
# == Generating JSON
|
30
|
+
#
|
31
|
+
# Creating a JSON string for communication or serialization is
|
32
|
+
# just as simple.
|
33
|
+
#
|
34
|
+
# require 'json'
|
35
|
+
#
|
36
|
+
# my_hash = {:hello => "goodbye"}
|
37
|
+
# puts JSON.generate(my_hash) => "{\"hello\":\"goodbye\"}"
|
38
|
+
#
|
39
|
+
# Or an alternative way:
|
40
|
+
#
|
41
|
+
# require 'json'
|
42
|
+
# puts {:hello => "goodbye"}.to_json => "{\"hello\":\"goodbye\"}"
|
43
|
+
#
|
44
|
+
# <tt>JSON.generate</tt> only allows objects or arrays to be converted
|
45
|
+
# to JSON syntax. While <tt>to_json</tt> accepts many Ruby classes
|
46
|
+
# even though it only acts a method for serialization:
|
47
|
+
#
|
48
|
+
# require 'json'
|
49
|
+
#
|
50
|
+
# 1.to_json => "1"
|
51
|
+
#
|
52
|
+
|
53
|
+
require 'json/common'
|
54
|
+
module JSON
|
55
|
+
require 'json/version'
|
56
|
+
|
57
|
+
begin
|
58
|
+
require 'json/ext'
|
59
|
+
rescue LoadError
|
60
|
+
require 'json/pure'
|
61
|
+
end
|
62
|
+
end
|
data/lib/json/Array.xpm
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
/* XPM */
|
2
|
+
static char * Array_xpm[] = {
|
3
|
+
"16 16 2 1",
|
4
|
+
" c None",
|
5
|
+
". c #000000",
|
6
|
+
" ",
|
7
|
+
" ",
|
8
|
+
" ",
|
9
|
+
" .......... ",
|
10
|
+
" . . ",
|
11
|
+
" . . ",
|
12
|
+
" . . ",
|
13
|
+
" . . ",
|
14
|
+
" . . ",
|
15
|
+
" . . ",
|
16
|
+
" . . ",
|
17
|
+
" . . ",
|
18
|
+
" .......... ",
|
19
|
+
" ",
|
20
|
+
" ",
|
21
|
+
" "};
|
@@ -0,0 +1,21 @@
|
|
1
|
+
/* XPM */
|
2
|
+
static char * False_xpm[] = {
|
3
|
+
"16 16 2 1",
|
4
|
+
" c None",
|
5
|
+
". c #FF0000",
|
6
|
+
" ",
|
7
|
+
" ",
|
8
|
+
" ",
|
9
|
+
" ...... ",
|
10
|
+
" . ",
|
11
|
+
" . ",
|
12
|
+
" . ",
|
13
|
+
" ...... ",
|
14
|
+
" . ",
|
15
|
+
" . ",
|
16
|
+
" . ",
|
17
|
+
" . ",
|
18
|
+
" . ",
|
19
|
+
" ",
|
20
|
+
" ",
|
21
|
+
" "};
|
data/lib/json/Hash.xpm
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
/* XPM */
|
2
|
+
static char * Hash_xpm[] = {
|
3
|
+
"16 16 2 1",
|
4
|
+
" c None",
|
5
|
+
". c #000000",
|
6
|
+
" ",
|
7
|
+
" ",
|
8
|
+
" ",
|
9
|
+
" . . ",
|
10
|
+
" . . ",
|
11
|
+
" . . ",
|
12
|
+
" ......... ",
|
13
|
+
" . . ",
|
14
|
+
" . . ",
|
15
|
+
" ......... ",
|
16
|
+
" . . ",
|
17
|
+
" . . ",
|
18
|
+
" . . ",
|
19
|
+
" ",
|
20
|
+
" ",
|
21
|
+
" "};
|
data/lib/json/Key.xpm
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
/* XPM */
|
2
|
+
static char * Key_xpm[] = {
|
3
|
+
"16 16 54 1",
|
4
|
+
" c None",
|
5
|
+
". c #110007",
|
6
|
+
"+ c #0E0900",
|
7
|
+
"@ c #000013",
|
8
|
+
"# c #070600",
|
9
|
+
"$ c #F6F006",
|
10
|
+
"% c #ECE711",
|
11
|
+
"& c #E5EE00",
|
12
|
+
"* c #16021E",
|
13
|
+
"= c #120900",
|
14
|
+
"- c #EDF12B",
|
15
|
+
"; c #000033",
|
16
|
+
"> c #0F0000",
|
17
|
+
", c #FFFE03",
|
18
|
+
"' c #E6E500",
|
19
|
+
") c #16021B",
|
20
|
+
"! c #F7F502",
|
21
|
+
"~ c #000E00",
|
22
|
+
"{ c #130000",
|
23
|
+
"] c #FFF000",
|
24
|
+
"^ c #FFE711",
|
25
|
+
"/ c #140005",
|
26
|
+
"( c #190025",
|
27
|
+
"_ c #E9DD27",
|
28
|
+
": c #E7DC04",
|
29
|
+
"< c #FFEC09",
|
30
|
+
"[ c #FFE707",
|
31
|
+
"} c #FFDE10",
|
32
|
+
"| c #150021",
|
33
|
+
"1 c #160700",
|
34
|
+
"2 c #FAF60E",
|
35
|
+
"3 c #EFE301",
|
36
|
+
"4 c #FEF300",
|
37
|
+
"5 c #E7E000",
|
38
|
+
"6 c #FFFF08",
|
39
|
+
"7 c #0E0206",
|
40
|
+
"8 c #040000",
|
41
|
+
"9 c #03052E",
|
42
|
+
"0 c #041212",
|
43
|
+
"a c #070300",
|
44
|
+
"b c #F2E713",
|
45
|
+
"c c #F9DE13",
|
46
|
+
"d c #36091E",
|
47
|
+
"e c #00001C",
|
48
|
+
"f c #1F0010",
|
49
|
+
"g c #FFF500",
|
50
|
+
"h c #DEDE00",
|
51
|
+
"i c #050A00",
|
52
|
+
"j c #FAF14A",
|
53
|
+
"k c #F5F200",
|
54
|
+
"l c #040404",
|
55
|
+
"m c #1A0D00",
|
56
|
+
"n c #EDE43D",
|
57
|
+
"o c #ECE007",
|
58
|
+
" ",
|
59
|
+
" ",
|
60
|
+
" .+@ ",
|
61
|
+
" #$%&* ",
|
62
|
+
" =-;>,') ",
|
63
|
+
" >!~{]^/ ",
|
64
|
+
" (_:<[}| ",
|
65
|
+
" 1234567 ",
|
66
|
+
" 890abcd ",
|
67
|
+
" efghi ",
|
68
|
+
" >jkl ",
|
69
|
+
" mnol ",
|
70
|
+
" >kl ",
|
71
|
+
" ll ",
|
72
|
+
" ",
|
73
|
+
" "};
|
@@ -0,0 +1,21 @@
|
|
1
|
+
/* XPM */
|
2
|
+
static char * False_xpm[] = {
|
3
|
+
"16 16 2 1",
|
4
|
+
" c None",
|
5
|
+
". c #000000",
|
6
|
+
" ",
|
7
|
+
" ",
|
8
|
+
" ",
|
9
|
+
" ... ",
|
10
|
+
" . . ",
|
11
|
+
" . . ",
|
12
|
+
" . . ",
|
13
|
+
" . . ",
|
14
|
+
" . . ",
|
15
|
+
" . . ",
|
16
|
+
" . . ",
|
17
|
+
" . . ",
|
18
|
+
" ... ",
|
19
|
+
" ",
|
20
|
+
" ",
|
21
|
+
" "};
|
@@ -0,0 +1,28 @@
|
|
1
|
+
/* XPM */
|
2
|
+
static char * Numeric_xpm[] = {
|
3
|
+
"16 16 9 1",
|
4
|
+
" c None",
|
5
|
+
". c #FF0000",
|
6
|
+
"+ c #0000FF",
|
7
|
+
"@ c #0023DB",
|
8
|
+
"# c #00EA14",
|
9
|
+
"$ c #00FF00",
|
10
|
+
"% c #004FAF",
|
11
|
+
"& c #0028D6",
|
12
|
+
"* c #00F20C",
|
13
|
+
" ",
|
14
|
+
" ",
|
15
|
+
" ",
|
16
|
+
" ... +++@#$$$$ ",
|
17
|
+
" .+ %& $$ ",
|
18
|
+
" . + $ ",
|
19
|
+
" . + $$ ",
|
20
|
+
" . ++$$$$ ",
|
21
|
+
" . + $$ ",
|
22
|
+
" . + $ ",
|
23
|
+
" . + $ ",
|
24
|
+
" . + $ $$ ",
|
25
|
+
" .....++++*$$ ",
|
26
|
+
" ",
|
27
|
+
" ",
|
28
|
+
" "};
|
data/lib/json/String.xpm
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
/* XPM */
|
2
|
+
static char * String_xpm[] = {
|
3
|
+
"16 16 77 1",
|
4
|
+
" c None",
|
5
|
+
". c #000000",
|
6
|
+
"+ c #040404",
|
7
|
+
"@ c #080806",
|
8
|
+
"# c #090606",
|
9
|
+
"$ c #EEEAE1",
|
10
|
+
"% c #E7E3DA",
|
11
|
+
"& c #E0DBD1",
|
12
|
+
"* c #D4B46F",
|
13
|
+
"= c #0C0906",
|
14
|
+
"- c #E3C072",
|
15
|
+
"; c #E4C072",
|
16
|
+
"> c #060505",
|
17
|
+
", c #0B0A08",
|
18
|
+
"' c #D5B264",
|
19
|
+
") c #D3AF5A",
|
20
|
+
"! c #080602",
|
21
|
+
"~ c #E1B863",
|
22
|
+
"{ c #DDB151",
|
23
|
+
"] c #DBAE4A",
|
24
|
+
"^ c #DDB152",
|
25
|
+
"/ c #DDB252",
|
26
|
+
"( c #070705",
|
27
|
+
"_ c #0C0A07",
|
28
|
+
": c #D3A33B",
|
29
|
+
"< c #020201",
|
30
|
+
"[ c #DAAA41",
|
31
|
+
"} c #040302",
|
32
|
+
"| c #E4D9BF",
|
33
|
+
"1 c #0B0907",
|
34
|
+
"2 c #030201",
|
35
|
+
"3 c #020200",
|
36
|
+
"4 c #C99115",
|
37
|
+
"5 c #080704",
|
38
|
+
"6 c #DBC8A2",
|
39
|
+
"7 c #E7D7B4",
|
40
|
+
"8 c #E0CD9E",
|
41
|
+
"9 c #080601",
|
42
|
+
"0 c #040400",
|
43
|
+
"a c #010100",
|
44
|
+
"b c #0B0B08",
|
45
|
+
"c c #DCBF83",
|
46
|
+
"d c #DCBC75",
|
47
|
+
"e c #DEB559",
|
48
|
+
"f c #040301",
|
49
|
+
"g c #BC8815",
|
50
|
+
"h c #120E07",
|
51
|
+
"i c #060402",
|
52
|
+
"j c #0A0804",
|
53
|
+
"k c #D4A747",
|
54
|
+
"l c #D6A12F",
|
55
|
+
"m c #0E0C05",
|
56
|
+
"n c #C8C1B0",
|
57
|
+
"o c #1D1B15",
|
58
|
+
"p c #D7AD51",
|
59
|
+
"q c #070502",
|
60
|
+
"r c #080804",
|
61
|
+
"s c #BC953B",
|
62
|
+
"t c #C4BDAD",
|
63
|
+
"u c #0B0807",
|
64
|
+
"v c #DBAC47",
|
65
|
+
"w c #1B150A",
|
66
|
+
"x c #B78A2C",
|
67
|
+
"y c #D8A83C",
|
68
|
+
"z c #D4A338",
|
69
|
+
"A c #0F0B03",
|
70
|
+
"B c #181105",
|
71
|
+
"C c #C59325",
|
72
|
+
"D c #C18E1F",
|
73
|
+
"E c #060600",
|
74
|
+
"F c #CC992D",
|
75
|
+
"G c #B98B25",
|
76
|
+
"H c #B3831F",
|
77
|
+
"I c #C08C1C",
|
78
|
+
"J c #060500",
|
79
|
+
"K c #0E0C03",
|
80
|
+
"L c #0D0A00",
|
81
|
+
" ",
|
82
|
+
" .+@# ",
|
83
|
+
" .$%&*= ",
|
84
|
+
" .-;>,')! ",
|
85
|
+
" .~. .{]. ",
|
86
|
+
" .^/. (_:< ",
|
87
|
+
" .[.}|$12 ",
|
88
|
+
" 345678}90 ",
|
89
|
+
" a2bcdefgh ",
|
90
|
+
" ijkl.mno ",
|
91
|
+
" <pq. rstu ",
|
92
|
+
" .]v. wx= ",
|
93
|
+
" .yzABCDE ",
|
94
|
+
" .FGHIJ ",
|
95
|
+
" 0KL0 ",
|
96
|
+
" "};
|