opencdd 0.1.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.
Files changed (97) hide show
  1. checksums.yaml +7 -0
  2. data/CLAUDE.md +486 -0
  3. data/README.md +304 -0
  4. data/bin/lint-no-raw-mdc +41 -0
  5. data/lib/cdd.rb +11 -0
  6. data/lib/opencdd/alias_table.rb +52 -0
  7. data/lib/opencdd/cddal/ast.rb +151 -0
  8. data/lib/opencdd/cddal/builder.rb +374 -0
  9. data/lib/opencdd/cddal/fetcher/in_memory.rb +32 -0
  10. data/lib/opencdd/cddal/fetcher/net_http.rb +84 -0
  11. data/lib/opencdd/cddal/fetcher.rb +18 -0
  12. data/lib/opencdd/cddal/generated_parser.rb +805 -0
  13. data/lib/opencdd/cddal/lexer.rb +193 -0
  14. data/lib/opencdd/cddal/parser.rb +19 -0
  15. data/lib/opencdd/cddal/resolver.rb +100 -0
  16. data/lib/opencdd/cddal/serializer.rb +210 -0
  17. data/lib/opencdd/cddal/value_serializer.rb +60 -0
  18. data/lib/opencdd/cddal.rb +63 -0
  19. data/lib/opencdd/class_tree.rb +80 -0
  20. data/lib/opencdd/class_type.rb +33 -0
  21. data/lib/opencdd/codegen/ts.rb +185 -0
  22. data/lib/opencdd/codegen.rb +7 -0
  23. data/lib/opencdd/composition_tree.rb +119 -0
  24. data/lib/opencdd/condition.rb +120 -0
  25. data/lib/opencdd/data_type.rb +143 -0
  26. data/lib/opencdd/database.rb +719 -0
  27. data/lib/opencdd/effective_properties.rb +119 -0
  28. data/lib/opencdd/entity/field_reader.rb +141 -0
  29. data/lib/opencdd/entity/field_registry.rb +99 -0
  30. data/lib/opencdd/entity/version_history.rb +62 -0
  31. data/lib/opencdd/entity.rb +255 -0
  32. data/lib/opencdd/exporters/json.rb +235 -0
  33. data/lib/opencdd/exporters/mermaid.rb +62 -0
  34. data/lib/opencdd/exporters/yaml.rb +16 -0
  35. data/lib/opencdd/exporters.rb +9 -0
  36. data/lib/opencdd/guid.rb +27 -0
  37. data/lib/opencdd/instance_rule.rb +70 -0
  38. data/lib/opencdd/irdi.rb +128 -0
  39. data/lib/opencdd/klass.rb +230 -0
  40. data/lib/opencdd/languages.rb +70 -0
  41. data/lib/opencdd/meta_class.rb +274 -0
  42. data/lib/opencdd/model/entity_store.rb +85 -0
  43. data/lib/opencdd/model/yaml_database.rb +49 -0
  44. data/lib/opencdd/model/yaml_entity.rb +196 -0
  45. data/lib/opencdd/model.rb +13 -0
  46. data/lib/opencdd/parcel/csv_reader.rb +35 -0
  47. data/lib/opencdd/parcel/csv_writer.rb +114 -0
  48. data/lib/opencdd/parcel/entity_manifest.rb +119 -0
  49. data/lib/opencdd/parcel/flat_dir_reader.rb +134 -0
  50. data/lib/opencdd/parcel/layout_detector.rb +115 -0
  51. data/lib/opencdd/parcel/metadata.rb +112 -0
  52. data/lib/opencdd/parcel/referenced_irdis.rb +91 -0
  53. data/lib/opencdd/parcel/scrape_verifier.rb +122 -0
  54. data/lib/opencdd/parcel/selector.rb +115 -0
  55. data/lib/opencdd/parcel/sharded_dir_reader.rb +151 -0
  56. data/lib/opencdd/parcel/sheet.rb +287 -0
  57. data/lib/opencdd/parcel/sheet_emitter.rb +171 -0
  58. data/lib/opencdd/parcel/sheet_schema.rb +253 -0
  59. data/lib/opencdd/parcel/workbook.rb +172 -0
  60. data/lib/opencdd/parcel/workbook_reader.rb +200 -0
  61. data/lib/opencdd/parcel/writer.rb +185 -0
  62. data/lib/opencdd/parcel.rb +175 -0
  63. data/lib/opencdd/parse_helpers.rb +73 -0
  64. data/lib/opencdd/property.rb +120 -0
  65. data/lib/opencdd/property_data_element_type.rb +44 -0
  66. data/lib/opencdd/property_ids.rb +202 -0
  67. data/lib/opencdd/reader.rb +103 -0
  68. data/lib/opencdd/relation.rb +88 -0
  69. data/lib/opencdd/relation_tree.rb +74 -0
  70. data/lib/opencdd/relation_type.rb +58 -0
  71. data/lib/opencdd/structured_values.rb +183 -0
  72. data/lib/opencdd/unit.rb +16 -0
  73. data/lib/opencdd/validator/class_reference_rule.rb +77 -0
  74. data/lib/opencdd/validator/condition_rule.rb +27 -0
  75. data/lib/opencdd/validator/data_type_rule.rb +26 -0
  76. data/lib/opencdd/validator/enum_rule.rb +27 -0
  77. data/lib/opencdd/validator/format_rule.rb +54 -0
  78. data/lib/opencdd/validator/hierarchy_rule.rb +65 -0
  79. data/lib/opencdd/validator/irdi_rule.rb +57 -0
  80. data/lib/opencdd/validator/mandatory_rule.rb +25 -0
  81. data/lib/opencdd/validator/pattern_rule.rb +26 -0
  82. data/lib/opencdd/validator/reference_rule.rb +36 -0
  83. data/lib/opencdd/validator/rule.rb +65 -0
  84. data/lib/opencdd/validator/runner.rb +101 -0
  85. data/lib/opencdd/validator/set_rule.rb +41 -0
  86. data/lib/opencdd/validator/synonym_rule.rb +30 -0
  87. data/lib/opencdd/validator/type_rule.rb +102 -0
  88. data/lib/opencdd/validator/uniqueness_rule.rb +32 -0
  89. data/lib/opencdd/validator.rb +68 -0
  90. data/lib/opencdd/value_format.rb +71 -0
  91. data/lib/opencdd/value_list.rb +42 -0
  92. data/lib/opencdd/value_term.rb +24 -0
  93. data/lib/opencdd/version.rb +5 -0
  94. data/lib/opencdd/view_control.rb +10 -0
  95. data/lib/opencdd/visitor.rb +93 -0
  96. data/lib/opencdd.rb +57 -0
  97. metadata +325 -0
@@ -0,0 +1,805 @@
1
+ #
2
+ # DO NOT MODIFY!!!!
3
+ # This file is automatically generated by Racc 1.8.1
4
+ # from Racc grammar file "cddal.y".
5
+ #
6
+
7
+ require 'racc/parser.rb'
8
+ module Opencdd
9
+ module Cddal
10
+ class GeneratedParser < Racc::Parser
11
+
12
+ module_eval(<<'...end cddal.y/module_eval...', 'cddal.y', 215)
13
+
14
+ def initialize(tokens)
15
+ @tokens = tokens
16
+ @pos = 0
17
+ end
18
+
19
+ def parse
20
+ @tokens = @tokens.tokens if @tokens.is_a?(Opencdd::Cddal::Lexer)
21
+ do_parse
22
+ rescue Racc::ParseError => e
23
+ raise Opencdd::Cddal::ParseError, e.message
24
+ end
25
+
26
+ def next_token
27
+ tok = @tokens[@pos]
28
+ @pos += 1
29
+ if tok.nil? || tok.kind == :EOF
30
+ [false, false]
31
+ else
32
+ [tok.kind, tok.value]
33
+ end
34
+ end
35
+
36
+ def lineno
37
+ tok = @tokens[@pos]
38
+ tok&.line || 0
39
+ end
40
+
41
+ def on_error(error_token_id, error_value, value_stack)
42
+ tok = @tokens[@pos - 1]
43
+ location = tok&.line ? " at line #{tok.line}" : ""
44
+ token_name = token_to_str(error_token_id) || error_token_id.to_s
45
+ raise Opencdd::Cddal::ParseError,
46
+ "unexpected #{token_name}(#{error_value.inspect})#{location}"
47
+ end
48
+ ...end cddal.y/module_eval...
49
+ ##### State transition tables begin ###
50
+
51
+ racc_action_table = [
52
+ 2, 107, 8, 9, 10, 11, 106, 14, 70, 78,
53
+ 20, 60, 61, 62, 70, 71, 21, 38, 41, 81,
54
+ 82, 71, 83, 77, 13, 57, 58, 59, 63, 69,
55
+ 70, 39, 43, 22, 76, 75, 70, 73, 74, 17,
56
+ 16, 94, 95, 71, 97, 96, 24, 81, 82, 25,
57
+ 83, 77, 89, 90, 102, 91, 92, 101, 100, 89,
58
+ 90, 27, 91, 92, 49, 104, 50, 105, 17, 18,
59
+ 17, 16, 17, 16, 28, 30, 31, 36, 37, 27,
60
+ 46, 48, 30, 52, 53, 46, 55, 103, 75, 108 ]
61
+
62
+ racc_action_check = [
63
+ 1, 87, 1, 1, 1, 1, 87, 2, 70, 70,
64
+ 10, 52, 52, 52, 52, 70, 11, 32, 34, 70,
65
+ 70, 52, 70, 70, 1, 52, 52, 52, 52, 52,
66
+ 72, 32, 34, 12, 69, 69, 105, 69, 69, 8,
67
+ 8, 72, 72, 105, 72, 72, 15, 105, 105, 18,
68
+ 105, 105, 71, 71, 75, 71, 71, 75, 75, 107,
69
+ 107, 19, 107, 107, 44, 79, 44, 79, 9, 9,
70
+ 25, 25, 28, 28, 20, 21, 22, 29, 31, 33,
71
+ 37, 43, 46, 47, 48, 50, 51, 76, 77, 99 ]
72
+
73
+ racc_action_pointer = [
74
+ nil, 0, 7, nil, nil, nil, nil, nil, 16, 45,
75
+ -14, -4, 13, nil, nil, 37, nil, nil, 36, 52,
76
+ 63, 51, 71, nil, nil, 47, nil, nil, 49, 53,
77
+ nil, 69, 7, 70, 8, nil, nil, 56, nil, nil,
78
+ nil, nil, nil, 66, 54, nil, 58, 72, 60, nil,
79
+ 61, 62, 5, nil, nil, nil, nil, nil, nil, nil,
80
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 19,
81
+ -1, 32, 21, nil, nil, 34, 63, 72, nil, 55,
82
+ nil, nil, nil, nil, nil, nil, nil, -11, nil, nil,
83
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, 72,
84
+ nil, nil, nil, nil, nil, 27, nil, 39, nil, nil,
85
+ nil ]
86
+
87
+ racc_action_default = [
88
+ -1, -77, -77, -2, -3, -4, -5, -6, -77, -77,
89
+ -77, -77, -77, -26, 111, -8, -31, -32, -31, -14,
90
+ -77, -22, -77, -7, -10, -77, -13, -16, -77, -77,
91
+ -25, -77, -77, -14, -77, -21, -23, -77, -9, -11,
92
+ -12, -15, -17, -19, -77, -27, -29, -77, -77, -24,
93
+ -77, -77, -77, -20, -28, -30, -18, -33, -34, -35,
94
+ -36, -37, -38, -39, -40, -41, -42, -43, -44, -45,
95
+ -77, -77, -77, -47, -48, -77, -77, -69, -59, -77,
96
+ -61, -63, -64, -65, -66, -67, -68, -77, -71, -73,
97
+ -74, -75, -76, -46, -49, -50, -51, -52, -53, -77,
98
+ -55, -56, -57, -58, -60, -77, -70, -77, -54, -62,
99
+ -72 ]
100
+
101
+ racc_goto_table = [
102
+ 88, 29, 80, 15, 19, 67, 45, 26, 1, 3,
103
+ 4, 5, 6, 7, 23, 32, 34, 42, 47, 54,
104
+ 33, 40, 56, 35, 12, 98, 51, 44, 64, 65,
105
+ 66, 68, 72, 93, 99, 79, 110, 109, 87 ]
106
+
107
+ racc_goto_check = [
108
+ 30, 15, 28, 7, 7, 22, 18, 10, 1, 2,
109
+ 3, 4, 5, 6, 8, 9, 11, 12, 13, 18,
110
+ 7, 10, 14, 7, 16, 22, 15, 17, 19, 20,
111
+ 21, 23, 24, 25, 26, 27, 30, 28, 29 ]
112
+
113
+ racc_goto_pointer = [
114
+ nil, 8, 8, 9, 10, 11, 12, -5, -1, -9,
115
+ -12, -11, -17, -25, -30, -20, 23, -10, -31, -24,
116
+ -23, -22, -47, -21, -37, -39, -41, -35, -68, -33,
117
+ -71 ]
118
+
119
+ racc_goto_default = [
120
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
121
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
122
+ 84, nil, 86, 85, nil, nil, nil, nil, nil, nil,
123
+ nil ]
124
+
125
+ racc_reduce_table = [
126
+ 0, 0, :racc_error,
127
+ 0, 26, :_reduce_1,
128
+ 2, 26, :_reduce_2,
129
+ 1, 27, :_reduce_none,
130
+ 1, 27, :_reduce_none,
131
+ 1, 27, :_reduce_none,
132
+ 1, 27, :_reduce_none,
133
+ 3, 28, :_reduce_7,
134
+ 0, 33, :_reduce_8,
135
+ 3, 33, :_reduce_9,
136
+ 0, 34, :_reduce_10,
137
+ 2, 34, :_reduce_11,
138
+ 5, 29, :_reduce_12,
139
+ 3, 29, :_reduce_13,
140
+ 0, 35, :_reduce_14,
141
+ 3, 35, :_reduce_15,
142
+ 0, 36, :_reduce_16,
143
+ 2, 36, :_reduce_17,
144
+ 4, 37, :_reduce_18,
145
+ 0, 38, :_reduce_19,
146
+ 2, 38, :_reduce_20,
147
+ 4, 30, :_reduce_21,
148
+ 2, 31, :_reduce_22,
149
+ 4, 31, :_reduce_23,
150
+ 6, 31, :_reduce_24,
151
+ 1, 40, :_reduce_25,
152
+ 1, 41, :_reduce_26,
153
+ 1, 42, :_reduce_27,
154
+ 3, 42, :_reduce_28,
155
+ 1, 43, :_reduce_29,
156
+ 3, 43, :_reduce_30,
157
+ 1, 32, :_reduce_31,
158
+ 1, 32, :_reduce_32,
159
+ 1, 39, :_reduce_33,
160
+ 1, 39, :_reduce_34,
161
+ 1, 39, :_reduce_35,
162
+ 1, 39, :_reduce_36,
163
+ 1, 39, :_reduce_37,
164
+ 1, 39, :_reduce_38,
165
+ 1, 39, :_reduce_39,
166
+ 1, 39, :_reduce_none,
167
+ 1, 39, :_reduce_none,
168
+ 1, 39, :_reduce_none,
169
+ 1, 39, :_reduce_none,
170
+ 1, 39, :_reduce_none,
171
+ 1, 39, :_reduce_45,
172
+ 3, 44, :_reduce_46,
173
+ 1, 49, :_reduce_47,
174
+ 1, 49, :_reduce_48,
175
+ 1, 50, :_reduce_49,
176
+ 1, 50, :_reduce_50,
177
+ 1, 50, :_reduce_51,
178
+ 1, 50, :_reduce_52,
179
+ 1, 50, :_reduce_none,
180
+ 4, 45, :_reduce_54,
181
+ 1, 51, :_reduce_55,
182
+ 1, 51, :_reduce_56,
183
+ 1, 51, :_reduce_57,
184
+ 3, 46, :_reduce_58,
185
+ 2, 47, :_reduce_59,
186
+ 3, 47, :_reduce_60,
187
+ 1, 52, :_reduce_61,
188
+ 3, 52, :_reduce_62,
189
+ 1, 53, :_reduce_63,
190
+ 1, 53, :_reduce_64,
191
+ 1, 53, :_reduce_65,
192
+ 1, 53, :_reduce_none,
193
+ 1, 53, :_reduce_none,
194
+ 1, 53, :_reduce_none,
195
+ 1, 53, :_reduce_69,
196
+ 3, 48, :_reduce_70,
197
+ 1, 54, :_reduce_71,
198
+ 3, 54, :_reduce_72,
199
+ 1, 55, :_reduce_73,
200
+ 1, 55, :_reduce_74,
201
+ 1, 55, :_reduce_75,
202
+ 1, 55, :_reduce_76 ]
203
+
204
+ racc_reduce_n = 77
205
+
206
+ racc_shift_n = 111
207
+
208
+ racc_token_table = {
209
+ false => 0,
210
+ :error => 1,
211
+ :META_CLASS => 2,
212
+ :INSTANCE => 3,
213
+ :ALIAS => 4,
214
+ :IMPORT => 5,
215
+ :TRUE => 6,
216
+ :FALSE => 7,
217
+ :NULL => 8,
218
+ :LBRACE => 9,
219
+ :RBRACE => 10,
220
+ :COLON => 11,
221
+ :COMMA => 12,
222
+ :LANGLE => 13,
223
+ :RANGLE => 14,
224
+ :DOT => 15,
225
+ :LPAREN => 16,
226
+ :RPAREN => 17,
227
+ :EQEQ => 18,
228
+ :NEQ => 19,
229
+ :STRING => 20,
230
+ :NUMBER => 21,
231
+ :DATE => 22,
232
+ :IRDI => 23,
233
+ :IDENT => 24 }
234
+
235
+ racc_nt_base = 25
236
+
237
+ racc_use_result_var = true
238
+
239
+ Racc_arg = [
240
+ racc_action_table,
241
+ racc_action_check,
242
+ racc_action_default,
243
+ racc_action_pointer,
244
+ racc_goto_table,
245
+ racc_goto_check,
246
+ racc_goto_default,
247
+ racc_goto_pointer,
248
+ racc_nt_base,
249
+ racc_reduce_table,
250
+ racc_token_table,
251
+ racc_shift_n,
252
+ racc_reduce_n,
253
+ racc_use_result_var ]
254
+ Ractor.make_shareable(Racc_arg) if defined?(Ractor)
255
+
256
+ Racc_token_to_s_table = [
257
+ "$end",
258
+ "error",
259
+ "META_CLASS",
260
+ "INSTANCE",
261
+ "ALIAS",
262
+ "IMPORT",
263
+ "TRUE",
264
+ "FALSE",
265
+ "NULL",
266
+ "LBRACE",
267
+ "RBRACE",
268
+ "COLON",
269
+ "COMMA",
270
+ "LANGLE",
271
+ "RANGLE",
272
+ "DOT",
273
+ "LPAREN",
274
+ "RPAREN",
275
+ "EQEQ",
276
+ "NEQ",
277
+ "STRING",
278
+ "NUMBER",
279
+ "DATE",
280
+ "IRDI",
281
+ "IDENT",
282
+ "$start",
283
+ "document",
284
+ "declaration",
285
+ "meta_class_decl",
286
+ "instance_decl",
287
+ "alias_decl",
288
+ "import_decl",
289
+ "ident_or_irdi",
290
+ "opt_prop_list",
291
+ "prop_id_list",
292
+ "opt_assignment_block",
293
+ "assignment_list",
294
+ "assignment",
295
+ "opt_language_tag",
296
+ "value",
297
+ "soft_as",
298
+ "soft_from",
299
+ "import_list",
300
+ "import_item",
301
+ "condition",
302
+ "class_reference",
303
+ "dotted_ref",
304
+ "set",
305
+ "tuple",
306
+ "cond_op",
307
+ "condition_rhs",
308
+ "class_ref_arg",
309
+ "set_element_list",
310
+ "set_element",
311
+ "tuple_element_list",
312
+ "tuple_element" ]
313
+ Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor)
314
+
315
+ Racc_debug_parser = false
316
+
317
+ ##### State transition tables end #####
318
+
319
+ # reduce 0 omitted
320
+
321
+ module_eval(<<'.,.,', 'cddal.y', 14)
322
+ def _reduce_1(val, _values, result)
323
+ result = Opencdd::Cddal::AST::Document.new(declarations: [])
324
+ result
325
+ end
326
+ .,.,
327
+
328
+ module_eval(<<'.,.,', 'cddal.y', 15)
329
+ def _reduce_2(val, _values, result)
330
+ val[0].declarations << val[1]; result = val[0]
331
+ result
332
+ end
333
+ .,.,
334
+
335
+ # reduce 3 omitted
336
+
337
+ # reduce 4 omitted
338
+
339
+ # reduce 5 omitted
340
+
341
+ # reduce 6 omitted
342
+
343
+ module_eval(<<'.,.,', 'cddal.y', 27)
344
+ def _reduce_7(val, _values, result)
345
+ result = Opencdd::Cddal::AST::MetaClassDecl.new(irdi: val[1], property_identifiers: val[2] || [], line: lineno)
346
+ result
347
+ end
348
+ .,.,
349
+
350
+ module_eval(<<'.,.,', 'cddal.y', 31)
351
+ def _reduce_8(val, _values, result)
352
+ result = []
353
+ result
354
+ end
355
+ .,.,
356
+
357
+ module_eval(<<'.,.,', 'cddal.y', 32)
358
+ def _reduce_9(val, _values, result)
359
+ result = val[1]
360
+ result
361
+ end
362
+ .,.,
363
+
364
+ module_eval(<<'.,.,', 'cddal.y', 36)
365
+ def _reduce_10(val, _values, result)
366
+ result = []
367
+ result
368
+ end
369
+ .,.,
370
+
371
+ module_eval(<<'.,.,', 'cddal.y', 37)
372
+ def _reduce_11(val, _values, result)
373
+ result = val[0] + [val[1]]
374
+ result
375
+ end
376
+ .,.,
377
+
378
+ module_eval(<<'.,.,', 'cddal.y', 42)
379
+ def _reduce_12(val, _values, result)
380
+ result = Opencdd::Cddal::AST::InstanceDecl.new(
381
+ name: val[1], meta_class_ref: val[3], assignments: val[4] || [], line: lineno)
382
+ result
383
+ end
384
+ .,.,
385
+
386
+ module_eval(<<'.,.,', 'cddal.y', 45)
387
+ def _reduce_13(val, _values, result)
388
+ result = Opencdd::Cddal::AST::InstanceDecl.new(
389
+ name: nil, meta_class_ref: val[1], assignments: val[2] || [], line: lineno)
390
+ result
391
+ end
392
+ .,.,
393
+
394
+ module_eval(<<'.,.,', 'cddal.y', 50)
395
+ def _reduce_14(val, _values, result)
396
+ result = []
397
+ result
398
+ end
399
+ .,.,
400
+
401
+ module_eval(<<'.,.,', 'cddal.y', 51)
402
+ def _reduce_15(val, _values, result)
403
+ result = val[1]
404
+ result
405
+ end
406
+ .,.,
407
+
408
+ module_eval(<<'.,.,', 'cddal.y', 55)
409
+ def _reduce_16(val, _values, result)
410
+ result = []
411
+ result
412
+ end
413
+ .,.,
414
+
415
+ module_eval(<<'.,.,', 'cddal.y', 56)
416
+ def _reduce_17(val, _values, result)
417
+ result = val[0] + [val[1]]
418
+ result
419
+ end
420
+ .,.,
421
+
422
+ module_eval(<<'.,.,', 'cddal.y', 61)
423
+ def _reduce_18(val, _values, result)
424
+ result = Opencdd::Cddal::AST::PropertyAssignment.new(
425
+ identifier: val[0], language_tag: val[1], value: val[3], line: lineno)
426
+ result
427
+ end
428
+ .,.,
429
+
430
+ module_eval(<<'.,.,', 'cddal.y', 66)
431
+ def _reduce_19(val, _values, result)
432
+ result = nil
433
+ result
434
+ end
435
+ .,.,
436
+
437
+ module_eval(<<'.,.,', 'cddal.y', 67)
438
+ def _reduce_20(val, _values, result)
439
+ result = val[1]
440
+ result
441
+ end
442
+ .,.,
443
+
444
+ module_eval(<<'.,.,', 'cddal.y', 72)
445
+ def _reduce_21(val, _values, result)
446
+ result = Opencdd::Cddal::AST::AliasDecl.new(alias_name: val[1], property_id: val[3], line: lineno)
447
+ result
448
+ end
449
+ .,.,
450
+
451
+ module_eval(<<'.,.,', 'cddal.y', 77)
452
+ def _reduce_22(val, _values, result)
453
+ result = Opencdd::Cddal::AST::ImportDecl.bare(val[1], line: lineno)
454
+ result
455
+ end
456
+ .,.,
457
+
458
+ module_eval(<<'.,.,', 'cddal.y', 79)
459
+ def _reduce_23(val, _values, result)
460
+ result = Opencdd::Cddal::AST::ImportDecl.qualified(val[1], qualifier: val[3], line: lineno)
461
+ result
462
+ end
463
+ .,.,
464
+
465
+ module_eval(<<'.,.,', 'cddal.y', 81)
466
+ def _reduce_24(val, _values, result)
467
+ result = Opencdd::Cddal::AST::ImportDecl.selective(val[1], imported_names: val[4], line: lineno)
468
+ result
469
+ end
470
+ .,.,
471
+
472
+ module_eval(<<'.,.,', 'cddal.y', 92)
473
+ def _reduce_25(val, _values, result)
474
+ unless val[0] == "as"
475
+ raise Racc::ParseError, "expected 'as' keyword, got #{val[0].inspect}"
476
+ end
477
+ result = val[0]
478
+
479
+ result
480
+ end
481
+ .,.,
482
+
483
+ module_eval(<<'.,.,', 'cddal.y', 102)
484
+ def _reduce_26(val, _values, result)
485
+ unless val[0] == "from"
486
+ raise Racc::ParseError, "expected 'from' keyword, got #{val[0].inspect}"
487
+ end
488
+ result = val[0]
489
+
490
+ result
491
+ end
492
+ .,.,
493
+
494
+ module_eval(<<'.,.,', 'cddal.y', 110)
495
+ def _reduce_27(val, _values, result)
496
+ result = [val[0]]
497
+ result
498
+ end
499
+ .,.,
500
+
501
+ module_eval(<<'.,.,', 'cddal.y', 111)
502
+ def _reduce_28(val, _values, result)
503
+ result = val[0] + [val[2]]
504
+ result
505
+ end
506
+ .,.,
507
+
508
+ module_eval(<<'.,.,', 'cddal.y', 115)
509
+ def _reduce_29(val, _values, result)
510
+ result = Opencdd::Cddal::AST::ImportedName.new(name: val[0])
511
+ result
512
+ end
513
+ .,.,
514
+
515
+ module_eval(<<'.,.,', 'cddal.y', 116)
516
+ def _reduce_30(val, _values, result)
517
+ result = Opencdd::Cddal::AST::ImportedName.new(name: val[0], as: val[2])
518
+ result
519
+ end
520
+ .,.,
521
+
522
+ module_eval(<<'.,.,', 'cddal.y', 120)
523
+ def _reduce_31(val, _values, result)
524
+ result = val[0]
525
+ result
526
+ end
527
+ .,.,
528
+
529
+ module_eval(<<'.,.,', 'cddal.y', 121)
530
+ def _reduce_32(val, _values, result)
531
+ result = val[0]
532
+ result
533
+ end
534
+ .,.,
535
+
536
+ module_eval(<<'.,.,', 'cddal.y', 125)
537
+ def _reduce_33(val, _values, result)
538
+ result = Opencdd::Cddal::AST::Literal.new(kind: :string, raw: val[0])
539
+ result
540
+ end
541
+ .,.,
542
+
543
+ module_eval(<<'.,.,', 'cddal.y', 126)
544
+ def _reduce_34(val, _values, result)
545
+ result = Opencdd::Cddal::AST::Literal.new(kind: :number, raw: val[0])
546
+ result
547
+ end
548
+ .,.,
549
+
550
+ module_eval(<<'.,.,', 'cddal.y', 127)
551
+ def _reduce_35(val, _values, result)
552
+ result = Opencdd::Cddal::AST::Literal.new(kind: :date, raw: val[0])
553
+ result
554
+ end
555
+ .,.,
556
+
557
+ module_eval(<<'.,.,', 'cddal.y', 128)
558
+ def _reduce_36(val, _values, result)
559
+ result = Opencdd::Cddal::AST::Literal.new(kind: :boolean, raw: "true")
560
+ result
561
+ end
562
+ .,.,
563
+
564
+ module_eval(<<'.,.,', 'cddal.y', 129)
565
+ def _reduce_37(val, _values, result)
566
+ result = Opencdd::Cddal::AST::Literal.new(kind: :boolean, raw: "false")
567
+ result
568
+ end
569
+ .,.,
570
+
571
+ module_eval(<<'.,.,', 'cddal.y', 130)
572
+ def _reduce_38(val, _values, result)
573
+ result = Opencdd::Cddal::AST::Literal.new(kind: :null, raw: "null")
574
+ result
575
+ end
576
+ .,.,
577
+
578
+ module_eval(<<'.,.,', 'cddal.y', 131)
579
+ def _reduce_39(val, _values, result)
580
+ result = Opencdd::Cddal::AST::IdentifierRef.new(name: val[0])
581
+ result
582
+ end
583
+ .,.,
584
+
585
+ # reduce 40 omitted
586
+
587
+ # reduce 41 omitted
588
+
589
+ # reduce 42 omitted
590
+
591
+ # reduce 43 omitted
592
+
593
+ # reduce 44 omitted
594
+
595
+ module_eval(<<'.,.,', 'cddal.y', 137)
596
+ def _reduce_45(val, _values, result)
597
+ result = Opencdd::Cddal::AST::IdentifierRef.new(name: val[0])
598
+ result
599
+ end
600
+ .,.,
601
+
602
+ module_eval(<<'.,.,', 'cddal.y', 142)
603
+ def _reduce_46(val, _values, result)
604
+ result = Opencdd::Cddal::AST::Condition.new(left: val[0], operator: val[1], right: val[2])
605
+ result
606
+ end
607
+ .,.,
608
+
609
+ module_eval(<<'.,.,', 'cddal.y', 146)
610
+ def _reduce_47(val, _values, result)
611
+ result = "=="
612
+ result
613
+ end
614
+ .,.,
615
+
616
+ module_eval(<<'.,.,', 'cddal.y', 147)
617
+ def _reduce_48(val, _values, result)
618
+ result = "!="
619
+ result
620
+ end
621
+ .,.,
622
+
623
+ module_eval(<<'.,.,', 'cddal.y', 151)
624
+ def _reduce_49(val, _values, result)
625
+ result = Opencdd::Cddal::AST::Literal.new(kind: :string, raw: val[0])
626
+ result
627
+ end
628
+ .,.,
629
+
630
+ module_eval(<<'.,.,', 'cddal.y', 152)
631
+ def _reduce_50(val, _values, result)
632
+ result = Opencdd::Cddal::AST::Literal.new(kind: :number, raw: val[0])
633
+ result
634
+ end
635
+ .,.,
636
+
637
+ module_eval(<<'.,.,', 'cddal.y', 153)
638
+ def _reduce_51(val, _values, result)
639
+ result = Opencdd::Cddal::AST::IdentifierRef.new(name: val[0])
640
+ result
641
+ end
642
+ .,.,
643
+
644
+ module_eval(<<'.,.,', 'cddal.y', 154)
645
+ def _reduce_52(val, _values, result)
646
+ result = Opencdd::Cddal::AST::IdentifierRef.new(name: val[0])
647
+ result
648
+ end
649
+ .,.,
650
+
651
+ # reduce 53 omitted
652
+
653
+ module_eval(<<'.,.,', 'cddal.y', 160)
654
+ def _reduce_54(val, _values, result)
655
+ result = Opencdd::Cddal::AST::ClassReference.new(type_name: val[0], argument: val[2])
656
+ result
657
+ end
658
+ .,.,
659
+
660
+ module_eval(<<'.,.,', 'cddal.y', 164)
661
+ def _reduce_55(val, _values, result)
662
+ result = Opencdd::Cddal::AST::IdentifierRef.new(name: val[0])
663
+ result
664
+ end
665
+ .,.,
666
+
667
+ module_eval(<<'.,.,', 'cddal.y', 165)
668
+ def _reduce_56(val, _values, result)
669
+ result = Opencdd::Cddal::AST::IdentifierRef.new(name: val[0])
670
+ result
671
+ end
672
+ .,.,
673
+
674
+ module_eval(<<'.,.,', 'cddal.y', 166)
675
+ def _reduce_57(val, _values, result)
676
+ result = Opencdd::Cddal::AST::Literal.new(kind: :string, raw: val[0])
677
+ result
678
+ end
679
+ .,.,
680
+
681
+ module_eval(<<'.,.,', 'cddal.y', 171)
682
+ def _reduce_58(val, _values, result)
683
+ result = Opencdd::Cddal::AST::IdentifierRef.new(name: val[2], owner: val[0])
684
+ result
685
+ end
686
+ .,.,
687
+
688
+ module_eval(<<'.,.,', 'cddal.y', 175)
689
+ def _reduce_59(val, _values, result)
690
+ result = Opencdd::Cddal::AST::Set.new(elements: [])
691
+ result
692
+ end
693
+ .,.,
694
+
695
+ module_eval(<<'.,.,', 'cddal.y', 176)
696
+ def _reduce_60(val, _values, result)
697
+ result = Opencdd::Cddal::AST::Set.new(elements: val[1])
698
+ result
699
+ end
700
+ .,.,
701
+
702
+ module_eval(<<'.,.,', 'cddal.y', 180)
703
+ def _reduce_61(val, _values, result)
704
+ result = [val[0]]
705
+ result
706
+ end
707
+ .,.,
708
+
709
+ module_eval(<<'.,.,', 'cddal.y', 181)
710
+ def _reduce_62(val, _values, result)
711
+ result = val[0] + [val[2]]
712
+ result
713
+ end
714
+ .,.,
715
+
716
+ module_eval(<<'.,.,', 'cddal.y', 185)
717
+ def _reduce_63(val, _values, result)
718
+ result = Opencdd::Cddal::AST::Literal.new(kind: :string, raw: val[0])
719
+ result
720
+ end
721
+ .,.,
722
+
723
+ module_eval(<<'.,.,', 'cddal.y', 186)
724
+ def _reduce_64(val, _values, result)
725
+ result = Opencdd::Cddal::AST::Literal.new(kind: :number, raw: val[0])
726
+ result
727
+ end
728
+ .,.,
729
+
730
+ module_eval(<<'.,.,', 'cddal.y', 187)
731
+ def _reduce_65(val, _values, result)
732
+ result = Opencdd::Cddal::AST::IdentifierRef.new(name: val[0])
733
+ result
734
+ end
735
+ .,.,
736
+
737
+ # reduce 66 omitted
738
+
739
+ # reduce 67 omitted
740
+
741
+ # reduce 68 omitted
742
+
743
+ module_eval(<<'.,.,', 'cddal.y', 191)
744
+ def _reduce_69(val, _values, result)
745
+ result = Opencdd::Cddal::AST::IdentifierRef.new(name: val[0])
746
+ result
747
+ end
748
+ .,.,
749
+
750
+ module_eval(<<'.,.,', 'cddal.y', 196)
751
+ def _reduce_70(val, _values, result)
752
+ result = Opencdd::Cddal::AST::Tuple.new(elements: val[1])
753
+ result
754
+ end
755
+ .,.,
756
+
757
+ module_eval(<<'.,.,', 'cddal.y', 200)
758
+ def _reduce_71(val, _values, result)
759
+ result = [val[0]]
760
+ result
761
+ end
762
+ .,.,
763
+
764
+ module_eval(<<'.,.,', 'cddal.y', 201)
765
+ def _reduce_72(val, _values, result)
766
+ result = val[0] + [val[2]]
767
+ result
768
+ end
769
+ .,.,
770
+
771
+ module_eval(<<'.,.,', 'cddal.y', 205)
772
+ def _reduce_73(val, _values, result)
773
+ result = Opencdd::Cddal::AST::Literal.new(kind: :string, raw: val[0])
774
+ result
775
+ end
776
+ .,.,
777
+
778
+ module_eval(<<'.,.,', 'cddal.y', 206)
779
+ def _reduce_74(val, _values, result)
780
+ result = Opencdd::Cddal::AST::Literal.new(kind: :number, raw: val[0])
781
+ result
782
+ end
783
+ .,.,
784
+
785
+ module_eval(<<'.,.,', 'cddal.y', 207)
786
+ def _reduce_75(val, _values, result)
787
+ result = Opencdd::Cddal::AST::IdentifierRef.new(name: val[0])
788
+ result
789
+ end
790
+ .,.,
791
+
792
+ module_eval(<<'.,.,', 'cddal.y', 208)
793
+ def _reduce_76(val, _values, result)
794
+ result = Opencdd::Cddal::AST::IdentifierRef.new(name: val[0])
795
+ result
796
+ end
797
+ .,.,
798
+
799
+ def _reduce_none(val, _values, result)
800
+ val[0]
801
+ end
802
+
803
+ end # class GeneratedParser
804
+ end # module Cddal
805
+ end # module Opencdd