ceml 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,618 +0,0 @@
1
- # Autogenerated from a Treetop grammar. Edits may be lost.
2
-
3
-
4
- module CEML
5
- module Casting
6
- include Treetop::Runtime
7
-
8
- def root
9
- @root || :casting_statement
10
- end
11
-
12
- include Lexer
13
-
14
- module CastingStatement0
15
- def ws1
16
- elements[0]
17
- end
18
-
19
- def ws2
20
- elements[2]
21
- end
22
-
23
- def distance
24
- elements[3]
25
- end
26
- end
27
-
28
- module CastingStatement1
29
- def casting_method
30
- elements[0]
31
- end
32
-
33
- def ws
34
- elements[1]
35
- end
36
-
37
- def roles_phrase
38
- elements[2]
39
- end
40
-
41
- def within
42
- elements[3]
43
- end
44
-
45
- def nl
46
- elements[4]
47
- end
48
- end
49
-
50
- def _nt_casting_statement
51
- start_index = index
52
- if node_cache[:casting_statement].has_key?(index)
53
- cached = node_cache[:casting_statement][index]
54
- @index = cached.interval.end if cached
55
- return cached
56
- end
57
-
58
- i0, s0 = index, []
59
- r1 = _nt_casting_method
60
- s0 << r1
61
- if r1
62
- r2 = _nt_ws
63
- s0 << r2
64
- if r2
65
- r3 = _nt_roles_phrase
66
- s0 << r3
67
- if r3
68
- i5, s5 = index, []
69
- r6 = _nt_ws
70
- s5 << r6
71
- if r6
72
- if has_terminal?('within', false, index)
73
- r7 = instantiate_node(SyntaxNode,input, index...(index + 6))
74
- @index += 6
75
- else
76
- terminal_parse_failure('within')
77
- r7 = nil
78
- end
79
- s5 << r7
80
- if r7
81
- r8 = _nt_ws
82
- s5 << r8
83
- if r8
84
- r9 = _nt_distance
85
- s5 << r9
86
- end
87
- end
88
- end
89
- if s5.last
90
- r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
91
- r5.extend(CastingStatement0)
92
- else
93
- @index = i5
94
- r5 = nil
95
- end
96
- if r5
97
- r4 = r5
98
- else
99
- r4 = instantiate_node(SyntaxNode,input, index...index)
100
- end
101
- s0 << r4
102
- if r4
103
- r10 = _nt_nl
104
- s0 << r10
105
- end
106
- end
107
- end
108
- end
109
- if s0.last
110
- r0 = instantiate_node(CastingStatement,input, i0...index, s0)
111
- r0.extend(CastingStatement1)
112
- else
113
- @index = i0
114
- r0 = nil
115
- end
116
-
117
- node_cache[:casting_statement][start_index] = r0
118
-
119
- r0
120
- end
121
-
122
- def _nt_casting_method
123
- start_index = index
124
- if node_cache[:casting_method].has_key?(index)
125
- cached = node_cache[:casting_method][index]
126
- @index = cached.interval.end if cached
127
- return cached
128
- end
129
-
130
- i0 = index
131
- if has_terminal?('gather', false, index)
132
- r1 = instantiate_node(SyntaxNode,input, index...(index + 6))
133
- @index += 6
134
- else
135
- terminal_parse_failure('gather')
136
- r1 = nil
137
- end
138
- if r1
139
- r0 = r1
140
- else
141
- if has_terminal?('teams of', false, index)
142
- r2 = instantiate_node(SyntaxNode,input, index...(index + 8))
143
- @index += 8
144
- else
145
- terminal_parse_failure('teams of')
146
- r2 = nil
147
- end
148
- if r2
149
- r0 = r2
150
- else
151
- if has_terminal?('nab', false, index)
152
- r3 = instantiate_node(SyntaxNode,input, index...(index + 3))
153
- @index += 3
154
- else
155
- terminal_parse_failure('nab')
156
- r3 = nil
157
- end
158
- if r3
159
- r0 = r3
160
- else
161
- @index = i0
162
- r0 = nil
163
- end
164
- end
165
- end
166
-
167
- node_cache[:casting_method][start_index] = r0
168
-
169
- r0
170
- end
171
-
172
- module RolesPhrase0
173
- def ws1
174
- elements[0]
175
- end
176
-
177
- def ws2
178
- elements[2]
179
- end
180
-
181
- def roles_phrase
182
- elements[3]
183
- end
184
- end
185
-
186
- module RolesPhrase1
187
- def role
188
- elements[0]
189
- end
190
-
191
- def more_roles
192
- elements[1]
193
- end
194
- end
195
-
196
- def _nt_roles_phrase
197
- start_index = index
198
- if node_cache[:roles_phrase].has_key?(index)
199
- cached = node_cache[:roles_phrase][index]
200
- @index = cached.interval.end if cached
201
- return cached
202
- end
203
-
204
- i0, s0 = index, []
205
- r1 = _nt_role
206
- s0 << r1
207
- if r1
208
- i3, s3 = index, []
209
- r4 = _nt_ws
210
- s3 << r4
211
- if r4
212
- if has_terminal?('and', false, index)
213
- r5 = instantiate_node(SyntaxNode,input, index...(index + 3))
214
- @index += 3
215
- else
216
- terminal_parse_failure('and')
217
- r5 = nil
218
- end
219
- s3 << r5
220
- if r5
221
- r6 = _nt_ws
222
- s3 << r6
223
- if r6
224
- r7 = _nt_roles_phrase
225
- s3 << r7
226
- end
227
- end
228
- end
229
- if s3.last
230
- r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
231
- r3.extend(RolesPhrase0)
232
- else
233
- @index = i3
234
- r3 = nil
235
- end
236
- if r3
237
- r2 = r3
238
- else
239
- r2 = instantiate_node(SyntaxNode,input, index...index)
240
- end
241
- s0 << r2
242
- end
243
- if s0.last
244
- r0 = instantiate_node(CastingRoles,input, i0...index, s0)
245
- r0.extend(RolesPhrase1)
246
- else
247
- @index = i0
248
- r0 = nil
249
- end
250
-
251
- node_cache[:roles_phrase][start_index] = r0
252
-
253
- r0
254
- end
255
-
256
- module Distance0
257
- def number
258
- elements[0]
259
- end
260
-
261
- def distance_unit
262
- elements[2]
263
- end
264
- end
265
-
266
- module Distance1
267
- def meters
268
- number.text_value.to_f * case distance_unit.text_value
269
- when /^mi/; 1600; when /^k/; 1000; when /^m/; 1;
270
- when /^f/; 0.35; when /^b/; 200; else 1; end
271
- end
272
- end
273
-
274
- def _nt_distance
275
- start_index = index
276
- if node_cache[:distance].has_key?(index)
277
- cached = node_cache[:distance][index]
278
- @index = cached.interval.end if cached
279
- return cached
280
- end
281
-
282
- i0, s0 = index, []
283
- r1 = _nt_number
284
- s0 << r1
285
- if r1
286
- r3 = _nt_ws
287
- if r3
288
- r2 = r3
289
- else
290
- r2 = instantiate_node(SyntaxNode,input, index...index)
291
- end
292
- s0 << r2
293
- if r2
294
- i4 = index
295
- if has_terminal?('miles', false, index)
296
- r5 = instantiate_node(SyntaxNode,input, index...(index + 5))
297
- @index += 5
298
- else
299
- terminal_parse_failure('miles')
300
- r5 = nil
301
- end
302
- if r5
303
- r4 = r5
304
- else
305
- if has_terminal?('mile', false, index)
306
- r6 = instantiate_node(SyntaxNode,input, index...(index + 4))
307
- @index += 4
308
- else
309
- terminal_parse_failure('mile')
310
- r6 = nil
311
- end
312
- if r6
313
- r4 = r6
314
- else
315
- if has_terminal?('mi', false, index)
316
- r7 = instantiate_node(SyntaxNode,input, index...(index + 2))
317
- @index += 2
318
- else
319
- terminal_parse_failure('mi')
320
- r7 = nil
321
- end
322
- if r7
323
- r4 = r7
324
- else
325
- if has_terminal?('km', false, index)
326
- r8 = instantiate_node(SyntaxNode,input, index...(index + 2))
327
- @index += 2
328
- else
329
- terminal_parse_failure('km')
330
- r8 = nil
331
- end
332
- if r8
333
- r4 = r8
334
- else
335
- if has_terminal?('kilometers', false, index)
336
- r9 = instantiate_node(SyntaxNode,input, index...(index + 10))
337
- @index += 10
338
- else
339
- terminal_parse_failure('kilometers')
340
- r9 = nil
341
- end
342
- if r9
343
- r4 = r9
344
- else
345
- if has_terminal?('k', false, index)
346
- r10 = instantiate_node(SyntaxNode,input, index...(index + 1))
347
- @index += 1
348
- else
349
- terminal_parse_failure('k')
350
- r10 = nil
351
- end
352
- if r10
353
- r4 = r10
354
- else
355
- if has_terminal?('meters', false, index)
356
- r11 = instantiate_node(SyntaxNode,input, index...(index + 6))
357
- @index += 6
358
- else
359
- terminal_parse_failure('meters')
360
- r11 = nil
361
- end
362
- if r11
363
- r4 = r11
364
- else
365
- if has_terminal?('m', false, index)
366
- r12 = instantiate_node(SyntaxNode,input, index...(index + 1))
367
- @index += 1
368
- else
369
- terminal_parse_failure('m')
370
- r12 = nil
371
- end
372
- if r12
373
- r4 = r12
374
- else
375
- if has_terminal?('ft', false, index)
376
- r13 = instantiate_node(SyntaxNode,input, index...(index + 2))
377
- @index += 2
378
- else
379
- terminal_parse_failure('ft')
380
- r13 = nil
381
- end
382
- if r13
383
- r4 = r13
384
- else
385
- if has_terminal?('feet', false, index)
386
- r14 = instantiate_node(SyntaxNode,input, index...(index + 4))
387
- @index += 4
388
- else
389
- terminal_parse_failure('feet')
390
- r14 = nil
391
- end
392
- if r14
393
- r4 = r14
394
- else
395
- if has_terminal?('f', false, index)
396
- r15 = instantiate_node(SyntaxNode,input, index...(index + 1))
397
- @index += 1
398
- else
399
- terminal_parse_failure('f')
400
- r15 = nil
401
- end
402
- if r15
403
- r4 = r15
404
- else
405
- if has_terminal?('blocks', false, index)
406
- r16 = instantiate_node(SyntaxNode,input, index...(index + 6))
407
- @index += 6
408
- else
409
- terminal_parse_failure('blocks')
410
- r16 = nil
411
- end
412
- if r16
413
- r4 = r16
414
- else
415
- if has_terminal?('block', false, index)
416
- r17 = instantiate_node(SyntaxNode,input, index...(index + 5))
417
- @index += 5
418
- else
419
- terminal_parse_failure('block')
420
- r17 = nil
421
- end
422
- if r17
423
- r4 = r17
424
- else
425
- @index = i4
426
- r4 = nil
427
- end
428
- end
429
- end
430
- end
431
- end
432
- end
433
- end
434
- end
435
- end
436
- end
437
- end
438
- end
439
- end
440
- s0 << r4
441
- end
442
- end
443
- if s0.last
444
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
445
- r0.extend(Distance0)
446
- r0.extend(Distance1)
447
- else
448
- @index = i0
449
- r0 = nil
450
- end
451
-
452
- node_cache[:distance][start_index] = r0
453
-
454
- r0
455
- end
456
-
457
- module Role0
458
- def range
459
- elements[0]
460
- end
461
-
462
- def id
463
- elements[2]
464
- end
465
- end
466
-
467
- module Role1
468
- def name; id.text_value; end
469
- def min; range.empty? ? 2 : range.min; end
470
- def max; range.empty? ? 10000 : range.max; end
471
- end
472
-
473
- def _nt_role
474
- start_index = index
475
- if node_cache[:role].has_key?(index)
476
- cached = node_cache[:role][index]
477
- @index = cached.interval.end if cached
478
- return cached
479
- end
480
-
481
- i0, s0 = index, []
482
- r2 = _nt_range
483
- if r2
484
- r1 = r2
485
- else
486
- r1 = instantiate_node(SyntaxNode,input, index...index)
487
- end
488
- s0 << r1
489
- if r1
490
- r4 = _nt_ws
491
- if r4
492
- r3 = r4
493
- else
494
- r3 = instantiate_node(SyntaxNode,input, index...index)
495
- end
496
- s0 << r3
497
- if r3
498
- r5 = _nt_id
499
- s0 << r5
500
- end
501
- end
502
- if s0.last
503
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
504
- r0.extend(Role0)
505
- r0.extend(Role1)
506
- else
507
- @index = i0
508
- r0 = nil
509
- end
510
-
511
- node_cache[:role][start_index] = r0
512
-
513
- r0
514
- end
515
-
516
- module Range0
517
- def number
518
- elements[1]
519
- end
520
- end
521
-
522
- module Range1
523
- def min
524
- elements[0]
525
- end
526
-
527
- def max
528
- elements[1]
529
- end
530
- end
531
-
532
- module Range2
533
- def min; super.text_value.to_i; end
534
- def max
535
- return min if super.empty?
536
- return 10000 if super.text_value == '+'
537
- return super.number.text_value.to_i
538
- end
539
- end
540
-
541
- def _nt_range
542
- start_index = index
543
- if node_cache[:range].has_key?(index)
544
- cached = node_cache[:range][index]
545
- @index = cached.interval.end if cached
546
- return cached
547
- end
548
-
549
- i0, s0 = index, []
550
- r1 = _nt_number
551
- s0 << r1
552
- if r1
553
- i3 = index
554
- if has_terminal?('+', false, index)
555
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
556
- @index += 1
557
- else
558
- terminal_parse_failure('+')
559
- r4 = nil
560
- end
561
- if r4
562
- r3 = r4
563
- else
564
- i5, s5 = index, []
565
- if has_terminal?('-', false, index)
566
- r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
567
- @index += 1
568
- else
569
- terminal_parse_failure('-')
570
- r6 = nil
571
- end
572
- s5 << r6
573
- if r6
574
- r7 = _nt_number
575
- s5 << r7
576
- end
577
- if s5.last
578
- r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
579
- r5.extend(Range0)
580
- else
581
- @index = i5
582
- r5 = nil
583
- end
584
- if r5
585
- r3 = r5
586
- else
587
- @index = i3
588
- r3 = nil
589
- end
590
- end
591
- if r3
592
- r2 = r3
593
- else
594
- r2 = instantiate_node(SyntaxNode,input, index...index)
595
- end
596
- s0 << r2
597
- end
598
- if s0.last
599
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
600
- r0.extend(Range1)
601
- r0.extend(Range2)
602
- else
603
- @index = i0
604
- r0 = nil
605
- end
606
-
607
- node_cache[:range][start_index] = r0
608
-
609
- r0
610
- end
611
-
612
- end
613
-
614
- class CastingParser < Treetop::Runtime::CompiledParser
615
- include Casting
616
- end
617
-
618
- end