expressir 0.2.14-x86-linux → 0.2.19-x86-linux

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +5 -0
  3. data/exe/format +56 -11
  4. data/lib/expressir/express_exp/formatter.rb +201 -147
  5. data/lib/expressir/express_exp/hyperlink_formatter.rb +6 -4
  6. data/lib/expressir/express_exp/parser.rb +34 -26
  7. data/lib/expressir/express_exp/schema_head_formatter.rb +2 -7
  8. data/lib/expressir/express_exp/visitor.rb +27 -54
  9. data/lib/expressir/model.rb +2 -1
  10. data/lib/expressir/model/entity.rb +6 -6
  11. data/lib/expressir/model/expressions/query_expression.rb +3 -3
  12. data/lib/expressir/model/function.rb +15 -11
  13. data/lib/expressir/model/informal_proposition.rb +4 -1
  14. data/lib/expressir/model/{renamed_ref.rb → interface_item.rb} +2 -2
  15. data/lib/expressir/model/interfaced_item.rb +26 -0
  16. data/lib/expressir/model/model_element.rb +43 -13
  17. data/lib/expressir/model/procedure.rb +15 -11
  18. data/lib/expressir/model/repository.rb +3 -3
  19. data/lib/expressir/model/rule.rb +16 -12
  20. data/lib/expressir/model/schema.rb +56 -29
  21. data/lib/expressir/model/statements/alias.rb +3 -3
  22. data/lib/expressir/model/statements/repeat.rb +3 -3
  23. data/lib/expressir/model/subtype_constraint.rb +1 -6
  24. data/lib/expressir/model/type.rb +9 -5
  25. data/lib/expressir/version.rb +1 -1
  26. data/original/examples/syntax/multiple.exp +23 -0
  27. data/original/examples/syntax/multiple.yaml +184 -0
  28. data/original/examples/syntax/multiple_formatted.exp +71 -0
  29. data/original/examples/syntax/multiple_hyperlink_formatted.exp +71 -0
  30. data/original/examples/syntax/multiple_schema_head_hyperlink_formatted.exp +13 -0
  31. data/original/examples/syntax/remark.exp +41 -41
  32. data/original/examples/syntax/remark.yaml +446 -0
  33. data/original/examples/syntax/remark_formatted.exp +62 -50
  34. data/original/examples/syntax/{simple.exp → single.exp} +1 -1
  35. data/original/examples/syntax/single.yaml +9 -0
  36. data/original/examples/syntax/single_formatted.exp +6 -0
  37. data/original/examples/syntax/single_formatted.yaml +19 -0
  38. data/original/examples/syntax/syntax.exp +29 -19
  39. data/original/examples/syntax/syntax.yaml +3439 -0
  40. data/original/examples/syntax/syntax_formatted.exp +271 -131
  41. data/original/examples/syntax/syntax_schema_head_formatted.exp +18 -0
  42. data/spec/expressir/express_exp/formatter_spec.rb +111 -0
  43. data/spec/expressir/express_exp/parser_spec.rb +98 -0
  44. data/spec/expressir/model/{model_element/find_spec.rb → model_element_spec.rb} +96 -10
  45. metadata +19 -18
  46. data/original/examples/syntax/hyperlink.exp +0 -8
  47. data/original/examples/syntax/hyperlink_formatted.exp +0 -19
  48. data/original/examples/syntax/source.exp +0 -16
  49. data/spec/expressir/express_exp/formatter/remark_spec.rb +0 -28
  50. data/spec/expressir/express_exp/formatter/syntax_spec.rb +0 -28
  51. data/spec/expressir/express_exp/hyperlink_formatter_spec.rb +0 -24
  52. data/spec/expressir/express_exp/parser/head_source_spec.rb +0 -38
  53. data/spec/expressir/express_exp/parser/multiple_spec.rb +0 -37
  54. data/spec/expressir/express_exp/parser/remark_spec.rb +0 -411
  55. data/spec/expressir/express_exp/parser/source_spec.rb +0 -29
  56. data/spec/expressir/express_exp/parser/syntax_spec.rb +0 -3080
  57. data/spec/expressir/express_exp/schema_head_formatter_spec.rb +0 -36
  58. data/spec/expressir/model/model_element/hash_spec.rb +0 -66
@@ -1,8 +0,0 @@
1
- SCHEMA hyperlink_schema;
2
- ENTITY test; END_ENTITY;
3
- ENTITY empty_entity; END_ENTITY;
4
- ENTITY attribute_entity; test : BOOLEAN; END_ENTITY;
5
- ENTITY subtype_empty_entity SUBTYPE OF (empty_entity); END_ENTITY;
6
- ENTITY subtype_attribute_entity SUBTYPE OF (attribute_entity); SELF\attribute_entity.test : BOOLEAN; END_ENTITY;
7
- ENTITY subtype_missing_entity SUBTYPE OF (missing_entity); END_ENTITY;
8
- END_SCHEMA;
@@ -1,19 +0,0 @@
1
- SCHEMA hyperlink_schema;
2
- ENTITY test;
3
- END_ENTITY;
4
- ENTITY empty_entity;
5
- END_ENTITY;
6
- ENTITY attribute_entity;
7
- test : BOOLEAN;
8
- END_ENTITY;
9
- ENTITY subtype_empty_entity
10
- SUBTYPE OF ({{{<<express:hyperlink_schema.empty_entity,empty_entity>>}}});
11
- END_ENTITY;
12
- ENTITY subtype_attribute_entity
13
- SUBTYPE OF ({{{<<express:hyperlink_schema.attribute_entity,attribute_entity>>}}});
14
- SELF\{{{<<express:hyperlink_schema.attribute_entity,attribute_entity>>}}}.test : BOOLEAN;
15
- END_ENTITY;
16
- ENTITY subtype_missing_entity
17
- SUBTYPE OF (missing_entity);
18
- END_ENTITY;
19
- END_SCHEMA;
@@ -1,16 +0,0 @@
1
- SCHEMA entity_schema;
2
- -- body
3
- ENTITY empty_entity; END_ENTITY;
4
- END_SCHEMA;
5
-
6
- SCHEMA version_entity_schema 'version';
7
- -- body
8
- ENTITY empty_entity; END_ENTITY;
9
- END_SCHEMA;
10
-
11
- SCHEMA version_interface_entity_schema 'version';
12
- USE FROM contract_schema;
13
- REFERENCE FROM contract_schema;
14
- -- body
15
- ENTITY empty_entity; END_ENTITY;
16
- END_SCHEMA;
@@ -1,28 +0,0 @@
1
- require "spec_helper"
2
- require "expressir/express_exp/parser"
3
- require "expressir/express_exp/formatter"
4
-
5
- RSpec.describe Expressir::ExpressExp::Formatter do
6
- describe ".format" do
7
- it "formats remark" do
8
- repo = Expressir::ExpressExp::Parser.from_file(input_file)
9
-
10
- result = Expressir::ExpressExp::Formatter.format(repo)
11
- expected_result = File.read(output_file)
12
-
13
- expect(result).to eq(expected_result)
14
- end
15
- end
16
-
17
- def input_file
18
- @input_file ||= Expressir.root_path.join(
19
- "original", "examples", "syntax", "remark.exp"
20
- )
21
- end
22
-
23
- def output_file
24
- @output_file ||= Expressir.root_path.join(
25
- "original", "examples", "syntax", "remark_formatted.exp"
26
- )
27
- end
28
- end
@@ -1,28 +0,0 @@
1
- require "spec_helper"
2
- require "expressir/express_exp/parser"
3
- require "expressir/express_exp/formatter"
4
-
5
- RSpec.describe Expressir::ExpressExp::Formatter do
6
- describe ".format" do
7
- it "formats syntax" do
8
- repo = Expressir::ExpressExp::Parser.from_file(input_file)
9
-
10
- result = Expressir::ExpressExp::Formatter.format(repo)
11
- expected_result = File.read(output_file)
12
-
13
- expect(result).to eq(expected_result)
14
- end
15
- end
16
-
17
- def input_file
18
- @input_file ||= Expressir.root_path.join(
19
- "original", "examples", "syntax", "syntax.exp"
20
- )
21
- end
22
-
23
- def output_file
24
- @output_file ||= Expressir.root_path.join(
25
- "original", "examples", "syntax", "syntax_formatted.exp"
26
- )
27
- end
28
- end
@@ -1,24 +0,0 @@
1
- require "spec_helper"
2
- require "expressir/express_exp/parser"
3
- require "expressir/express_exp/hyperlink_formatter"
4
-
5
- RSpec.describe Expressir::ExpressExp::HyperlinkFormatter do
6
- describe ".format" do
7
- it "formats hyperlink" do
8
- repo = Expressir::ExpressExp::Parser.from_file(input_file)
9
-
10
- result = Expressir::ExpressExp::HyperlinkFormatter.format(repo)
11
- expected_result = File.read(output_file)
12
-
13
- expect(result).to eq(expected_result)
14
- end
15
- end
16
-
17
- def input_file
18
- @input_file ||= Expressir.root_path.join("original", "examples", "syntax", "hyperlink.exp")
19
- end
20
-
21
- def output_file
22
- @output_file ||= Expressir.root_path.join("original", "examples", "syntax", "hyperlink_formatted.exp")
23
- end
24
- end
@@ -1,38 +0,0 @@
1
- require "spec_helper"
2
- require "expressir/express_exp/parser"
3
-
4
- RSpec.describe Expressir::ExpressExp::Parser do
5
- describe ".head_source" do
6
- it "contains original head source" do
7
- input = File.read(sample_file)
8
- repo = Expressir::ExpressExp::Parser.from_file(sample_file)
9
-
10
- repo.schemas[0].tap do |x|
11
- start_index = x.source.index("SCHEMA")
12
- stop_index = x.source.index(";") + ";".length - 1
13
- expected_result = x.source[start_index..stop_index]
14
- expect(x.head_source).to eq(expected_result)
15
- end
16
-
17
- repo.schemas[1].tap do |x|
18
- start_index = x.source.index("SCHEMA")
19
- stop_index = x.source.index(";") + ";".length - 1
20
- expected_result = x.source[start_index..stop_index]
21
- expect(x.head_source).to eq(expected_result)
22
- end
23
-
24
- repo.schemas[2].tap do |x|
25
- start_index = x.source.index("SCHEMA")
26
- stop_index = x.source.index("REFERENCE FROM contract_schema;") + "REFERENCE FROM contract_schema;".length - 1
27
- expected_result = x.source[start_index..stop_index]
28
- expect(x.head_source).to eq(expected_result)
29
- end
30
- end
31
- end
32
-
33
- def sample_file
34
- @sample_file ||= Expressir.root_path.join(
35
- "original", "examples", "syntax", "source.exp"
36
- )
37
- end
38
- end
@@ -1,37 +0,0 @@
1
- require "spec_helper"
2
- require "expressir/express_exp/parser"
3
-
4
- RSpec.describe Expressir::ExpressExp::Parser do
5
- describe ".from_files" do
6
- it "parses multiple files" do
7
- repo = Expressir::ExpressExp::Parser.from_files(sample_files)
8
-
9
- schemas = repo.schemas
10
- expect(schemas.count).to eq(5)
11
- expect(schemas[0].file).to eq(sample_files[0])
12
- expect(schemas[0].id).to eq("syntax_schema")
13
- expect(schemas[1].file).to eq(sample_files[1])
14
- expect(schemas[1].id).to eq("remark_schema")
15
- expect(schemas[2].file).to eq(sample_files[2])
16
- expect(schemas[2].id).to eq("entity_schema")
17
- expect(schemas[3].file).to eq(sample_files[2])
18
- expect(schemas[3].id).to eq("version_entity_schema")
19
- expect(schemas[4].file).to eq(sample_files[2])
20
- expect(schemas[4].id).to eq("version_interface_entity_schema")
21
- end
22
- end
23
-
24
- def sample_files
25
- @sample_files ||= [
26
- Expressir.root_path.join(
27
- "original", "examples", "syntax", "syntax.exp"
28
- ),
29
- Expressir.root_path.join(
30
- "original", "examples", "syntax", "remark.exp"
31
- ),
32
- Expressir.root_path.join(
33
- "original", "examples", "syntax", "source.exp"
34
- )
35
- ]
36
- end
37
- end
@@ -1,411 +0,0 @@
1
- require "spec_helper"
2
- require "expressir/express_exp/parser"
3
-
4
- RSpec.describe Expressir::ExpressExp::Parser do
5
- describe ".from_file" do
6
- it "parses remark" do
7
- repo = Expressir::ExpressExp::Parser.from_file(sample_file)
8
-
9
- schema = repo.schemas.first
10
-
11
- schema.tap do |x|
12
- expect(x).to be_instance_of(Expressir::Model::Schema)
13
- expect(x.remarks).to be_instance_of(Array)
14
- expect(x.remarks.count).to eq(5)
15
- expect(x.remarks[0]).to eq("Any character within the EXPRESS character set may occur between the start and end of\nan embedded remark including the newline character; therefore, embedded remarks can span\nseveral physical lines.")
16
- expect(x.remarks[1]).to eq("The tail remark is written at the end of a physical line.")
17
- expect(x.remarks[2]).to eq("UTF8 test: Příliš žluťoučký kůň úpěl ďábelské ódy.")
18
- expect(x.remarks[3]).to eq("universal scope - schema before")
19
- expect(x.remarks[4]).to eq("universal scope - schema")
20
- end
21
-
22
- schema.constants.first.tap do |x|
23
- expect(x).to be_instance_of(Expressir::Model::Constant)
24
- expect(x.remarks).to be_instance_of(Array)
25
- expect(x.remarks.count).to eq(2)
26
- expect(x.remarks[0]).to eq("schema scope - constant")
27
- expect(x.remarks[1]).to eq("universal scope - constant")
28
- end
29
-
30
- schema.types.first.tap do |x|
31
- expect(x).to be_instance_of(Expressir::Model::Type)
32
- expect(x.remarks).to be_instance_of(Array)
33
- expect(x.remarks.count).to eq(2)
34
- expect(x.remarks[0]).to eq("schema scope - type")
35
- expect(x.remarks[1]).to eq("universal scope - type")
36
-
37
- expect(x.type).to be_instance_of(Expressir::Model::Types::Enumeration)
38
- x.type.items.first.tap do |x|
39
- expect(x).to be_instance_of(Expressir::Model::EnumerationItem)
40
- expect(x.remarks).to be_instance_of(Array)
41
- expect(x.remarks.count).to eq(4)
42
- expect(x.remarks[0]).to eq("schema scope - enumeration item")
43
- expect(x.remarks[1]).to eq("schema scope - enumeration item, on the same level as the type")
44
- expect(x.remarks[2]).to eq("universal scope - enumeration item")
45
- expect(x.remarks[3]).to eq("universal scope - enumeration item, on the same level as the type")
46
- end
47
- end
48
-
49
- schema.types.first.where.first.tap do |x|
50
- expect(x).to be_instance_of(Expressir::Model::Where)
51
- expect(x.remarks).to be_instance_of(Array)
52
- expect(x.remarks.count).to eq(6)
53
- expect(x.remarks[0]).to eq("type scope - type where")
54
- expect(x.remarks[1]).to eq("type scope - type where, with prefix")
55
- expect(x.remarks[2]).to eq("schema scope - type where")
56
- expect(x.remarks[3]).to eq("schema scope - type where, with prefix")
57
- expect(x.remarks[4]).to eq("universal scope - type where")
58
- expect(x.remarks[5]).to eq("universal scope - type where, with prefix")
59
- end
60
-
61
- schema.types.first.informal_propositions.first.tap do |x|
62
- expect(x).to be_instance_of(Expressir::Model::InformalProposition)
63
- expect(x.remarks).to be_instance_of(Array)
64
- expect(x.remarks.count).to eq(6)
65
- expect(x.remarks[0]).to eq("type scope - type informal proposition")
66
- expect(x.remarks[1]).to eq("type scope - type informal proposition, with prefix")
67
- expect(x.remarks[2]).to eq("schema scope - type informal proposition")
68
- expect(x.remarks[3]).to eq("schema scope - type informal proposition, with prefix")
69
- expect(x.remarks[4]).to eq("universal scope - type informal proposition")
70
- expect(x.remarks[5]).to eq("universal scope - type informal proposition, with prefix")
71
- end
72
-
73
- schema.entities.first.tap do |x|
74
- expect(x).to be_instance_of(Expressir::Model::Entity)
75
- expect(x.remarks).to be_instance_of(Array)
76
- expect(x.remarks.count).to eq(2)
77
- expect(x.remarks[0]).to eq("schema scope - entity")
78
- expect(x.remarks[1]).to eq("universal scope - entity")
79
- end
80
-
81
- schema.entities.first.attributes.find{|x| x.kind == Expressir::Model::Attribute::EXPLICIT}.tap do |x|
82
- expect(x).to be_instance_of(Expressir::Model::Attribute)
83
- expect(x.kind).to eq(Expressir::Model::Attribute::EXPLICIT)
84
- expect(x.remarks).to be_instance_of(Array)
85
- expect(x.remarks.count).to eq(3)
86
- expect(x.remarks[0]).to eq("entity scope - entity attribute")
87
- expect(x.remarks[1]).to eq("schema scope - entity attribute")
88
- expect(x.remarks[2]).to eq("universal scope - entity attribute")
89
- end
90
-
91
- schema.entities.first.attributes.find{|x| x.kind == Expressir::Model::Attribute::DERIVED}.tap do |x|
92
- expect(x).to be_instance_of(Expressir::Model::Attribute)
93
- expect(x.kind).to eq(Expressir::Model::Attribute::DERIVED)
94
- expect(x.remarks).to be_instance_of(Array)
95
- expect(x.remarks.count).to eq(3)
96
- expect(x.remarks[0]).to eq("entity scope - entity derived attribute")
97
- expect(x.remarks[1]).to eq("schema scope - entity derived attribute")
98
- expect(x.remarks[2]).to eq("universal scope - entity derived attribute")
99
- end
100
-
101
- schema.entities.first.attributes.find{|x| x.kind == Expressir::Model::Attribute::INVERSE}.tap do |x|
102
- expect(x).to be_instance_of(Expressir::Model::Attribute)
103
- expect(x.kind).to eq(Expressir::Model::Attribute::INVERSE)
104
- expect(x.remarks).to be_instance_of(Array)
105
- expect(x.remarks.count).to eq(3)
106
- expect(x.remarks[0]).to eq("entity scope - entity inverse attribute")
107
- expect(x.remarks[1]).to eq("schema scope - entity inverse attribute")
108
- expect(x.remarks[2]).to eq("universal scope - entity inverse attribute")
109
- end
110
-
111
- schema.entities.first.unique.first.tap do |x|
112
- expect(x).to be_instance_of(Expressir::Model::Unique)
113
- expect(x.remarks).to be_instance_of(Array)
114
- expect(x.remarks.count).to eq(3)
115
- expect(x.remarks[0]).to eq("entity scope - entity unique")
116
- expect(x.remarks[1]).to eq("schema scope - entity unique")
117
- expect(x.remarks[2]).to eq("universal scope - entity unique")
118
- end
119
-
120
- schema.entities.first.where.first.tap do |x|
121
- expect(x).to be_instance_of(Expressir::Model::Where)
122
- expect(x.remarks).to be_instance_of(Array)
123
- expect(x.remarks.count).to eq(6)
124
- expect(x.remarks[0]).to eq("entity scope - entity where")
125
- expect(x.remarks[1]).to eq("entity scope - entity where, with prefix")
126
- expect(x.remarks[2]).to eq("schema scope - entity where")
127
- expect(x.remarks[3]).to eq("schema scope - entity where, with prefix")
128
- expect(x.remarks[4]).to eq("universal scope - entity where")
129
- expect(x.remarks[5]).to eq("universal scope - entity where, with prefix")
130
- end
131
-
132
- schema.entities.first.informal_propositions.first.tap do |x|
133
- expect(x).to be_instance_of(Expressir::Model::InformalProposition)
134
- expect(x.remarks).to be_instance_of(Array)
135
- expect(x.remarks.count).to eq(6)
136
- expect(x.remarks[0]).to eq("entity scope - entity informal proposition")
137
- expect(x.remarks[1]).to eq("entity scope - entity informal proposition, with prefix")
138
- expect(x.remarks[2]).to eq("schema scope - entity informal proposition")
139
- expect(x.remarks[3]).to eq("schema scope - entity informal proposition, with prefix")
140
- expect(x.remarks[4]).to eq("universal scope - entity informal proposition")
141
- expect(x.remarks[5]).to eq("universal scope - entity informal proposition, with prefix")
142
- end
143
-
144
- schema.subtype_constraints.first.tap do |x|
145
- expect(x).to be_instance_of(Expressir::Model::SubtypeConstraint)
146
- expect(x.remarks).to be_instance_of(Array)
147
- expect(x.remarks.count).to eq(2)
148
- expect(x.remarks[0]).to eq("schema scope - subtype constraint")
149
- expect(x.remarks[1]).to eq("universal scope - subtype constraint")
150
- end
151
-
152
- schema.functions.first.tap do |x|
153
- expect(x).to be_instance_of(Expressir::Model::Function)
154
- expect(x.remarks).to be_instance_of(Array)
155
- expect(x.remarks.count).to eq(2)
156
- expect(x.remarks[0]).to eq("schema scope - function")
157
- expect(x.remarks[1]).to eq("universal scope - function")
158
- end
159
-
160
- schema.functions.first.parameters.first.tap do |x|
161
- expect(x).to be_instance_of(Expressir::Model::Parameter)
162
- expect(x.remarks).to be_instance_of(Array)
163
- expect(x.remarks.count).to eq(3)
164
- expect(x.remarks[0]).to eq("function scope - function parameter")
165
- expect(x.remarks[1]).to eq("schema scope - function parameter")
166
- expect(x.remarks[2]).to eq("universal scope - function parameter")
167
- end
168
-
169
- schema.functions.first.types.first.tap do |x|
170
- expect(x).to be_instance_of(Expressir::Model::Type)
171
- expect(x.remarks).to be_instance_of(Array)
172
- expect(x.remarks.count).to eq(3)
173
- expect(x.remarks[0]).to eq("function scope - function type")
174
- expect(x.remarks[1]).to eq("schema scope - function type")
175
- expect(x.remarks[2]).to eq("universal scope - function type")
176
-
177
- expect(x.type).to be_instance_of(Expressir::Model::Types::Enumeration)
178
- x.type.items.first.tap do |x|
179
- expect(x).to be_instance_of(Expressir::Model::EnumerationItem)
180
- expect(x.remarks).to be_instance_of(Array)
181
- expect(x.remarks.count).to eq(6)
182
- expect(x.remarks[0]).to eq("function scope - function enumeration item")
183
- expect(x.remarks[1]).to eq("function scope - function enumeration item, on the same level as the type")
184
- expect(x.remarks[2]).to eq("schema scope - function enumeration item")
185
- expect(x.remarks[3]).to eq("schema scope - function enumeration item, on the same level as the type")
186
- expect(x.remarks[4]).to eq("universal scope - function enumeration item")
187
- expect(x.remarks[5]).to eq("universal scope - function enumeration item, on the same level as the type")
188
- end
189
- end
190
-
191
- schema.functions.first.constants.first.tap do |x|
192
- expect(x).to be_instance_of(Expressir::Model::Constant)
193
- expect(x.remarks).to be_instance_of(Array)
194
- expect(x.remarks.count).to eq(3)
195
- expect(x.remarks[0]).to eq("function scope - function constant")
196
- expect(x.remarks[1]).to eq("schema scope - function constant")
197
- expect(x.remarks[2]).to eq("universal scope - function constant")
198
- end
199
-
200
- schema.functions.first.variables.first.tap do |x|
201
- expect(x).to be_instance_of(Expressir::Model::Variable)
202
- expect(x.remarks).to be_instance_of(Array)
203
- expect(x.remarks.count).to eq(3)
204
- expect(x.remarks[0]).to eq("function scope - function variable")
205
- expect(x.remarks[1]).to eq("schema scope - function variable")
206
- expect(x.remarks[2]).to eq("universal scope - function variable")
207
- end
208
-
209
- schema.functions.first.statements[0].tap do |x|
210
- expect(x).to be_instance_of(Expressir::Model::Statements::Alias)
211
- expect(x.remarks).to be_instance_of(Array)
212
- expect(x.remarks.count).to eq(1)
213
- expect(x.remarks[0]).to eq("function alias scope - function alias")
214
- end
215
-
216
- schema.functions.first.statements[1].tap do |x|
217
- expect(x).to be_instance_of(Expressir::Model::Statements::Repeat)
218
- expect(x.remarks).to be_instance_of(Array)
219
- expect(x.remarks.count).to eq(1)
220
- expect(x.remarks[0]).to eq("function repeat scope - function repeat")
221
- end
222
-
223
- schema.functions.first.statements[2].tap do |x|
224
- expect(x).to be_instance_of(Expressir::Model::Statements::Assignment)
225
- expect(x.expression).to be_instance_of(Expressir::Model::Expressions::QueryExpression)
226
- expect(x.expression.remarks).to be_instance_of(Array)
227
- expect(x.expression.remarks.count).to eq(1)
228
- expect(x.expression.remarks[0]).to eq("function query scope - function query")
229
- end
230
-
231
- schema.procedures.first.tap do |x|
232
- expect(x).to be_instance_of(Expressir::Model::Procedure)
233
- expect(x.remarks).to be_instance_of(Array)
234
- expect(x.remarks.count).to eq(2)
235
- expect(x.remarks[0]).to eq("schema scope - procedure")
236
- expect(x.remarks[1]).to eq("universal scope - procedure")
237
- end
238
-
239
- schema.procedures.first.parameters.first.tap do |x|
240
- expect(x).to be_instance_of(Expressir::Model::Parameter)
241
- expect(x.remarks).to be_instance_of(Array)
242
- expect(x.remarks.count).to eq(3)
243
- expect(x.remarks[0]).to eq("procedure scope - procedure parameter")
244
- expect(x.remarks[1]).to eq("schema scope - procedure parameter")
245
- expect(x.remarks[2]).to eq("universal scope - procedure parameter")
246
- end
247
-
248
- schema.procedures.first.types.first.tap do |x|
249
- expect(x).to be_instance_of(Expressir::Model::Type)
250
- expect(x.remarks).to be_instance_of(Array)
251
- expect(x.remarks.count).to eq(3)
252
- expect(x.remarks[0]).to eq("procedure scope - procedure type")
253
- expect(x.remarks[1]).to eq("schema scope - procedure type")
254
- expect(x.remarks[2]).to eq("universal scope - procedure type")
255
-
256
- expect(x.type).to be_instance_of(Expressir::Model::Types::Enumeration)
257
- x.type.items.first.tap do |x|
258
- expect(x).to be_instance_of(Expressir::Model::EnumerationItem)
259
- expect(x.remarks).to be_instance_of(Array)
260
- expect(x.remarks.count).to eq(6)
261
- expect(x.remarks[0]).to eq("procedure scope - procedure enumeration item")
262
- expect(x.remarks[1]).to eq("procedure scope - procedure enumeration item, on the same level as the type")
263
- expect(x.remarks[2]).to eq("schema scope - procedure enumeration item")
264
- expect(x.remarks[3]).to eq("schema scope - procedure enumeration item, on the same level as the type")
265
- expect(x.remarks[4]).to eq("universal scope - procedure enumeration item")
266
- expect(x.remarks[5]).to eq("universal scope - procedure enumeration item, on the same level as the type")
267
- end
268
- end
269
-
270
- schema.procedures.first.constants.first.tap do |x|
271
- expect(x).to be_instance_of(Expressir::Model::Constant)
272
- expect(x.remarks).to be_instance_of(Array)
273
- expect(x.remarks.count).to eq(3)
274
- expect(x.remarks[0]).to eq("procedure scope - procedure constant")
275
- expect(x.remarks[1]).to eq("schema scope - procedure constant")
276
- expect(x.remarks[2]).to eq("universal scope - procedure constant")
277
- end
278
-
279
- schema.procedures.first.variables.first.tap do |x|
280
- expect(x).to be_instance_of(Expressir::Model::Variable)
281
- expect(x.remarks).to be_instance_of(Array)
282
- expect(x.remarks.count).to eq(3)
283
- expect(x.remarks[0]).to eq("procedure scope - procedure variable")
284
- expect(x.remarks[1]).to eq("schema scope - procedure variable")
285
- expect(x.remarks[2]).to eq("universal scope - procedure variable")
286
- end
287
-
288
- schema.procedures.first.statements[0].tap do |x|
289
- expect(x).to be_instance_of(Expressir::Model::Statements::Alias)
290
- expect(x.remarks).to be_instance_of(Array)
291
- expect(x.remarks.count).to eq(1)
292
- expect(x.remarks[0]).to eq("procedure alias scope - procedure alias")
293
- end
294
-
295
- schema.procedures.first.statements[1].tap do |x|
296
- expect(x).to be_instance_of(Expressir::Model::Statements::Repeat)
297
- expect(x.remarks).to be_instance_of(Array)
298
- expect(x.remarks.count).to eq(1)
299
- expect(x.remarks[0]).to eq("procedure repeat scope - procedure repeat")
300
- end
301
-
302
- schema.procedures.first.statements[2].tap do |x|
303
- expect(x).to be_instance_of(Expressir::Model::Statements::Assignment)
304
- expect(x.expression).to be_instance_of(Expressir::Model::Expressions::QueryExpression)
305
- expect(x.expression.remarks).to be_instance_of(Array)
306
- expect(x.expression.remarks.count).to eq(1)
307
- expect(x.expression.remarks[0]).to eq("procedure query scope - procedure query")
308
- end
309
-
310
- schema.rules.first.tap do |x|
311
- expect(x).to be_instance_of(Expressir::Model::Rule)
312
- expect(x.remarks).to be_instance_of(Array)
313
- expect(x.remarks.count).to eq(2)
314
- expect(x.remarks[0]).to eq("schema scope - rule")
315
- expect(x.remarks[1]).to eq("universal scope - rule")
316
- end
317
-
318
- schema.rules.first.types.first.tap do |x|
319
- expect(x).to be_instance_of(Expressir::Model::Type)
320
- expect(x.remarks).to be_instance_of(Array)
321
- expect(x.remarks.count).to eq(3)
322
- expect(x.remarks[0]).to eq("rule scope - rule type")
323
- expect(x.remarks[1]).to eq("schema scope - rule type")
324
- expect(x.remarks[2]).to eq("universal scope - rule type")
325
-
326
- expect(x.type).to be_instance_of(Expressir::Model::Types::Enumeration)
327
- x.type.items.first.tap do |x|
328
- expect(x).to be_instance_of(Expressir::Model::EnumerationItem)
329
- expect(x.remarks).to be_instance_of(Array)
330
- expect(x.remarks.count).to eq(6)
331
- expect(x.remarks[0]).to eq("rule scope - rule enumeration item")
332
- expect(x.remarks[1]).to eq("rule scope - rule enumeration item, on the same level as the type")
333
- expect(x.remarks[2]).to eq("schema scope - rule enumeration item")
334
- expect(x.remarks[3]).to eq("schema scope - rule enumeration item, on the same level as the type")
335
- expect(x.remarks[4]).to eq("universal scope - rule enumeration item")
336
- expect(x.remarks[5]).to eq("universal scope - rule enumeration item, on the same level as the type")
337
- end
338
- end
339
-
340
- schema.rules.first.constants.first.tap do |x|
341
- expect(x).to be_instance_of(Expressir::Model::Constant)
342
- expect(x.remarks).to be_instance_of(Array)
343
- expect(x.remarks.count).to eq(3)
344
- expect(x.remarks[0]).to eq("rule scope - rule constant")
345
- expect(x.remarks[1]).to eq("schema scope - rule constant")
346
- expect(x.remarks[2]).to eq("universal scope - rule constant")
347
- end
348
-
349
- schema.rules.first.variables.first.tap do |x|
350
- expect(x).to be_instance_of(Expressir::Model::Variable)
351
- expect(x.remarks).to be_instance_of(Array)
352
- expect(x.remarks.count).to eq(3)
353
- expect(x.remarks[0]).to eq("rule scope - rule variable")
354
- expect(x.remarks[1]).to eq("schema scope - rule variable")
355
- expect(x.remarks[2]).to eq("universal scope - rule variable")
356
- end
357
-
358
- schema.rules.first.statements[0].tap do |x|
359
- expect(x).to be_instance_of(Expressir::Model::Statements::Alias)
360
- expect(x.remarks).to be_instance_of(Array)
361
- expect(x.remarks.count).to eq(1)
362
- expect(x.remarks[0]).to eq("rule alias scope - rule alias")
363
- end
364
-
365
- schema.rules.first.statements[1].tap do |x|
366
- expect(x).to be_instance_of(Expressir::Model::Statements::Repeat)
367
- expect(x.remarks).to be_instance_of(Array)
368
- expect(x.remarks.count).to eq(1)
369
- expect(x.remarks[0]).to eq("rule repeat scope - rule repeat")
370
- end
371
-
372
- schema.rules.first.statements[2].tap do |x|
373
- expect(x).to be_instance_of(Expressir::Model::Statements::Assignment)
374
- expect(x.expression).to be_instance_of(Expressir::Model::Expressions::QueryExpression)
375
- expect(x.expression.remarks).to be_instance_of(Array)
376
- expect(x.expression.remarks.count).to eq(1)
377
- expect(x.expression.remarks[0]).to eq("rule query scope - rule query")
378
- end
379
-
380
- schema.rules.first.where.first.tap do |x|
381
- expect(x).to be_instance_of(Expressir::Model::Where)
382
- expect(x.remarks).to be_instance_of(Array)
383
- expect(x.remarks.count).to eq(6)
384
- expect(x.remarks[0]).to eq("rule scope - rule where")
385
- expect(x.remarks[1]).to eq("rule scope - rule where, with prefix")
386
- expect(x.remarks[2]).to eq("schema scope - rule where")
387
- expect(x.remarks[3]).to eq("schema scope - rule where, with prefix")
388
- expect(x.remarks[4]).to eq("universal scope - rule where")
389
- expect(x.remarks[5]).to eq("universal scope - rule where, with prefix")
390
- end
391
-
392
- schema.rules.first.informal_propositions.first.tap do |x|
393
- expect(x).to be_instance_of(Expressir::Model::InformalProposition)
394
- expect(x.remarks).to be_instance_of(Array)
395
- expect(x.remarks.count).to eq(6)
396
- expect(x.remarks[0]).to eq("rule scope - rule informal proposition")
397
- expect(x.remarks[1]).to eq("rule scope - rule informal proposition, with prefix")
398
- expect(x.remarks[2]).to eq("schema scope - rule informal proposition")
399
- expect(x.remarks[3]).to eq("schema scope - rule informal proposition, with prefix")
400
- expect(x.remarks[4]).to eq("universal scope - rule informal proposition")
401
- expect(x.remarks[5]).to eq("universal scope - rule informal proposition, with prefix")
402
- end
403
- end
404
- end
405
-
406
- def sample_file
407
- @sample_file ||= Expressir.root_path.join(
408
- "original", "examples", "syntax", "remark.exp"
409
- )
410
- end
411
- end