expressir 1.2.5-x64-mingw-ucrt

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 (142) hide show
  1. checksums.yaml +7 -0
  2. data/.cross_rubies +15 -0
  3. data/.github/workflows/rake.yml +300 -0
  4. data/.github/workflows/release.yml +120 -0
  5. data/.gitignore +23 -0
  6. data/.gitmodules +6 -0
  7. data/.hound.yml +3 -0
  8. data/.rspec +2 -0
  9. data/.rubocop.yml +17 -0
  10. data/.yardopts +11 -0
  11. data/Gemfile +4 -0
  12. data/README.adoc +147 -0
  13. data/Rakefile +17 -0
  14. data/bin/console +11 -0
  15. data/bin/rspec +29 -0
  16. data/bin/setup +8 -0
  17. data/docs/development.md +90 -0
  18. data/exe/expressir +22 -0
  19. data/exe/format +18 -0
  20. data/exe/format-test +81 -0
  21. data/exe/generate-parser +51 -0
  22. data/expressir.gemspec +48 -0
  23. data/lib/expressir/cli/ui.rb +36 -0
  24. data/lib/expressir/cli.rb +21 -0
  25. data/lib/expressir/config.rb +23 -0
  26. data/lib/expressir/express/3.1/express_parser.so +0 -0
  27. data/lib/expressir/express/cache.rb +51 -0
  28. data/lib/expressir/express/formatter.rb +1608 -0
  29. data/lib/expressir/express/hyperlink_formatter.rb +36 -0
  30. data/lib/expressir/express/model_visitor.rb +24 -0
  31. data/lib/expressir/express/parser.rb +84 -0
  32. data/lib/expressir/express/resolve_references_model_visitor.rb +31 -0
  33. data/lib/expressir/express/schema_head_formatter.rb +23 -0
  34. data/lib/expressir/express/visitor.rb +2578 -0
  35. data/lib/expressir/model/cache.rb +17 -0
  36. data/lib/expressir/model/data_type.rb +9 -0
  37. data/lib/expressir/model/data_types/aggregate.rb +31 -0
  38. data/lib/expressir/model/data_types/array.rb +31 -0
  39. data/lib/expressir/model/data_types/bag.rb +25 -0
  40. data/lib/expressir/model/data_types/binary.rb +22 -0
  41. data/lib/expressir/model/data_types/boolean.rb +10 -0
  42. data/lib/expressir/model/data_types/enumeration.rb +25 -0
  43. data/lib/expressir/model/data_types/enumeration_item.rb +26 -0
  44. data/lib/expressir/model/data_types/generic.rb +26 -0
  45. data/lib/expressir/model/data_types/generic_entity.rb +26 -0
  46. data/lib/expressir/model/data_types/integer.rb +10 -0
  47. data/lib/expressir/model/data_types/list.rb +28 -0
  48. data/lib/expressir/model/data_types/logical.rb +10 -0
  49. data/lib/expressir/model/data_types/number.rb +10 -0
  50. data/lib/expressir/model/data_types/real.rb +19 -0
  51. data/lib/expressir/model/data_types/select.rb +28 -0
  52. data/lib/expressir/model/data_types/set.rb +25 -0
  53. data/lib/expressir/model/data_types/string.rb +22 -0
  54. data/lib/expressir/model/declaration.rb +9 -0
  55. data/lib/expressir/model/declarations/attribute.rb +47 -0
  56. data/lib/expressir/model/declarations/constant.rb +34 -0
  57. data/lib/expressir/model/declarations/entity.rb +53 -0
  58. data/lib/expressir/model/declarations/function.rb +67 -0
  59. data/lib/expressir/model/declarations/interface.rb +28 -0
  60. data/lib/expressir/model/declarations/interface_item.rb +23 -0
  61. data/lib/expressir/model/declarations/interfaced_item.rb +37 -0
  62. data/lib/expressir/model/declarations/parameter.rb +34 -0
  63. data/lib/expressir/model/declarations/procedure.rb +64 -0
  64. data/lib/expressir/model/declarations/remark_item.rb +21 -0
  65. data/lib/expressir/model/declarations/rule.rb +71 -0
  66. data/lib/expressir/model/declarations/schema.rb +117 -0
  67. data/lib/expressir/model/declarations/schema_version.rb +22 -0
  68. data/lib/expressir/model/declarations/schema_version_item.rb +22 -0
  69. data/lib/expressir/model/declarations/subtype_constraint.rb +40 -0
  70. data/lib/expressir/model/declarations/type.rb +45 -0
  71. data/lib/expressir/model/declarations/unique_rule.rb +31 -0
  72. data/lib/expressir/model/declarations/variable.rb +34 -0
  73. data/lib/expressir/model/declarations/where_rule.rb +31 -0
  74. data/lib/expressir/model/expression.rb +9 -0
  75. data/lib/expressir/model/expressions/aggregate_initializer.rb +19 -0
  76. data/lib/expressir/model/expressions/aggregate_initializer_item.rb +22 -0
  77. data/lib/expressir/model/expressions/binary_expression.rb +53 -0
  78. data/lib/expressir/model/expressions/entity_constructor.rb +22 -0
  79. data/lib/expressir/model/expressions/function_call.rb +22 -0
  80. data/lib/expressir/model/expressions/interval.rb +34 -0
  81. data/lib/expressir/model/expressions/query_expression.rb +35 -0
  82. data/lib/expressir/model/expressions/unary_expression.rb +27 -0
  83. data/lib/expressir/model/identifier.rb +34 -0
  84. data/lib/expressir/model/literal.rb +9 -0
  85. data/lib/expressir/model/literals/binary.rb +19 -0
  86. data/lib/expressir/model/literals/integer.rb +19 -0
  87. data/lib/expressir/model/literals/logical.rb +23 -0
  88. data/lib/expressir/model/literals/real.rb +19 -0
  89. data/lib/expressir/model/literals/string.rb +22 -0
  90. data/lib/expressir/model/model_element.rb +208 -0
  91. data/lib/expressir/model/reference.rb +9 -0
  92. data/lib/expressir/model/references/attribute_reference.rb +22 -0
  93. data/lib/expressir/model/references/group_reference.rb +22 -0
  94. data/lib/expressir/model/references/index_reference.rb +27 -0
  95. data/lib/expressir/model/references/simple_reference.rb +24 -0
  96. data/lib/expressir/model/repository.rb +23 -0
  97. data/lib/expressir/model/statement.rb +9 -0
  98. data/lib/expressir/model/statements/alias.rb +35 -0
  99. data/lib/expressir/model/statements/assignment.rb +22 -0
  100. data/lib/expressir/model/statements/case.rb +25 -0
  101. data/lib/expressir/model/statements/case_action.rb +22 -0
  102. data/lib/expressir/model/statements/compound.rb +19 -0
  103. data/lib/expressir/model/statements/escape.rb +10 -0
  104. data/lib/expressir/model/statements/if.rb +25 -0
  105. data/lib/expressir/model/statements/null.rb +10 -0
  106. data/lib/expressir/model/statements/procedure_call.rb +22 -0
  107. data/lib/expressir/model/statements/repeat.rb +47 -0
  108. data/lib/expressir/model/statements/return.rb +19 -0
  109. data/lib/expressir/model/statements/skip.rb +10 -0
  110. data/lib/expressir/model/supertype_expression.rb +9 -0
  111. data/lib/expressir/model/supertype_expressions/binary_supertype_expression.rb +29 -0
  112. data/lib/expressir/model/supertype_expressions/oneof_supertype_expression.rb +19 -0
  113. data/lib/expressir/model.rb +79 -0
  114. data/lib/expressir/version.rb +3 -0
  115. data/lib/expressir.rb +20 -0
  116. data/rakelib/antlr4-native.rake +63 -0
  117. data/rakelib/cross-ruby.rake +367 -0
  118. data/spec/acceptance/version_spec.rb +17 -0
  119. data/spec/expressir/express/cache_spec.rb +67 -0
  120. data/spec/expressir/express/formatter_spec.rb +135 -0
  121. data/spec/expressir/express/parser_spec.rb +104 -0
  122. data/spec/expressir/model/model_element_spec.rb +274 -0
  123. data/spec/spec_helper.rb +17 -0
  124. data/spec/support/console_helper.rb +29 -0
  125. data/spec/syntax/multiple.exp +23 -0
  126. data/spec/syntax/multiple.yaml +198 -0
  127. data/spec/syntax/multiple_formatted.exp +71 -0
  128. data/spec/syntax/multiple_hyperlink_formatted.exp +71 -0
  129. data/spec/syntax/multiple_schema_head_hyperlink_formatted.exp +13 -0
  130. data/spec/syntax/remark.exp +191 -0
  131. data/spec/syntax/remark.yaml +466 -0
  132. data/spec/syntax/remark_formatted.exp +227 -0
  133. data/spec/syntax/single.exp +4 -0
  134. data/spec/syntax/single.yaml +18 -0
  135. data/spec/syntax/single_formatted.exp +10 -0
  136. data/spec/syntax/single_formatted.yaml +36 -0
  137. data/spec/syntax/syntax.exp +333 -0
  138. data/spec/syntax/syntax.yaml +3509 -0
  139. data/spec/syntax/syntax_formatted.exp +902 -0
  140. data/spec/syntax/syntax_hyperlink_formatted.exp +902 -0
  141. data/spec/syntax/syntax_schema_head_formatted.exp +18 -0
  142. metadata +387 -0
@@ -0,0 +1,466 @@
1
+ ---
2
+ _class: Expressir::Model::Repository
3
+ schemas:
4
+ - _class: Expressir::Model::Declarations::Schema
5
+ file: spec/syntax/remark.exp
6
+ id: remark_schema
7
+ remarks:
8
+ - |-
9
+ Any character within the EXPRESS character set may occur between the start and end of
10
+ an embedded remark including the newline character; therefore, embedded remarks can span
11
+ several physical lines.
12
+ - The tail remark is written at the end of a physical line.
13
+ - 'UTF8 test: Příliš žluťoučký kůň úpěl ďábelské ódy.'
14
+ - universal scope - schema before
15
+ - universal scope - schema
16
+ remark_items:
17
+ - _class: Expressir::Model::Declarations::RemarkItem
18
+ id: remark_item
19
+ remarks:
20
+ - schema scope - schema remark item
21
+ - universal scope - schema remark item
22
+ constants:
23
+ - _class: Expressir::Model::Declarations::Constant
24
+ id: remark_constant
25
+ remarks:
26
+ - schema scope - constant
27
+ - universal scope - constant
28
+ type:
29
+ _class: Expressir::Model::DataTypes::String
30
+ expression:
31
+ _class: Expressir::Model::Literals::String
32
+ value: xxx
33
+ types:
34
+ - _class: Expressir::Model::Declarations::Type
35
+ id: remark_type
36
+ remarks:
37
+ - schema scope - type
38
+ - universal scope - type
39
+ underlying_type:
40
+ _class: Expressir::Model::DataTypes::Enumeration
41
+ items:
42
+ - _class: Expressir::Model::DataTypes::EnumerationItem
43
+ id: remark_enumeration_item
44
+ remarks:
45
+ - schema scope - enumeration item
46
+ - schema scope - enumeration item, on the same level as the type
47
+ - universal scope - enumeration item
48
+ - universal scope - enumeration item, on the same level as the type
49
+ where_rules:
50
+ - _class: Expressir::Model::Declarations::WhereRule
51
+ id: WR1
52
+ remarks:
53
+ - type scope - type where
54
+ - type scope - type where, with prefix
55
+ - schema scope - type where
56
+ - schema scope - type where, with prefix
57
+ - universal scope - type where
58
+ - universal scope - type where, with prefix
59
+ expression:
60
+ _class: Expressir::Model::Literals::Logical
61
+ value: :TRUE
62
+ informal_propositions:
63
+ - _class: Expressir::Model::Declarations::RemarkItem
64
+ id: IP1
65
+ remarks:
66
+ - type scope - type informal proposition
67
+ - type scope - type informal proposition, with prefix
68
+ - schema scope - type informal proposition
69
+ - schema scope - type informal proposition, with prefix
70
+ - universal scope - type informal proposition
71
+ - universal scope - type informal proposition, with prefix
72
+ entities:
73
+ - _class: Expressir::Model::Declarations::Entity
74
+ id: remark_entity
75
+ remarks:
76
+ - schema scope - entity
77
+ - universal scope - entity
78
+ attributes:
79
+ - _class: Expressir::Model::Declarations::Attribute
80
+ id: remark_attribute
81
+ remarks:
82
+ - entity scope - entity attribute
83
+ - schema scope - entity attribute
84
+ - universal scope - entity attribute
85
+ kind: :EXPLICIT
86
+ type:
87
+ _class: Expressir::Model::DataTypes::String
88
+ - _class: Expressir::Model::Declarations::Attribute
89
+ id: remark_derived_attribute
90
+ remarks:
91
+ - entity scope - entity derived attribute
92
+ - schema scope - entity derived attribute
93
+ - universal scope - entity derived attribute
94
+ kind: :DERIVED
95
+ type:
96
+ _class: Expressir::Model::DataTypes::String
97
+ expression:
98
+ _class: Expressir::Model::Literals::String
99
+ value: xxx
100
+ - _class: Expressir::Model::Declarations::Attribute
101
+ id: remark_inverse_attribute
102
+ remarks:
103
+ - entity scope - entity inverse attribute
104
+ - schema scope - entity inverse attribute
105
+ - universal scope - entity inverse attribute
106
+ kind: :INVERSE
107
+ type:
108
+ _class: Expressir::Model::References::SimpleReference
109
+ id: remark_entity
110
+ base_path: remark_schema.remark_entity
111
+ expression:
112
+ _class: Expressir::Model::References::SimpleReference
113
+ id: remark_attribute
114
+ base_path: remark_schema.remark_entity.remark_attribute
115
+ unique_rules:
116
+ - _class: Expressir::Model::Declarations::UniqueRule
117
+ id: UR1
118
+ remarks:
119
+ - entity scope - entity unique
120
+ - schema scope - entity unique
121
+ - universal scope - entity unique
122
+ attributes:
123
+ - _class: Expressir::Model::References::SimpleReference
124
+ id: remark_attribute
125
+ base_path: remark_schema.remark_entity.remark_attribute
126
+ where_rules:
127
+ - _class: Expressir::Model::Declarations::WhereRule
128
+ id: WR1
129
+ remarks:
130
+ - entity scope - entity where
131
+ - entity scope - entity where, with prefix
132
+ - schema scope - entity where
133
+ - schema scope - entity where, with prefix
134
+ - universal scope - entity where
135
+ - universal scope - entity where, with prefix
136
+ expression:
137
+ _class: Expressir::Model::Literals::Logical
138
+ value: :TRUE
139
+ informal_propositions:
140
+ - _class: Expressir::Model::Declarations::RemarkItem
141
+ id: IP1
142
+ remarks:
143
+ - entity scope - entity informal proposition
144
+ - entity scope - entity informal proposition, with prefix
145
+ - schema scope - entity informal proposition
146
+ - schema scope - entity informal proposition, with prefix
147
+ - universal scope - entity informal proposition
148
+ - universal scope - entity informal proposition, with prefix
149
+ subtype_constraints:
150
+ - _class: Expressir::Model::Declarations::SubtypeConstraint
151
+ id: remark_subtype_constraint
152
+ remarks:
153
+ - schema scope - subtype constraint
154
+ - universal scope - subtype constraint
155
+ applies_to:
156
+ _class: Expressir::Model::References::SimpleReference
157
+ id: remark_entity
158
+ base_path: remark_schema.remark_entity
159
+ functions:
160
+ - _class: Expressir::Model::Declarations::Function
161
+ id: remark_function
162
+ remarks:
163
+ - schema scope - function
164
+ - universal scope - function
165
+ parameters:
166
+ - _class: Expressir::Model::Declarations::Parameter
167
+ id: remark_parameter
168
+ remarks:
169
+ - function scope - function parameter
170
+ - schema scope - function parameter
171
+ - universal scope - function parameter
172
+ type:
173
+ _class: Expressir::Model::DataTypes::String
174
+ return_type:
175
+ _class: Expressir::Model::DataTypes::Boolean
176
+ types:
177
+ - _class: Expressir::Model::Declarations::Type
178
+ id: remark_type
179
+ remarks:
180
+ - function scope - function type
181
+ - schema scope - function type
182
+ - universal scope - function type
183
+ underlying_type:
184
+ _class: Expressir::Model::DataTypes::Enumeration
185
+ items:
186
+ - _class: Expressir::Model::DataTypes::EnumerationItem
187
+ id: remark_enumeration_item
188
+ remarks:
189
+ - function scope - function enumeration item
190
+ - function scope - function enumeration item, on the same level as the type
191
+ - schema scope - function enumeration item
192
+ - schema scope - function enumeration item, on the same level as the type
193
+ - universal scope - function enumeration item
194
+ - universal scope - function enumeration item, on the same level as the
195
+ type
196
+ constants:
197
+ - _class: Expressir::Model::Declarations::Constant
198
+ id: remark_constant
199
+ remarks:
200
+ - function scope - function constant
201
+ - schema scope - function constant
202
+ - universal scope - function constant
203
+ type:
204
+ _class: Expressir::Model::DataTypes::String
205
+ expression:
206
+ _class: Expressir::Model::Literals::String
207
+ value: xxx
208
+ variables:
209
+ - _class: Expressir::Model::Declarations::Variable
210
+ id: remark_variable
211
+ remarks:
212
+ - function scope - function variable
213
+ - schema scope - function variable
214
+ - universal scope - function variable
215
+ type:
216
+ _class: Expressir::Model::DataTypes::String
217
+ statements:
218
+ - _class: Expressir::Model::Statements::Alias
219
+ id: remark_alias
220
+ remarks:
221
+ - function alias scope - function alias
222
+ expression:
223
+ _class: Expressir::Model::References::SimpleReference
224
+ id: remark_variable
225
+ base_path: remark_schema.remark_function.remark_variable
226
+ statements:
227
+ - _class: Expressir::Model::Statements::Null
228
+ - _class: Expressir::Model::Statements::Repeat
229
+ id: remark_repeat
230
+ remarks:
231
+ - function repeat scope - function repeat
232
+ bound1:
233
+ _class: Expressir::Model::Literals::Integer
234
+ value: '1'
235
+ bound2:
236
+ _class: Expressir::Model::Literals::Integer
237
+ value: '9'
238
+ statements:
239
+ - _class: Expressir::Model::Statements::Null
240
+ - _class: Expressir::Model::Statements::Assignment
241
+ ref:
242
+ _class: Expressir::Model::References::SimpleReference
243
+ id: remark_variable
244
+ base_path: remark_schema.remark_function.remark_variable
245
+ expression:
246
+ _class: Expressir::Model::Expressions::QueryExpression
247
+ id: remark_query
248
+ remarks:
249
+ - function query scope - function query
250
+ aggregate_source:
251
+ _class: Expressir::Model::References::SimpleReference
252
+ id: remark_variable
253
+ base_path: remark_schema.remark_function.remark_variable
254
+ expression:
255
+ _class: Expressir::Model::Literals::Logical
256
+ value: :TRUE
257
+ rules:
258
+ - _class: Expressir::Model::Declarations::Rule
259
+ id: remark_rule
260
+ remarks:
261
+ - schema scope - rule
262
+ - universal scope - rule
263
+ applies_to:
264
+ - _class: Expressir::Model::References::SimpleReference
265
+ id: remark_entity
266
+ base_path: remark_schema.remark_entity
267
+ types:
268
+ - _class: Expressir::Model::Declarations::Type
269
+ id: remark_type
270
+ remarks:
271
+ - rule scope - rule type
272
+ - schema scope - rule type
273
+ - universal scope - rule type
274
+ underlying_type:
275
+ _class: Expressir::Model::DataTypes::Enumeration
276
+ items:
277
+ - _class: Expressir::Model::DataTypes::EnumerationItem
278
+ id: remark_enumeration_item
279
+ remarks:
280
+ - rule scope - rule enumeration item
281
+ - rule scope - rule enumeration item, on the same level as the type
282
+ - schema scope - rule enumeration item
283
+ - schema scope - rule enumeration item, on the same level as the type
284
+ - universal scope - rule enumeration item
285
+ - universal scope - rule enumeration item, on the same level as the type
286
+ constants:
287
+ - _class: Expressir::Model::Declarations::Constant
288
+ id: remark_constant
289
+ remarks:
290
+ - rule scope - rule constant
291
+ - schema scope - rule constant
292
+ - universal scope - rule constant
293
+ type:
294
+ _class: Expressir::Model::DataTypes::String
295
+ expression:
296
+ _class: Expressir::Model::Literals::String
297
+ value: xxx
298
+ variables:
299
+ - _class: Expressir::Model::Declarations::Variable
300
+ id: remark_variable
301
+ remarks:
302
+ - rule scope - rule variable
303
+ - schema scope - rule variable
304
+ - universal scope - rule variable
305
+ type:
306
+ _class: Expressir::Model::DataTypes::String
307
+ statements:
308
+ - _class: Expressir::Model::Statements::Alias
309
+ id: remark_alias
310
+ remarks:
311
+ - rule alias scope - rule alias
312
+ expression:
313
+ _class: Expressir::Model::References::SimpleReference
314
+ id: remark_variable
315
+ base_path: remark_schema.remark_rule.remark_variable
316
+ statements:
317
+ - _class: Expressir::Model::Statements::Null
318
+ - _class: Expressir::Model::Statements::Repeat
319
+ id: remark_repeat
320
+ remarks:
321
+ - rule repeat scope - rule repeat
322
+ bound1:
323
+ _class: Expressir::Model::Literals::Integer
324
+ value: '1'
325
+ bound2:
326
+ _class: Expressir::Model::Literals::Integer
327
+ value: '9'
328
+ statements:
329
+ - _class: Expressir::Model::Statements::Null
330
+ - _class: Expressir::Model::Statements::Assignment
331
+ ref:
332
+ _class: Expressir::Model::References::SimpleReference
333
+ id: remark_variable
334
+ base_path: remark_schema.remark_rule.remark_variable
335
+ expression:
336
+ _class: Expressir::Model::Expressions::QueryExpression
337
+ id: remark_query
338
+ remarks:
339
+ - rule query scope - rule query
340
+ aggregate_source:
341
+ _class: Expressir::Model::References::SimpleReference
342
+ id: remark_variable
343
+ base_path: remark_schema.remark_rule.remark_variable
344
+ expression:
345
+ _class: Expressir::Model::Literals::Logical
346
+ value: :TRUE
347
+ where_rules:
348
+ - _class: Expressir::Model::Declarations::WhereRule
349
+ id: WR1
350
+ remarks:
351
+ - rule scope - rule where
352
+ - rule scope - rule where, with prefix
353
+ - schema scope - rule where
354
+ - schema scope - rule where, with prefix
355
+ - universal scope - rule where
356
+ - universal scope - rule where, with prefix
357
+ expression:
358
+ _class: Expressir::Model::Literals::Logical
359
+ value: :TRUE
360
+ informal_propositions:
361
+ - _class: Expressir::Model::Declarations::RemarkItem
362
+ id: IP1
363
+ remarks:
364
+ - rule scope - rule informal proposition
365
+ - rule scope - rule informal proposition, with prefix
366
+ - schema scope - rule informal proposition
367
+ - schema scope - rule informal proposition, with prefix
368
+ - universal scope - rule informal proposition
369
+ - universal scope - rule informal proposition, with prefix
370
+ procedures:
371
+ - _class: Expressir::Model::Declarations::Procedure
372
+ id: remark_procedure
373
+ remarks:
374
+ - schema scope - procedure
375
+ - universal scope - procedure
376
+ parameters:
377
+ - _class: Expressir::Model::Declarations::Parameter
378
+ id: remark_parameter
379
+ remarks:
380
+ - procedure scope - procedure parameter
381
+ - schema scope - procedure parameter
382
+ - universal scope - procedure parameter
383
+ type:
384
+ _class: Expressir::Model::DataTypes::String
385
+ types:
386
+ - _class: Expressir::Model::Declarations::Type
387
+ id: remark_type
388
+ remarks:
389
+ - procedure scope - procedure type
390
+ - schema scope - procedure type
391
+ - universal scope - procedure type
392
+ underlying_type:
393
+ _class: Expressir::Model::DataTypes::Enumeration
394
+ items:
395
+ - _class: Expressir::Model::DataTypes::EnumerationItem
396
+ id: remark_enumeration_item
397
+ remarks:
398
+ - procedure scope - procedure enumeration item
399
+ - procedure scope - procedure enumeration item, on the same level as the
400
+ type
401
+ - schema scope - procedure enumeration item
402
+ - schema scope - procedure enumeration item, on the same level as the type
403
+ - universal scope - procedure enumeration item
404
+ - universal scope - procedure enumeration item, on the same level as the
405
+ type
406
+ constants:
407
+ - _class: Expressir::Model::Declarations::Constant
408
+ id: remark_constant
409
+ remarks:
410
+ - procedure scope - procedure constant
411
+ - schema scope - procedure constant
412
+ - universal scope - procedure constant
413
+ type:
414
+ _class: Expressir::Model::DataTypes::String
415
+ expression:
416
+ _class: Expressir::Model::Literals::String
417
+ value: xxx
418
+ variables:
419
+ - _class: Expressir::Model::Declarations::Variable
420
+ id: remark_variable
421
+ remarks:
422
+ - procedure scope - procedure variable
423
+ - schema scope - procedure variable
424
+ - universal scope - procedure variable
425
+ type:
426
+ _class: Expressir::Model::DataTypes::String
427
+ statements:
428
+ - _class: Expressir::Model::Statements::Alias
429
+ id: remark_alias
430
+ remarks:
431
+ - procedure alias scope - procedure alias
432
+ expression:
433
+ _class: Expressir::Model::References::SimpleReference
434
+ id: remark_variable
435
+ base_path: remark_schema.remark_procedure.remark_variable
436
+ statements:
437
+ - _class: Expressir::Model::Statements::Null
438
+ - _class: Expressir::Model::Statements::Repeat
439
+ id: remark_repeat
440
+ remarks:
441
+ - procedure repeat scope - procedure repeat
442
+ bound1:
443
+ _class: Expressir::Model::Literals::Integer
444
+ value: '1'
445
+ bound2:
446
+ _class: Expressir::Model::Literals::Integer
447
+ value: '9'
448
+ statements:
449
+ - _class: Expressir::Model::Statements::Null
450
+ - _class: Expressir::Model::Statements::Assignment
451
+ ref:
452
+ _class: Expressir::Model::References::SimpleReference
453
+ id: remark_variable
454
+ base_path: remark_schema.remark_procedure.remark_variable
455
+ expression:
456
+ _class: Expressir::Model::Expressions::QueryExpression
457
+ id: remark_query
458
+ remarks:
459
+ - procedure query scope - procedure query
460
+ aggregate_source:
461
+ _class: Expressir::Model::References::SimpleReference
462
+ id: remark_variable
463
+ base_path: remark_schema.remark_procedure.remark_variable
464
+ expression:
465
+ _class: Expressir::Model::Literals::Logical
466
+ value: :TRUE
@@ -0,0 +1,227 @@
1
+ SCHEMA remark_schema;
2
+
3
+ CONSTANT
4
+ remark_constant : STRING := 'xxx';
5
+ END_CONSTANT;
6
+
7
+ TYPE remark_type = ENUMERATION OF
8
+ (remark_enumeration_item);
9
+ WHERE
10
+ WR1: TRUE;
11
+ END_TYPE;
12
+
13
+ ENTITY remark_entity;
14
+ remark_attribute : STRING;
15
+ DERIVE
16
+ remark_derived_attribute : STRING := 'xxx';
17
+ INVERSE
18
+ remark_inverse_attribute : remark_entity FOR remark_attribute;
19
+ UNIQUE
20
+ UR1: remark_attribute;
21
+ WHERE
22
+ WR1: TRUE;
23
+ END_ENTITY;
24
+
25
+ SUBTYPE_CONSTRAINT remark_subtype_constraint FOR remark_entity;
26
+ END_SUBTYPE_CONSTRAINT;
27
+
28
+ FUNCTION remark_function(remark_parameter : STRING) : BOOLEAN;
29
+ TYPE remark_type = ENUMERATION OF
30
+ (remark_enumeration_item);
31
+ END_TYPE;
32
+ CONSTANT
33
+ remark_constant : STRING := 'xxx';
34
+ END_CONSTANT;
35
+ LOCAL
36
+ remark_variable : STRING;
37
+ END_LOCAL;
38
+ ALIAS remark_alias FOR remark_variable;
39
+ ;
40
+ --"remark_alias" function alias scope - function alias
41
+ END_ALIAS;
42
+ REPEAT remark_repeat := 1 TO 9;
43
+ ;
44
+ --"remark_repeat" function repeat scope - function repeat
45
+ END_REPEAT;
46
+ remark_variable := QUERY(remark_query <* remark_variable | TRUE
47
+ --"remark_query" function query scope - function query
48
+ );
49
+ END_FUNCTION;
50
+
51
+ RULE remark_rule FOR (remark_entity);
52
+ TYPE remark_type = ENUMERATION OF
53
+ (remark_enumeration_item);
54
+ END_TYPE;
55
+ CONSTANT
56
+ remark_constant : STRING := 'xxx';
57
+ END_CONSTANT;
58
+ LOCAL
59
+ remark_variable : STRING;
60
+ END_LOCAL;
61
+ ALIAS remark_alias FOR remark_variable;
62
+ ;
63
+ --"remark_alias" rule alias scope - rule alias
64
+ END_ALIAS;
65
+ REPEAT remark_repeat := 1 TO 9;
66
+ ;
67
+ --"remark_repeat" rule repeat scope - rule repeat
68
+ END_REPEAT;
69
+ remark_variable := QUERY(remark_query <* remark_variable | TRUE
70
+ --"remark_query" rule query scope - rule query
71
+ );
72
+ WHERE
73
+ WR1: TRUE;
74
+ END_RULE;
75
+
76
+ PROCEDURE remark_procedure(remark_parameter : STRING);
77
+ TYPE remark_type = ENUMERATION OF
78
+ (remark_enumeration_item);
79
+ END_TYPE;
80
+ CONSTANT
81
+ remark_constant : STRING := 'xxx';
82
+ END_CONSTANT;
83
+ LOCAL
84
+ remark_variable : STRING;
85
+ END_LOCAL;
86
+ ALIAS remark_alias FOR remark_variable;
87
+ ;
88
+ --"remark_alias" procedure alias scope - procedure alias
89
+ END_ALIAS;
90
+ REPEAT remark_repeat := 1 TO 9;
91
+ ;
92
+ --"remark_repeat" procedure repeat scope - procedure repeat
93
+ END_REPEAT;
94
+ remark_variable := QUERY(remark_query <* remark_variable | TRUE
95
+ --"remark_query" procedure query scope - procedure query
96
+ );
97
+ END_PROCEDURE;
98
+
99
+ END_SCHEMA;
100
+ (*"remark_schema"
101
+ Any character within the EXPRESS character set may occur between the start and end of
102
+ an embedded remark including the newline character; therefore, embedded remarks can span
103
+ several physical lines.
104
+ *)
105
+ --"remark_schema" The tail remark is written at the end of a physical line.
106
+ --"remark_schema" UTF8 test: Příliš žluťoučký kůň úpěl ďábelské ódy.
107
+ --"remark_schema" universal scope - schema before
108
+ --"remark_schema" universal scope - schema
109
+ --"remark_schema.remark_constant" schema scope - constant
110
+ --"remark_schema.remark_constant" universal scope - constant
111
+ --"remark_schema.remark_type" schema scope - type
112
+ --"remark_schema.remark_type" universal scope - type
113
+ --"remark_schema.remark_type.remark_enumeration_item" schema scope - enumeration item
114
+ --"remark_schema.remark_type.remark_enumeration_item" schema scope - enumeration item, on the same level as the type
115
+ --"remark_schema.remark_type.remark_enumeration_item" universal scope - enumeration item
116
+ --"remark_schema.remark_type.remark_enumeration_item" universal scope - enumeration item, on the same level as the type
117
+ --"remark_schema.remark_type.WR1" type scope - type where
118
+ --"remark_schema.remark_type.WR1" type scope - type where, with prefix
119
+ --"remark_schema.remark_type.WR1" schema scope - type where
120
+ --"remark_schema.remark_type.WR1" schema scope - type where, with prefix
121
+ --"remark_schema.remark_type.WR1" universal scope - type where
122
+ --"remark_schema.remark_type.WR1" universal scope - type where, with prefix
123
+ --"remark_schema.remark_type.IP1" type scope - type informal proposition
124
+ --"remark_schema.remark_type.IP1" type scope - type informal proposition, with prefix
125
+ --"remark_schema.remark_type.IP1" schema scope - type informal proposition
126
+ --"remark_schema.remark_type.IP1" schema scope - type informal proposition, with prefix
127
+ --"remark_schema.remark_type.IP1" universal scope - type informal proposition
128
+ --"remark_schema.remark_type.IP1" universal scope - type informal proposition, with prefix
129
+ --"remark_schema.remark_entity" schema scope - entity
130
+ --"remark_schema.remark_entity" universal scope - entity
131
+ --"remark_schema.remark_entity.remark_attribute" entity scope - entity attribute
132
+ --"remark_schema.remark_entity.remark_attribute" schema scope - entity attribute
133
+ --"remark_schema.remark_entity.remark_attribute" universal scope - entity attribute
134
+ --"remark_schema.remark_entity.remark_derived_attribute" entity scope - entity derived attribute
135
+ --"remark_schema.remark_entity.remark_derived_attribute" schema scope - entity derived attribute
136
+ --"remark_schema.remark_entity.remark_derived_attribute" universal scope - entity derived attribute
137
+ --"remark_schema.remark_entity.remark_inverse_attribute" entity scope - entity inverse attribute
138
+ --"remark_schema.remark_entity.remark_inverse_attribute" schema scope - entity inverse attribute
139
+ --"remark_schema.remark_entity.remark_inverse_attribute" universal scope - entity inverse attribute
140
+ --"remark_schema.remark_entity.UR1" entity scope - entity unique
141
+ --"remark_schema.remark_entity.UR1" schema scope - entity unique
142
+ --"remark_schema.remark_entity.UR1" universal scope - entity unique
143
+ --"remark_schema.remark_entity.WR1" entity scope - entity where
144
+ --"remark_schema.remark_entity.WR1" entity scope - entity where, with prefix
145
+ --"remark_schema.remark_entity.WR1" schema scope - entity where
146
+ --"remark_schema.remark_entity.WR1" schema scope - entity where, with prefix
147
+ --"remark_schema.remark_entity.WR1" universal scope - entity where
148
+ --"remark_schema.remark_entity.WR1" universal scope - entity where, with prefix
149
+ --"remark_schema.remark_entity.IP1" entity scope - entity informal proposition
150
+ --"remark_schema.remark_entity.IP1" entity scope - entity informal proposition, with prefix
151
+ --"remark_schema.remark_entity.IP1" schema scope - entity informal proposition
152
+ --"remark_schema.remark_entity.IP1" schema scope - entity informal proposition, with prefix
153
+ --"remark_schema.remark_entity.IP1" universal scope - entity informal proposition
154
+ --"remark_schema.remark_entity.IP1" universal scope - entity informal proposition, with prefix
155
+ --"remark_schema.remark_subtype_constraint" schema scope - subtype constraint
156
+ --"remark_schema.remark_subtype_constraint" universal scope - subtype constraint
157
+ --"remark_schema.remark_function" schema scope - function
158
+ --"remark_schema.remark_function" universal scope - function
159
+ --"remark_schema.remark_function.remark_parameter" function scope - function parameter
160
+ --"remark_schema.remark_function.remark_parameter" schema scope - function parameter
161
+ --"remark_schema.remark_function.remark_parameter" universal scope - function parameter
162
+ --"remark_schema.remark_function.remark_type" function scope - function type
163
+ --"remark_schema.remark_function.remark_type" schema scope - function type
164
+ --"remark_schema.remark_function.remark_type" universal scope - function type
165
+ --"remark_schema.remark_function.remark_type.remark_enumeration_item" function scope - function enumeration item
166
+ --"remark_schema.remark_function.remark_type.remark_enumeration_item" function scope - function enumeration item, on the same level as the type
167
+ --"remark_schema.remark_function.remark_type.remark_enumeration_item" schema scope - function enumeration item
168
+ --"remark_schema.remark_function.remark_type.remark_enumeration_item" schema scope - function enumeration item, on the same level as the type
169
+ --"remark_schema.remark_function.remark_type.remark_enumeration_item" universal scope - function enumeration item
170
+ --"remark_schema.remark_function.remark_type.remark_enumeration_item" universal scope - function enumeration item, on the same level as the type
171
+ --"remark_schema.remark_function.remark_constant" function scope - function constant
172
+ --"remark_schema.remark_function.remark_constant" schema scope - function constant
173
+ --"remark_schema.remark_function.remark_constant" universal scope - function constant
174
+ --"remark_schema.remark_function.remark_variable" function scope - function variable
175
+ --"remark_schema.remark_function.remark_variable" schema scope - function variable
176
+ --"remark_schema.remark_function.remark_variable" universal scope - function variable
177
+ --"remark_schema.remark_rule" schema scope - rule
178
+ --"remark_schema.remark_rule" universal scope - rule
179
+ --"remark_schema.remark_rule.remark_type" rule scope - rule type
180
+ --"remark_schema.remark_rule.remark_type" schema scope - rule type
181
+ --"remark_schema.remark_rule.remark_type" universal scope - rule type
182
+ --"remark_schema.remark_rule.remark_type.remark_enumeration_item" rule scope - rule enumeration item
183
+ --"remark_schema.remark_rule.remark_type.remark_enumeration_item" rule scope - rule enumeration item, on the same level as the type
184
+ --"remark_schema.remark_rule.remark_type.remark_enumeration_item" schema scope - rule enumeration item
185
+ --"remark_schema.remark_rule.remark_type.remark_enumeration_item" schema scope - rule enumeration item, on the same level as the type
186
+ --"remark_schema.remark_rule.remark_type.remark_enumeration_item" universal scope - rule enumeration item
187
+ --"remark_schema.remark_rule.remark_type.remark_enumeration_item" universal scope - rule enumeration item, on the same level as the type
188
+ --"remark_schema.remark_rule.remark_constant" rule scope - rule constant
189
+ --"remark_schema.remark_rule.remark_constant" schema scope - rule constant
190
+ --"remark_schema.remark_rule.remark_constant" universal scope - rule constant
191
+ --"remark_schema.remark_rule.remark_variable" rule scope - rule variable
192
+ --"remark_schema.remark_rule.remark_variable" schema scope - rule variable
193
+ --"remark_schema.remark_rule.remark_variable" universal scope - rule variable
194
+ --"remark_schema.remark_rule.WR1" rule scope - rule where
195
+ --"remark_schema.remark_rule.WR1" rule scope - rule where, with prefix
196
+ --"remark_schema.remark_rule.WR1" schema scope - rule where
197
+ --"remark_schema.remark_rule.WR1" schema scope - rule where, with prefix
198
+ --"remark_schema.remark_rule.WR1" universal scope - rule where
199
+ --"remark_schema.remark_rule.WR1" universal scope - rule where, with prefix
200
+ --"remark_schema.remark_rule.IP1" rule scope - rule informal proposition
201
+ --"remark_schema.remark_rule.IP1" rule scope - rule informal proposition, with prefix
202
+ --"remark_schema.remark_rule.IP1" schema scope - rule informal proposition
203
+ --"remark_schema.remark_rule.IP1" schema scope - rule informal proposition, with prefix
204
+ --"remark_schema.remark_rule.IP1" universal scope - rule informal proposition
205
+ --"remark_schema.remark_rule.IP1" universal scope - rule informal proposition, with prefix
206
+ --"remark_schema.remark_procedure" schema scope - procedure
207
+ --"remark_schema.remark_procedure" universal scope - procedure
208
+ --"remark_schema.remark_procedure.remark_parameter" procedure scope - procedure parameter
209
+ --"remark_schema.remark_procedure.remark_parameter" schema scope - procedure parameter
210
+ --"remark_schema.remark_procedure.remark_parameter" universal scope - procedure parameter
211
+ --"remark_schema.remark_procedure.remark_type" procedure scope - procedure type
212
+ --"remark_schema.remark_procedure.remark_type" schema scope - procedure type
213
+ --"remark_schema.remark_procedure.remark_type" universal scope - procedure type
214
+ --"remark_schema.remark_procedure.remark_type.remark_enumeration_item" procedure scope - procedure enumeration item
215
+ --"remark_schema.remark_procedure.remark_type.remark_enumeration_item" procedure scope - procedure enumeration item, on the same level as the type
216
+ --"remark_schema.remark_procedure.remark_type.remark_enumeration_item" schema scope - procedure enumeration item
217
+ --"remark_schema.remark_procedure.remark_type.remark_enumeration_item" schema scope - procedure enumeration item, on the same level as the type
218
+ --"remark_schema.remark_procedure.remark_type.remark_enumeration_item" universal scope - procedure enumeration item
219
+ --"remark_schema.remark_procedure.remark_type.remark_enumeration_item" universal scope - procedure enumeration item, on the same level as the type
220
+ --"remark_schema.remark_procedure.remark_constant" procedure scope - procedure constant
221
+ --"remark_schema.remark_procedure.remark_constant" schema scope - procedure constant
222
+ --"remark_schema.remark_procedure.remark_constant" universal scope - procedure constant
223
+ --"remark_schema.remark_procedure.remark_variable" procedure scope - procedure variable
224
+ --"remark_schema.remark_procedure.remark_variable" schema scope - procedure variable
225
+ --"remark_schema.remark_procedure.remark_variable" universal scope - procedure variable
226
+ --"remark_schema.remark_item" schema scope - schema remark item
227
+ --"remark_schema.remark_item" universal scope - schema remark item