sdl4r 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Test all 13 literal types
3
+ *
4
+ * @author Daniel Leuck
5
+ */
6
+
7
+ -- String Tests -----------------------------------
8
+
9
+ string1 "hello"
10
+ string2 "hi"
11
+ string3 `aloha`
12
+ # note: string4 and string5 should appear as one line with no new line chars
13
+ string4 "hi \
14
+ there"
15
+ string5 "hi \
16
+ there \
17
+ joe"
18
+ string6 "line1\nline2"
19
+ # note: new lines should be preserved for string7 and string8
20
+ string7 `line1
21
+ line2` # note: this is continued from the line above
22
+ string8 `line1
23
+ line2
24
+ line3` -- note: the previous two lines are continued from "string8"
25
+ string9 `Anything should go in this line without escapes \ \\ \n \t " "" ' ''`
26
+ string10 "escapes \"\\\n\t"
27
+ # unicode strings - if these don't display properly download a unicode font
28
+ # such as Bitstream Cyberbit, Code2000
29
+ # (http://home.att.net/~jameskass/code2000_page.htm), or MS Arial
30
+ # Unicode (http://support.microsoft.com/default.aspx?scid=kb;en-us;287247) and
31
+ # ensure your text editor supports UTF8 encoding
32
+ japanese "日本語"
33
+ korean "여보세요"
34
+ russian "здравствулте"
35
+ xml `
36
+ <root type="widget">
37
+ <color red="255" green="0" blue="0"/>
38
+ <text>Hi there!</text>
39
+ </root>
40
+ `
41
+ line_test `
42
+ new line above and below
43
+ `
44
+
45
+ -- Character Tests -----------------------------------
46
+
47
+ char1 'a'
48
+ char2 'A'
49
+ char3 '\\'
50
+ char4 '\n'
51
+ char5 '\t'
52
+ char6 '\''
53
+ char7 '"'
54
+ char8 '日'
55
+ char9 '여'
56
+ char10 'з'
57
+
58
+ -- Number Tests -----------------------------------
59
+
60
+ int1 0
61
+ int2 5
62
+ int3 -100
63
+ int4 234253532
64
+ long1 0L
65
+ long2 5l // note: this is 5 followed by a lower case L.
66
+ long3 5L
67
+ long4 3904857398753453453L
68
+ float1 1.0F
69
+ float2 .23F
70
+ float3 -.34F
71
+ double1 2.0
72
+ double2 -0.234D
73
+ double3 2.34d
74
+ decimal1 0bd
75
+ decimal2 11.111111bd
76
+ decimal3 234535.3453453453454345345341242343BD
77
+
78
+ -- Boolean Tests -----------------------------------
79
+
80
+ light-on true
81
+ light-off false
82
+
83
+ light1 on
84
+ light2 off
85
+
86
+ -- Null Tests -----------------------------------
87
+
88
+ nothing null
89
+
90
+ -- Date Tests -----------------------------------
91
+
92
+ date1 2005/12/31
93
+ date2 1882/5/2
94
+ date3 1882/05/02
95
+ _way_back 582/09/16
96
+
97
+ -- Time Span Tests -----------------------------------
98
+
99
+ time1 12:30:00
100
+ time2 24:00:00
101
+ time3 1:00:00
102
+ time4 1:0:0
103
+ time5 12:30:2
104
+ time6 12:30:23
105
+ time7 12:30:23.1
106
+ time8 12:30:23.12
107
+ time9 12:30:23.123
108
+ time10 34d:12:30:23.1
109
+ time11 1d:12:30:0
110
+ time12 5d:12:30:23.123
111
+ time13 -12:30:23.123
112
+ time14 -5d:12:30:23.123
113
+
114
+ -- Date Time Tests -----------------------------------
115
+
116
+ date_time1 2005/12/31 12:30
117
+ date_time2 1882/5/2 12:30
118
+ date_time3 2005/12/31 1:00
119
+ date_time4 1882/5/2 1:00
120
+ date_time5 2005/12/31 12:30:23.12
121
+ date_time6 1882/5/2 12:30:23.123
122
+ date_time7 1882/5/2 12:30:23.123-JST
123
+ date_time8 985/04/11 12:30:23.123-PST
124
+
125
+ -- Binary Tests -----------------------------------
126
+
127
+ # bytes for UTF8 string "hi"
128
+ hi [aGk=]
129
+ // bytes for a small PNG image
130
+ png [
131
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAKnRFWHRDcmVhdGlvbiBUaW1l
132
+ AERpIDQgTXJ6IDIwMDMgMDA6MjQ6MDQgKzAxMDDdSQ6OAAAAB3RJTUUH0wMEAAcllPlrJgAA
133
+ AAlwSFlzAAAK8AAACvABQqw0mAAAAARnQU1BAACxjwv8YQUAAADQSURBVHjaY2CgEDCCyZn/
134
+ 3YHkDhL1ejCkM+5kgXJ2zDQmXueShwwMh9+ALWSEGcCQfhZIvHlDnAk8PAwMHBxgJtyAa7bX
135
+ UdT8/cvA8Ps3hP7zB4FBYn/+vGbweqyJaoCmpiaKASDFv35BNMBoZMzwGKKOidJYoNgAuBdm
136
+ naXQgHRKDfgagxD89w8S+iAaFICwGIHFAgjrHUczAByySAaAMEgDLBphhv7/D8EYLgDZhAxA
137
+ mkAKYYbAMMwwDAOQXYDuDXRXgDC6AR7SW8jITNQAACjZgdj4VjlqAAAAAElFTkSuQmCC
138
+ ]
@@ -0,0 +1,180 @@
1
+ /**
2
+ * Test structures including value lists, attribute lists,
3
+ * children, namespaces, etc.
4
+ *
5
+ * @author Daniel Leuck
6
+ */
7
+
8
+ # test a tag with no values, attributes, or children
9
+ empty_tag
10
+
11
+ # test values (and comments)
12
+ values1 "hi"
13
+ values2 "hi" "ho"
14
+ values3 1 "ho"
15
+ values4 "hi" 5
16
+ values5 1 2
17
+ values6 1 2 3
18
+ values7 null "foo" false 1980/12/5
19
+ values8 null "foo" false 1980/12/5 12:30 `there` 15:23:12.234
20
+ values9 null "foo" false 1980/12/5 12:30 `there` 1989/8/12 15:23:12.234-JST
21
+ values10 null "foo" false 1980/12/5 12:30 `there` 15:23:12.234 \
22
+ "more stuff"
23
+ values11 null "foo" false 1980/12/5 12:30 `there` 123d:15:23:12.234 \
24
+ "more \
25
+ stuff \
26
+ here"
27
+ values12 1 /* 2 */ 3 # 4
28
+ values13 1/* 2 */3 # 4
29
+ values14 1/* 2 */3# 4
30
+ values15 1 2 /* 3 */\
31
+ 4 5 \
32
+ 6 # more comments
33
+ values16 1 2 /*
34
+ 4 */ 5
35
+ values17 1 2 /*
36
+
37
+ 4 */ 5
38
+ values18 1 2 /*
39
+ 4 6
40
+ */ 7
41
+ values19 1 /* 2 */ 3 /* 4 */ 5/*6*/7
42
+ values20 1 /* 2 */ 3 /* 4 */ 5/*6 7*/
43
+ values21 1 /* 2 */ 3 /* 4 */ 5/*6 7
44
+ */
45
+ values22 "hi""ho" "ho"5"hi"
46
+
47
+ # test attributes (and comments)
48
+ atts1 name="joe"
49
+ atts2 size=5
50
+ atts3 name="joe" size=5
51
+ atts4 name="joe" size=5 smoker=false
52
+ atts5 name="joe" /* size=5 */ smoker=false
53
+ atts6 name="joe" /* size=5 */ \
54
+ smoker=false
55
+ atts7 name="joe" /* size=5 */ # smoker=false
56
+ atts8 name="joe" size=5 smoker=false text="hi\
57
+ " birthday=1972/05/23
58
+ atts9 key=[bXlrZXk=]
59
+
60
+ # test values and attributes
61
+ valatts1 "joe" size=5
62
+ valatts2 "joe" size=5 #comment...
63
+ valatts3 "joe" size=5#comment...
64
+ valatts4 "joe" size=5 weight=160 hat="big"
65
+ valatts5 "joe" `is a
66
+ nice guy` size=5 smoker=false
67
+ valatts6 "joe" `is a
68
+ nice guy` size=5 house=`big and
69
+ blue`
70
+ valatts7 "joe" `is a
71
+ nice guy` size=5 /* house=`big and
72
+ blue` */smoker=false
73
+ valatts8 "joe" `is a
74
+ nice guy` size=5 /* random
75
+ text in comments
76
+ */ smoker=false
77
+ valatts9 "joe" `is a
78
+ nice guy` size=5/* random
79
+ text in comments
80
+ */smoker=false
81
+
82
+ # test tags with children
83
+ parent {
84
+ son
85
+ daughter
86
+ }
87
+
88
+ grandparent {
89
+ child {
90
+ son
91
+ daughter
92
+ }
93
+ child {
94
+ son
95
+ daughter
96
+ }
97
+ }
98
+
99
+ grandparent2 name="Harold" age=93 {
100
+ child name="Harold II" age=60 smoker=false {
101
+ son name="Joe"
102
+ daughter name="Akiko" birthday=1976/04/18
103
+ }
104
+ child name="Jose" {
105
+ child name="child1"
106
+ child name="child2"
107
+ child name="child3"
108
+ }
109
+ }
110
+
111
+ -- Test tags with no names (content tags) --
112
+
113
+ "hello"
114
+
115
+ files {
116
+ "c:/file1.txt"
117
+ "c:/file2.txt"
118
+ "c:/folder" {
119
+ "c:/file3.txt"
120
+ "c:/file4.txt"
121
+ }
122
+ }
123
+
124
+ matrix {
125
+ 1 2 3
126
+ 4 5 6
127
+ }
128
+
129
+ -----------------------------------------
130
+ -- tests with namespaces, comments, etc.
131
+ -----------------------------------------
132
+
133
+ person:random_guy // nice guy
134
+ person:grandparent3 name="Harold" age=93 {
135
+ person:child name="Sabrina" age=93 smoker=false { #comment here...
136
+ person:son name="Joe" -- a bit odd...
137
+ person:daughter public:name="Akiko" private:smokes=true \
138
+ public:birthday=1976/04/18
139
+ dog name="Spot"
140
+ /* cat name="Scratches" */
141
+ }
142
+ /*
143
+ person:drunk_uncle funny_drunk=false {
144
+ person:angry_daughter name="Jill"
145
+ }
146
+ */
147
+ person:child name="Jose" {
148
+ person:son
149
+ person:daughter
150
+ }
151
+ }
152
+
153
+ -----------------------------------------
154
+ -- tests with semicolon line endings
155
+ -----------------------------------------
156
+ tags {
157
+ tag1 1 2 3; tag2 foo="bar"; tag3
158
+ }
159
+
160
+ tagsA {
161
+ tag1
162
+ "fee" a=5; "fi"; "fo"
163
+ tag5
164
+ }
165
+
166
+ tagsB {
167
+ ;1;;2;3;
168
+ }
169
+
170
+ tag4 {
171
+ "fee"; "fi"; "fo"
172
+ "fum"; "foo"
173
+ }
174
+
175
+ tag5 {
176
+ "fee"; "fi"; "fo"
177
+ "fum"; "foo"
178
+ }
179
+
180
+ tag6; tag7 a=1; tag8
metadata ADDED
@@ -0,0 +1,81 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sdl4r
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 9
8
+ - 1
9
+ version: 0.9.1
10
+ platform: ruby
11
+ authors:
12
+ - Philippe Vosges
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-07-29 00:00:00 +09:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description: " The Simple Declarative Language provides an easy way to describe lists, maps,\n and trees of typed data in a compact, easy to read representation.\n For property files, configuration files, logs, and simple serialization\n requirements, SDL provides a compelling alternative to XML and Properties\n files.\n"
22
+ email: sdl-users@ikayzo.org
23
+ executables: []
24
+
25
+ extensions: []
26
+
27
+ extra_rdoc_files: []
28
+
29
+ files:
30
+ - lib/scratchpad.rb
31
+ - lib/sdl4r/sdl_time_span.rb
32
+ - lib/sdl4r/reader.rb
33
+ - lib/sdl4r/sdl.rb
34
+ - lib/sdl4r/sdl_parse_error.rb
35
+ - lib/sdl4r/tag.rb
36
+ - lib/sdl4r/parser.rb
37
+ - lib/sdl4r/sdl_binary.rb
38
+ - lib/sdl4r/tokenizer.rb
39
+ - lib/sdl4r/token.rb
40
+ - README
41
+ - TODO.txt
42
+ - Rakefile
43
+ - test/sdl4r/test_structures.sdl
44
+ - test/sdl4r/parser_test.rb
45
+ - test/sdl4r/test.rb
46
+ - test/sdl4r/test_basic_types.sdl
47
+ has_rdoc: true
48
+ homepage: http://www.ikayzo.org/confluence/display/SDL/Home
49
+ licenses: []
50
+
51
+ post_install_message:
52
+ rdoc_options: []
53
+
54
+ require_paths:
55
+ - lib
56
+ required_ruby_version: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ segments:
62
+ - 0
63
+ version: "0"
64
+ required_rubygems_version: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ segments:
70
+ - 0
71
+ version: "0"
72
+ requirements:
73
+ - none
74
+ rubyforge_project: sdl4r
75
+ rubygems_version: 1.3.7
76
+ signing_key:
77
+ specification_version: 3
78
+ summary: Simple Declarative Language for Ruby library
79
+ test_files:
80
+ - test/sdl4r/parser_test.rb
81
+ - test/sdl4r/test.rb