vanilla 1.15.1 → 1.16

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.
Files changed (37) hide show
  1. data/Rakefile +2 -2
  2. data/lib/vanilla.rb +2 -1
  3. data/lib/vanilla/renderers/base.rb +2 -2
  4. data/lib/vanilla/routes.rb +5 -18
  5. data/lib/vanilla/snip_reference_parser.rb +87 -64
  6. data/pristine_app/Gemfile.lock +2 -2
  7. data/pristine_app/README +11 -0
  8. data/pristine_app/soups/dynasnips/current_snip.rb +7 -7
  9. data/pristine_app/soups/tutorial/vanilla-rb.snip +2 -2
  10. data/pristine_app/soups/tutorial/vanilla.snip +1 -1
  11. data/test/dynasnip_test.rb +13 -0
  12. data/test/dynasnips/link_to_current_snip_test.rb +19 -0
  13. data/test/dynasnips/link_to_test.rb +27 -0
  14. data/test/dynasnips/page_title_test.rb +19 -0
  15. data/test/{base_renderer_test.rb → renderers/base_renderer_test.rb} +0 -0
  16. data/test/{erb_renderer_test.rb → renderers/erb_renderer_test.rb} +0 -0
  17. data/test/{haml_renderer_test.rb → renderers/haml_renderer_test.rb} +0 -0
  18. data/test/{markdown_renderer_test.rb → renderers/markdown_renderer_test.rb} +0 -0
  19. data/test/{raw_renderer_test.rb → renderers/raw_renderer_test.rb} +0 -0
  20. data/test/{ruby_renderer_test.rb → renderers/ruby_renderer_test.rb} +0 -0
  21. data/test/{snip_reference_test.rb → snip_inclusion_test.rb} +1 -1
  22. data/test/snip_reference_parser_test.rb +110 -42
  23. data/test/vanilla_presenting_test.rb +1 -5
  24. metadata +46 -57
  25. data/lib/vanilla/snip_reference.rb +0 -754
  26. data/lib/vanilla/snip_reference.treetop +0 -67
  27. data/pristine_app/tmp/restart.txt +0 -0
  28. data/test/soup/blah.snip +0 -4
  29. data/test/soup/blah.snip.erb +0 -4
  30. data/test/soup/blah.snip.haml +0 -4
  31. data/test/soup/blah.snip.markdown +0 -4
  32. data/test/soup/blah.snip.rb +0 -4
  33. data/test/soup/blah.snip.textile +0 -4
  34. data/test/soup/current_snip.snip +0 -14
  35. data/test/soup/layout.snip +0 -4
  36. data/test/soup/test.snip +0 -3
  37. data/test/soup/test_dyna.snip +0 -7
@@ -2,8 +2,6 @@ require "test_helper"
2
2
 
3
3
  context "When presenting" do
4
4
  setup do
5
- require File.expand_path("../../pristine_app/soups/dynasnips/link_to", __FILE__)
6
- @app.soup << LinkTo.snip_attributes
7
5
  set_main_template "<tag>{current_snip}</tag>"
8
6
  create_snip :name => "test", :content => "blah {other_snip}", :part => 'part content'
9
7
  create_snip :name => "other_snip", :content => "blah!"
@@ -103,9 +101,7 @@ context "When presenting" do
103
101
  context "and a custom default renderer has been provided" do
104
102
  should "use that renderer" do
105
103
  @app = Vanilla::App.new(:soup => soup_path, :default_renderer => ::Vanilla::Renderers::Bold)
106
- require File.expand_path("../../pristine_app/soups/dynasnips/current_snip", __FILE__)
107
- @app.soup << CurrentSnip.snip_attributes
108
- create_snip :name => "layout", :content => "{current_snip}", :render_as => "base"
104
+ create_snip :name => "layout", :content => "{test}", :render_as => "base"
109
105
  create_snip :name => "test", :content => "test"
110
106
  assert_response_body "<b>test</b>", "/test"
111
107
  end
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vanilla
3
3
  version: !ruby/object:Gem::Version
4
- hash: 41
5
- prerelease:
4
+ hash: 47
5
+ prerelease: false
6
6
  segments:
7
7
  - 1
8
- - 15
9
- - 1
10
- version: 1.15.1
8
+ - 16
9
+ version: "1.16"
11
10
  platform: ruby
12
11
  authors:
13
12
  - James Adam
@@ -15,10 +14,13 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2011-04-28 00:00:00 +01:00
17
+ date: 2011-05-03 00:00:00 +01:00
19
18
  default_executable:
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
21
+ prerelease: false
22
+ type: :runtime
23
+ name: rack
22
24
  version_requirements: &id001 !ruby/object:Gem::Requirement
23
25
  none: false
24
26
  requirements:
@@ -31,10 +33,10 @@ dependencies:
31
33
  - 1
32
34
  version: 0.9.1
33
35
  requirement: *id001
36
+ - !ruby/object:Gem::Dependency
34
37
  prerelease: false
35
- name: rack
36
38
  type: :runtime
37
- - !ruby/object:Gem::Dependency
39
+ name: soup
38
40
  version_requirements: &id002 !ruby/object:Gem::Requirement
39
41
  none: false
40
42
  requirements:
@@ -47,10 +49,10 @@ dependencies:
47
49
  - 6
48
50
  version: 1.0.6
49
51
  requirement: *id002
52
+ - !ruby/object:Gem::Dependency
50
53
  prerelease: false
51
- name: soup
52
54
  type: :runtime
53
- - !ruby/object:Gem::Dependency
55
+ name: ratom
54
56
  version_requirements: &id003 !ruby/object:Gem::Requirement
55
57
  none: false
56
58
  requirements:
@@ -63,10 +65,10 @@ dependencies:
63
65
  - 5
64
66
  version: 0.3.5
65
67
  requirement: *id003
68
+ - !ruby/object:Gem::Dependency
66
69
  prerelease: false
67
- name: ratom
68
70
  type: :runtime
69
- - !ruby/object:Gem::Dependency
71
+ name: RedCloth
70
72
  version_requirements: &id004 !ruby/object:Gem::Requirement
71
73
  none: false
72
74
  requirements:
@@ -79,10 +81,10 @@ dependencies:
79
81
  - 1
80
82
  version: 4.1.1
81
83
  requirement: *id004
84
+ - !ruby/object:Gem::Dependency
82
85
  prerelease: false
83
- name: RedCloth
84
86
  type: :runtime
85
- - !ruby/object:Gem::Dependency
87
+ name: BlueCloth
86
88
  version_requirements: &id005 !ruby/object:Gem::Requirement
87
89
  none: false
88
90
  requirements:
@@ -95,56 +97,56 @@ dependencies:
95
97
  - 0
96
98
  version: 1.0.0
97
99
  requirement: *id005
100
+ - !ruby/object:Gem::Dependency
98
101
  prerelease: false
99
- name: BlueCloth
100
102
  type: :runtime
101
- - !ruby/object:Gem::Dependency
103
+ name: haml
102
104
  version_requirements: &id006 !ruby/object:Gem::Requirement
103
105
  none: false
104
106
  requirements:
105
107
  - - ">="
106
108
  - !ruby/object:Gem::Version
107
- hash: 5
109
+ hash: 3
108
110
  segments:
109
- - 1
110
- - 4
111
- - 1
112
- version: 1.4.1
111
+ - 0
112
+ version: "0"
113
113
  requirement: *id006
114
+ - !ruby/object:Gem::Dependency
114
115
  prerelease: false
115
- name: treetop
116
116
  type: :runtime
117
- - !ruby/object:Gem::Dependency
117
+ name: parslet
118
118
  version_requirements: &id007 !ruby/object:Gem::Requirement
119
119
  none: false
120
120
  requirements:
121
121
  - - ">="
122
122
  - !ruby/object:Gem::Version
123
- hash: 3
123
+ hash: 31
124
124
  segments:
125
+ - 1
126
+ - 2
125
127
  - 0
126
- version: "0"
128
+ version: 1.2.0
127
129
  requirement: *id007
128
- prerelease: false
129
- name: haml
130
- type: :runtime
131
130
  - !ruby/object:Gem::Dependency
131
+ prerelease: false
132
+ type: :development
133
+ name: kintama
132
134
  version_requirements: &id008 !ruby/object:Gem::Requirement
133
135
  none: false
134
136
  requirements:
135
137
  - - ">="
136
138
  - !ruby/object:Gem::Version
137
- hash: 17
139
+ hash: 23
138
140
  segments:
139
141
  - 0
140
142
  - 1
141
- - 5
142
- version: 0.1.5
143
+ - 6
144
+ version: 0.1.6
143
145
  requirement: *id008
146
+ - !ruby/object:Gem::Dependency
144
147
  prerelease: false
145
- name: kintama
146
148
  type: :development
147
- - !ruby/object:Gem::Dependency
149
+ name: mocha
148
150
  version_requirements: &id009 !ruby/object:Gem::Requirement
149
151
  none: false
150
152
  requirements:
@@ -155,9 +157,6 @@ dependencies:
155
157
  - 0
156
158
  version: "0"
157
159
  requirement: *id009
158
- prerelease: false
159
- name: mocha
160
- type: :development
161
160
  description:
162
161
  email: james@lazyatom.com.com
163
162
  executables:
@@ -169,25 +168,18 @@ extra_rdoc_files:
169
168
  files:
170
169
  - Rakefile
171
170
  - README
172
- - test/base_renderer_test.rb
173
171
  - test/dynasnip_test.rb
174
- - test/erb_renderer_test.rb
175
- - test/haml_renderer_test.rb
176
- - test/markdown_renderer_test.rb
177
- - test/raw_renderer_test.rb
178
- - test/ruby_renderer_test.rb
172
+ - test/dynasnips/link_to_current_snip_test.rb
173
+ - test/dynasnips/link_to_test.rb
174
+ - test/dynasnips/page_title_test.rb
175
+ - test/renderers/base_renderer_test.rb
176
+ - test/renderers/erb_renderer_test.rb
177
+ - test/renderers/haml_renderer_test.rb
178
+ - test/renderers/markdown_renderer_test.rb
179
+ - test/renderers/raw_renderer_test.rb
180
+ - test/renderers/ruby_renderer_test.rb
181
+ - test/snip_inclusion_test.rb
179
182
  - test/snip_reference_parser_test.rb
180
- - test/snip_reference_test.rb
181
- - test/soup/blah.snip
182
- - test/soup/blah.snip.erb
183
- - test/soup/blah.snip.haml
184
- - test/soup/blah.snip.markdown
185
- - test/soup/blah.snip.rb
186
- - test/soup/blah.snip.textile
187
- - test/soup/current_snip.snip
188
- - test/soup/layout.snip
189
- - test/soup/test.snip
190
- - test/soup/test_dyna.snip
191
183
  - test/test_helper.rb
192
184
  - test/vanilla_app_test.rb
193
185
  - test/vanilla_presenting_test.rb
@@ -206,8 +198,6 @@ files:
206
198
  - lib/vanilla/renderers.rb
207
199
  - lib/vanilla/request.rb
208
200
  - lib/vanilla/routes.rb
209
- - lib/vanilla/snip_reference.rb
210
- - lib/vanilla/snip_reference.treetop
211
201
  - lib/vanilla/snip_reference_parser.rb
212
202
  - lib/vanilla/static.rb
213
203
  - lib/vanilla.rb
@@ -247,7 +237,6 @@ files:
247
237
  - pristine_app/soups/tutorial/tutorial.snip.markdown
248
238
  - pristine_app/soups/tutorial/vanilla-rb.snip
249
239
  - pristine_app/soups/tutorial/vanilla.snip
250
- - pristine_app/tmp/restart.txt
251
240
  has_rdoc: true
252
241
  homepage: http://github.com/lazyatom/vanilla-rb
253
242
  licenses: []
@@ -279,7 +268,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
279
268
  requirements: []
280
269
 
281
270
  rubyforge_project: vanilla
282
- rubygems_version: 1.4.1
271
+ rubygems_version: 1.3.7
283
272
  signing_key:
284
273
  specification_version: 3
285
274
  summary: A bliki-type web content thing.
@@ -1,754 +0,0 @@
1
- # Autogenerated from a Treetop grammar. Edits may be lost.
2
-
3
-
4
- module SnipReference
5
- include Treetop::Runtime
6
-
7
- def root
8
- @root ||= :snip_call
9
- end
10
-
11
- module SnipCall0
12
- def spaces
13
- elements[0]
14
- end
15
-
16
- def argument_list
17
- elements[1]
18
- end
19
- end
20
-
21
- module SnipCall1
22
- end
23
-
24
- def _nt_snip_call
25
- start_index = index
26
- if node_cache[:snip_call].has_key?(index)
27
- cached = node_cache[:snip_call][index]
28
- if cached
29
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
30
- @index = cached.interval.end
31
- end
32
- return cached
33
- end
34
-
35
- i0, s0 = index, []
36
- if has_terminal?("{", false, index)
37
- r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
38
- @index += 1
39
- else
40
- terminal_parse_failure("{")
41
- r1 = nil
42
- end
43
- s0 << r1
44
- if r1
45
- r2 = _nt_snip_name
46
- s0 << r2
47
- if r2
48
- i4, s4 = index, []
49
- r5 = _nt_spaces
50
- s4 << r5
51
- if r5
52
- r6 = _nt_argument_list
53
- s4 << r6
54
- end
55
- if s4.last
56
- r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
57
- r4.extend(SnipCall0)
58
- else
59
- @index = i4
60
- r4 = nil
61
- end
62
- if r4
63
- r3 = r4
64
- else
65
- r3 = instantiate_node(SyntaxNode,input, index...index)
66
- end
67
- s0 << r3
68
- if r3
69
- if has_terminal?("}", false, index)
70
- r7 = instantiate_node(SyntaxNode,input, index...(index + 1))
71
- @index += 1
72
- else
73
- terminal_parse_failure("}")
74
- r7 = nil
75
- end
76
- s0 << r7
77
- end
78
- end
79
- end
80
- if s0.last
81
- r0 = instantiate_node(SnipCall,input, i0...index, s0)
82
- r0.extend(SnipCall1)
83
- else
84
- @index = i0
85
- r0 = nil
86
- end
87
-
88
- node_cache[:snip_call][start_index] = r0
89
-
90
- r0
91
- end
92
-
93
- module SnipName0
94
- def word1
95
- elements[0]
96
- end
97
-
98
- def word2
99
- elements[2]
100
- end
101
- end
102
-
103
- def _nt_snip_name
104
- start_index = index
105
- if node_cache[:snip_name].has_key?(index)
106
- cached = node_cache[:snip_name][index]
107
- if cached
108
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
109
- @index = cached.interval.end
110
- end
111
- return cached
112
- end
113
-
114
- i0 = index
115
- i1, s1 = index, []
116
- r2 = _nt_word
117
- s1 << r2
118
- if r2
119
- if has_terminal?(".", false, index)
120
- r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
121
- @index += 1
122
- else
123
- terminal_parse_failure(".")
124
- r3 = nil
125
- end
126
- s1 << r3
127
- if r3
128
- r4 = _nt_word
129
- s1 << r4
130
- end
131
- end
132
- if s1.last
133
- r1 = instantiate_node(SnipNameWithAttribute,input, i1...index, s1)
134
- r1.extend(SnipName0)
135
- else
136
- @index = i1
137
- r1 = nil
138
- end
139
- if r1
140
- r0 = r1
141
- else
142
- r5 = _nt_word
143
- r5.extend(SnipName)
144
- if r5
145
- r0 = r5
146
- else
147
- @index = i0
148
- r0 = nil
149
- end
150
- end
151
-
152
- node_cache[:snip_name][start_index] = r0
153
-
154
- r0
155
- end
156
-
157
- module ArgumentList0
158
- def argument_separator
159
- elements[0]
160
- end
161
-
162
- def argument_list
163
- elements[1]
164
- end
165
- end
166
-
167
- module ArgumentList1
168
- def argument
169
- elements[0]
170
- end
171
-
172
- end
173
-
174
- def _nt_argument_list
175
- start_index = index
176
- if node_cache[:argument_list].has_key?(index)
177
- cached = node_cache[:argument_list][index]
178
- if cached
179
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
180
- @index = cached.interval.end
181
- end
182
- return cached
183
- end
184
-
185
- i0, s0 = index, []
186
- r1 = _nt_argument
187
- s0 << r1
188
- if r1
189
- i3, s3 = index, []
190
- r4 = _nt_argument_separator
191
- s3 << r4
192
- if r4
193
- r5 = _nt_argument_list
194
- s3 << r5
195
- end
196
- if s3.last
197
- r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
198
- r3.extend(ArgumentList0)
199
- else
200
- @index = i3
201
- r3 = nil
202
- end
203
- if r3
204
- r2 = r3
205
- else
206
- r2 = instantiate_node(SyntaxNode,input, index...index)
207
- end
208
- s0 << r2
209
- end
210
- if s0.last
211
- r0 = instantiate_node(ArgumentList,input, i0...index, s0)
212
- r0.extend(ArgumentList1)
213
- else
214
- @index = i0
215
- r0 = nil
216
- end
217
-
218
- node_cache[:argument_list][start_index] = r0
219
-
220
- r0
221
- end
222
-
223
- def _nt_argument
224
- start_index = index
225
- if node_cache[:argument].has_key?(index)
226
- cached = node_cache[:argument][index]
227
- if cached
228
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
229
- @index = cached.interval.end
230
- end
231
- return cached
232
- end
233
-
234
- i0 = index
235
- r1 = _nt_hash_argument
236
- r1.extend(HashArgument)
237
- if r1
238
- r0 = r1
239
- else
240
- r2 = _nt_unquoted_words
241
- r2.extend(NormalArgument)
242
- if r2
243
- r0 = r2
244
- else
245
- r3 = _nt_quoted_word
246
- r3.extend(NormalArgument)
247
- if r3
248
- r0 = r3
249
- else
250
- r4 = _nt_empty_argument
251
- r4.extend(EmptyArgument)
252
- if r4
253
- r0 = r4
254
- else
255
- @index = i0
256
- r0 = nil
257
- end
258
- end
259
- end
260
- end
261
-
262
- node_cache[:argument][start_index] = r0
263
-
264
- r0
265
- end
266
-
267
- module ArgumentSeparator0
268
- def optional_spaces
269
- elements[1]
270
- end
271
- end
272
-
273
- def _nt_argument_separator
274
- start_index = index
275
- if node_cache[:argument_separator].has_key?(index)
276
- cached = node_cache[:argument_separator][index]
277
- if cached
278
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
279
- @index = cached.interval.end
280
- end
281
- return cached
282
- end
283
-
284
- i0, s0 = index, []
285
- if has_terminal?(",", false, index)
286
- r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
287
- @index += 1
288
- else
289
- terminal_parse_failure(",")
290
- r1 = nil
291
- end
292
- s0 << r1
293
- if r1
294
- r2 = _nt_optional_spaces
295
- s0 << r2
296
- end
297
- if s0.last
298
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
299
- r0.extend(ArgumentSeparator0)
300
- else
301
- @index = i0
302
- r0 = nil
303
- end
304
-
305
- node_cache[:argument_separator][start_index] = r0
306
-
307
- r0
308
- end
309
-
310
- module HashArgument0
311
- def word_or_symbol
312
- elements[0]
313
- end
314
-
315
- def optional_spaces1
316
- elements[1]
317
- end
318
-
319
- def hash_argument_separator
320
- elements[2]
321
- end
322
-
323
- def optional_spaces2
324
- elements[3]
325
- end
326
-
327
- def word
328
- elements[4]
329
- end
330
- end
331
-
332
- def _nt_hash_argument
333
- start_index = index
334
- if node_cache[:hash_argument].has_key?(index)
335
- cached = node_cache[:hash_argument][index]
336
- if cached
337
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
338
- @index = cached.interval.end
339
- end
340
- return cached
341
- end
342
-
343
- i0, s0 = index, []
344
- r1 = _nt_word_or_symbol
345
- s0 << r1
346
- if r1
347
- r2 = _nt_optional_spaces
348
- s0 << r2
349
- if r2
350
- r3 = _nt_hash_argument_separator
351
- s0 << r3
352
- if r3
353
- r4 = _nt_optional_spaces
354
- s0 << r4
355
- if r4
356
- r5 = _nt_word
357
- s0 << r5
358
- end
359
- end
360
- end
361
- end
362
- if s0.last
363
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
364
- r0.extend(HashArgument0)
365
- else
366
- @index = i0
367
- r0 = nil
368
- end
369
-
370
- node_cache[:hash_argument][start_index] = r0
371
-
372
- r0
373
- end
374
-
375
- def _nt_hash_argument_separator
376
- start_index = index
377
- if node_cache[:hash_argument_separator].has_key?(index)
378
- cached = node_cache[:hash_argument_separator][index]
379
- if cached
380
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
381
- @index = cached.interval.end
382
- end
383
- return cached
384
- end
385
-
386
- i0 = index
387
- if has_terminal?("=>", false, index)
388
- r1 = instantiate_node(SyntaxNode,input, index...(index + 2))
389
- @index += 2
390
- else
391
- terminal_parse_failure("=>")
392
- r1 = nil
393
- end
394
- if r1
395
- r0 = r1
396
- else
397
- if has_terminal?(":", false, index)
398
- r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
399
- @index += 1
400
- else
401
- terminal_parse_failure(":")
402
- r2 = nil
403
- end
404
- if r2
405
- r0 = r2
406
- else
407
- @index = i0
408
- r0 = nil
409
- end
410
- end
411
-
412
- node_cache[:hash_argument_separator][start_index] = r0
413
-
414
- r0
415
- end
416
-
417
- def _nt_empty_argument
418
- start_index = index
419
- if node_cache[:empty_argument].has_key?(index)
420
- cached = node_cache[:empty_argument][index]
421
- if cached
422
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
423
- @index = cached.interval.end
424
- end
425
- return cached
426
- end
427
-
428
- r0 = _nt_optional_spaces
429
-
430
- node_cache[:empty_argument][start_index] = r0
431
-
432
- r0
433
- end
434
-
435
- module WordOrSymbol0
436
- def word
437
- elements[1]
438
- end
439
- end
440
-
441
- def _nt_word_or_symbol
442
- start_index = index
443
- if node_cache[:word_or_symbol].has_key?(index)
444
- cached = node_cache[:word_or_symbol][index]
445
- if cached
446
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
447
- @index = cached.interval.end
448
- end
449
- return cached
450
- end
451
-
452
- i0, s0 = index, []
453
- if has_terminal?('\G[:]', true, index)
454
- r2 = true
455
- @index += 1
456
- else
457
- r2 = nil
458
- end
459
- if r2
460
- r1 = r2
461
- else
462
- r1 = instantiate_node(SyntaxNode,input, index...index)
463
- end
464
- s0 << r1
465
- if r1
466
- r3 = _nt_word
467
- s0 << r3
468
- end
469
- if s0.last
470
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
471
- r0.extend(WordOrSymbol0)
472
- else
473
- @index = i0
474
- r0 = nil
475
- end
476
-
477
- node_cache[:word_or_symbol][start_index] = r0
478
-
479
- r0
480
- end
481
-
482
- def _nt_word
483
- start_index = index
484
- if node_cache[:word].has_key?(index)
485
- cached = node_cache[:word][index]
486
- if cached
487
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
488
- @index = cached.interval.end
489
- end
490
- return cached
491
- end
492
-
493
- i0 = index
494
- r1 = _nt_unquoted_word
495
- if r1
496
- r0 = r1
497
- else
498
- r2 = _nt_quoted_word
499
- if r2
500
- r0 = r2
501
- else
502
- @index = i0
503
- r0 = nil
504
- end
505
- end
506
-
507
- node_cache[:word][start_index] = r0
508
-
509
- r0
510
- end
511
-
512
- def _nt_unquoted_word
513
- start_index = index
514
- if node_cache[:unquoted_word].has_key?(index)
515
- cached = node_cache[:unquoted_word][index]
516
- if cached
517
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
518
- @index = cached.interval.end
519
- end
520
- return cached
521
- end
522
-
523
- s0, i0 = [], index
524
- loop do
525
- if has_terminal?('\G[a-zA-Z0-9_\\-]', true, index)
526
- r1 = true
527
- @index += 1
528
- else
529
- r1 = nil
530
- end
531
- if r1
532
- s0 << r1
533
- else
534
- break
535
- end
536
- end
537
- if s0.empty?
538
- @index = i0
539
- r0 = nil
540
- else
541
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
542
- end
543
-
544
- node_cache[:unquoted_word][start_index] = r0
545
-
546
- r0
547
- end
548
-
549
- module QuotedWord0
550
- end
551
-
552
- module QuotedWord1
553
- end
554
-
555
- def _nt_quoted_word
556
- start_index = index
557
- if node_cache[:quoted_word].has_key?(index)
558
- cached = node_cache[:quoted_word][index]
559
- if cached
560
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
561
- @index = cached.interval.end
562
- end
563
- return cached
564
- end
565
-
566
- i0 = index
567
- i1, s1 = index, []
568
- if has_terminal?("\"", false, index)
569
- r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
570
- @index += 1
571
- else
572
- terminal_parse_failure("\"")
573
- r2 = nil
574
- end
575
- s1 << r2
576
- if r2
577
- r3 = _nt_unquoted_words
578
- s1 << r3
579
- if r3
580
- if has_terminal?("\"", false, index)
581
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
582
- @index += 1
583
- else
584
- terminal_parse_failure("\"")
585
- r4 = nil
586
- end
587
- s1 << r4
588
- end
589
- end
590
- if s1.last
591
- r1 = instantiate_node(QuotedWord,input, i1...index, s1)
592
- r1.extend(QuotedWord0)
593
- else
594
- @index = i1
595
- r1 = nil
596
- end
597
- if r1
598
- r0 = r1
599
- else
600
- i5, s5 = index, []
601
- if has_terminal?("'", false, index)
602
- r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
603
- @index += 1
604
- else
605
- terminal_parse_failure("'")
606
- r6 = nil
607
- end
608
- s5 << r6
609
- if r6
610
- r7 = _nt_unquoted_words
611
- s5 << r7
612
- if r7
613
- if has_terminal?("'", false, index)
614
- r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
615
- @index += 1
616
- else
617
- terminal_parse_failure("'")
618
- r8 = nil
619
- end
620
- s5 << r8
621
- end
622
- end
623
- if s5.last
624
- r5 = instantiate_node(QuotedWord,input, i5...index, s5)
625
- r5.extend(QuotedWord1)
626
- else
627
- @index = i5
628
- r5 = nil
629
- end
630
- if r5
631
- r0 = r5
632
- else
633
- @index = i0
634
- r0 = nil
635
- end
636
- end
637
-
638
- node_cache[:quoted_word][start_index] = r0
639
-
640
- r0
641
- end
642
-
643
- def _nt_unquoted_words
644
- start_index = index
645
- if node_cache[:unquoted_words].has_key?(index)
646
- cached = node_cache[:unquoted_words][index]
647
- if cached
648
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
649
- @index = cached.interval.end
650
- end
651
- return cached
652
- end
653
-
654
- s0, i0 = [], index
655
- loop do
656
- if has_terminal?('\G[a-zA-Z0-9_\\- ]', true, index)
657
- r1 = true
658
- @index += 1
659
- else
660
- r1 = nil
661
- end
662
- if r1
663
- s0 << r1
664
- else
665
- break
666
- end
667
- end
668
- if s0.empty?
669
- @index = i0
670
- r0 = nil
671
- else
672
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
673
- end
674
-
675
- node_cache[:unquoted_words][start_index] = r0
676
-
677
- r0
678
- end
679
-
680
- def _nt_optional_spaces
681
- start_index = index
682
- if node_cache[:optional_spaces].has_key?(index)
683
- cached = node_cache[:optional_spaces][index]
684
- if cached
685
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
686
- @index = cached.interval.end
687
- end
688
- return cached
689
- end
690
-
691
- s0, i0 = [], index
692
- loop do
693
- if has_terminal?('\G[ ]', true, index)
694
- r1 = true
695
- @index += 1
696
- else
697
- r1 = nil
698
- end
699
- if r1
700
- s0 << r1
701
- else
702
- break
703
- end
704
- end
705
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
706
-
707
- node_cache[:optional_spaces][start_index] = r0
708
-
709
- r0
710
- end
711
-
712
- def _nt_spaces
713
- start_index = index
714
- if node_cache[:spaces].has_key?(index)
715
- cached = node_cache[:spaces][index]
716
- if cached
717
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
718
- @index = cached.interval.end
719
- end
720
- return cached
721
- end
722
-
723
- s0, i0 = [], index
724
- loop do
725
- if has_terminal?('\G[ ]', true, index)
726
- r1 = true
727
- @index += 1
728
- else
729
- r1 = nil
730
- end
731
- if r1
732
- s0 << r1
733
- else
734
- break
735
- end
736
- end
737
- if s0.empty?
738
- @index = i0
739
- r0 = nil
740
- else
741
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
742
- end
743
-
744
- node_cache[:spaces][start_index] = r0
745
-
746
- r0
747
- end
748
-
749
- end
750
-
751
- class SnipReferenceParser < Treetop::Runtime::CompiledParser
752
- include SnipReference
753
- end
754
-