expressir 0.2.15-arm64-darwin → 0.2.21-arm64-darwin

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +5 -0
  3. data/.github/workflows/release.yml +16 -4
  4. data/README.adoc +3 -3
  5. data/exe/format +66 -12
  6. data/lib/expressir/express_exp/2.4/express_parser.bundle +0 -0
  7. data/lib/expressir/express_exp/2.5/express_parser.bundle +0 -0
  8. data/lib/expressir/express_exp/2.6/express_parser.bundle +0 -0
  9. data/lib/expressir/express_exp/2.7/express_parser.bundle +0 -0
  10. data/lib/expressir/express_exp/3.0/express_parser.bundle +0 -0
  11. data/lib/expressir/express_exp/cache.rb +48 -0
  12. data/lib/expressir/express_exp/formatter.rb +185 -135
  13. data/lib/expressir/express_exp/hyperlink_formatter.rb +1 -3
  14. data/lib/expressir/express_exp/parser.rb +33 -29
  15. data/lib/expressir/express_exp/schema_head_formatter.rb +2 -7
  16. data/lib/expressir/express_exp/visitor.rb +11 -30
  17. data/lib/expressir/model.rb +2 -0
  18. data/lib/expressir/model/cache.rb +13 -0
  19. data/lib/expressir/model/entity.rb +6 -6
  20. data/lib/expressir/model/expressions/query_expression.rb +3 -3
  21. data/lib/expressir/model/function.rb +15 -11
  22. data/lib/expressir/model/informal_proposition.rb +4 -1
  23. data/lib/expressir/model/interfaced_item.rb +4 -1
  24. data/lib/expressir/model/model_element.rb +43 -13
  25. data/lib/expressir/model/procedure.rb +15 -11
  26. data/lib/expressir/model/repository.rb +3 -3
  27. data/lib/expressir/model/rule.rb +16 -12
  28. data/lib/expressir/model/schema.rb +52 -48
  29. data/lib/expressir/model/statements/alias.rb +3 -3
  30. data/lib/expressir/model/statements/repeat.rb +3 -3
  31. data/lib/expressir/model/subtype_constraint.rb +1 -6
  32. data/lib/expressir/model/type.rb +9 -5
  33. data/lib/expressir/version.rb +1 -1
  34. data/original/examples/syntax/{hyperlink.exp → multiple.exp} +8 -8
  35. data/original/examples/syntax/multiple.yaml +184 -0
  36. data/original/examples/syntax/multiple_formatted.exp +71 -0
  37. data/original/examples/syntax/multiple_hyperlink_formatted.exp +71 -0
  38. data/original/examples/syntax/multiple_schema_head_hyperlink_formatted.exp +13 -0
  39. data/original/examples/syntax/remark.exp +41 -41
  40. data/original/examples/syntax/remark.yaml +446 -0
  41. data/original/examples/syntax/remark_formatted.exp +62 -50
  42. data/original/examples/syntax/{simple.exp → single.exp} +1 -1
  43. data/original/examples/syntax/single.yaml +9 -0
  44. data/original/examples/syntax/single_formatted.exp +6 -0
  45. data/original/examples/syntax/single_formatted.yaml +19 -0
  46. data/original/examples/syntax/syntax.exp +29 -19
  47. data/original/examples/syntax/syntax.yaml +3439 -0
  48. data/original/examples/syntax/syntax_formatted.exp +271 -131
  49. data/original/examples/syntax/syntax_schema_head_formatted.exp +18 -0
  50. data/spec/expressir/express_exp/cache_spec.rb +64 -0
  51. data/spec/expressir/express_exp/formatter_spec.rb +111 -0
  52. data/spec/expressir/express_exp/parser_spec.rb +98 -0
  53. data/spec/expressir/model/{model_element/find_spec.rb → model_element_spec.rb} +96 -10
  54. metadata +20 -17
  55. data/original/examples/syntax/hyperlink_formatted.exp +0 -51
  56. data/original/examples/syntax/source.exp +0 -16
  57. data/spec/expressir/express_exp/formatter/remark_spec.rb +0 -28
  58. data/spec/expressir/express_exp/formatter/syntax_spec.rb +0 -28
  59. data/spec/expressir/express_exp/hyperlink_formatter_spec.rb +0 -24
  60. data/spec/expressir/express_exp/parser/head_source_spec.rb +0 -38
  61. data/spec/expressir/express_exp/parser/multiple_spec.rb +0 -37
  62. data/spec/expressir/express_exp/parser/remark_spec.rb +0 -411
  63. data/spec/expressir/express_exp/parser/source_spec.rb +0 -29
  64. data/spec/expressir/express_exp/parser/syntax_spec.rb +0 -3086
  65. data/spec/expressir/express_exp/schema_head_formatter_spec.rb +0 -36
  66. data/spec/expressir/model/model_element/hash_spec.rb +0 -66
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: expressir
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.15
4
+ version: 0.2.21
5
5
  platform: arm64-darwin
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-02 00:00:00.000000000 Z
11
+ date: 2021-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -215,6 +215,7 @@ files:
215
215
  - lib/expressir/express_exp/2.6/express_parser.bundle
216
216
  - lib/expressir/express_exp/2.7/express_parser.bundle
217
217
  - lib/expressir/express_exp/3.0/express_parser.bundle
218
+ - lib/expressir/express_exp/cache.rb
218
219
  - lib/expressir/express_exp/formatter.rb
219
220
  - lib/expressir/express_exp/hyperlink_formatter.rb
220
221
  - lib/expressir/express_exp/parser.rb
@@ -223,6 +224,7 @@ files:
223
224
  - lib/expressir/express_parser.rb
224
225
  - lib/expressir/model.rb
225
226
  - lib/expressir/model/attribute.rb
227
+ - lib/expressir/model/cache.rb
226
228
  - lib/expressir/model/constant.rb
227
229
  - lib/expressir/model/entity.rb
228
230
  - lib/expressir/model/enumeration_item.rb
@@ -320,14 +322,22 @@ files:
320
322
  - original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.owl
321
323
  - original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.xmi
322
324
  - original/examples/plcs/ap239e2_arm_lf_stepmod-2010-01-25.xml
323
- - original/examples/syntax/hyperlink.exp
324
- - original/examples/syntax/hyperlink_formatted.exp
325
+ - original/examples/syntax/multiple.exp
326
+ - original/examples/syntax/multiple.yaml
327
+ - original/examples/syntax/multiple_formatted.exp
328
+ - original/examples/syntax/multiple_hyperlink_formatted.exp
329
+ - original/examples/syntax/multiple_schema_head_hyperlink_formatted.exp
325
330
  - original/examples/syntax/remark.exp
331
+ - original/examples/syntax/remark.yaml
326
332
  - original/examples/syntax/remark_formatted.exp
327
- - original/examples/syntax/simple.exp
328
- - original/examples/syntax/source.exp
333
+ - original/examples/syntax/single.exp
334
+ - original/examples/syntax/single.yaml
335
+ - original/examples/syntax/single_formatted.exp
336
+ - original/examples/syntax/single_formatted.yaml
329
337
  - original/examples/syntax/syntax.exp
338
+ - original/examples/syntax/syntax.yaml
330
339
  - original/examples/syntax/syntax_formatted.exp
340
+ - original/examples/syntax/syntax_schema_head_formatted.exp
331
341
  - original/exp2ruby.rb
332
342
  - original/expsm.rb
333
343
  - original/mapping_owl.rb
@@ -339,17 +349,10 @@ files:
339
349
  - spec/acceptance/express_to_owl_spec.rb
340
350
  - spec/acceptance/version_spec.rb
341
351
  - spec/expressir/express/repository_spec.rb
342
- - spec/expressir/express_exp/formatter/remark_spec.rb
343
- - spec/expressir/express_exp/formatter/syntax_spec.rb
344
- - spec/expressir/express_exp/hyperlink_formatter_spec.rb
345
- - spec/expressir/express_exp/parser/head_source_spec.rb
346
- - spec/expressir/express_exp/parser/multiple_spec.rb
347
- - spec/expressir/express_exp/parser/remark_spec.rb
348
- - spec/expressir/express_exp/parser/source_spec.rb
349
- - spec/expressir/express_exp/parser/syntax_spec.rb
350
- - spec/expressir/express_exp/schema_head_formatter_spec.rb
351
- - spec/expressir/model/model_element/find_spec.rb
352
- - spec/expressir/model/model_element/hash_spec.rb
352
+ - spec/expressir/express_exp/cache_spec.rb
353
+ - spec/expressir/express_exp/formatter_spec.rb
354
+ - spec/expressir/express_exp/parser_spec.rb
355
+ - spec/expressir/model/model_element_spec.rb
353
356
  - spec/expressr_spec.rb
354
357
  - spec/spec_helper.rb
355
358
  - spec/support/console_helper.rb
@@ -1,51 +0,0 @@
1
- SCHEMA hyperlink_schema;
2
- REFERENCE FROM {{{<<express:hyperlink_schema2,hyperlink_schema2>>}}};
3
- REFERENCE FROM {{{<<express:hyperlink_schema3,hyperlink_schema3>>}}}
4
- ({{{<<express:hyperlink_schema3.attribute_entity3,attribute_entity3>>}}});
5
- REFERENCE FROM {{{<<express:hyperlink_schema4,hyperlink_schema4>>}}}
6
- ({{{<<express:hyperlink_schema4.attribute_entity,attribute_entity>>}}} AS attribute_entity4);
7
- ENTITY test;
8
- END_ENTITY;
9
- ENTITY empty_entity;
10
- END_ENTITY;
11
- ENTITY attribute_entity;
12
- test : BOOLEAN;
13
- END_ENTITY;
14
- ENTITY subtype_empty_entity
15
- SUBTYPE OF ({{{<<express:hyperlink_schema.empty_entity,empty_entity>>}}});
16
- END_ENTITY;
17
- ENTITY subtype_attribute_entity
18
- SUBTYPE OF ({{{<<express:hyperlink_schema.attribute_entity,attribute_entity>>}}});
19
- SELF\{{{<<express:hyperlink_schema.attribute_entity,attribute_entity>>}}}.test : BOOLEAN;
20
- END_ENTITY;
21
- ENTITY subtype_attribute_entity2
22
- SUBTYPE OF ({{{<<express:hyperlink_schema2.attribute_entity2,attribute_entity2>>}}});
23
- SELF\{{{<<express:hyperlink_schema2.attribute_entity2,attribute_entity2>>}}}.test : BOOLEAN;
24
- END_ENTITY;
25
- ENTITY subtype_attribute_entity3
26
- SUBTYPE OF ({{{<<express:hyperlink_schema3.attribute_entity3,attribute_entity3>>}}});
27
- SELF\{{{<<express:hyperlink_schema3.attribute_entity3,attribute_entity3>>}}}.test : BOOLEAN;
28
- END_ENTITY;
29
- ENTITY subtype_attribute_entity4
30
- SUBTYPE OF ({{{<<express:hyperlink_schema4.attribute_entity,attribute_entity4>>}}});
31
- SELF\{{{<<express:hyperlink_schema4.attribute_entity,attribute_entity4>>}}}.test : BOOLEAN;
32
- END_ENTITY;
33
- ENTITY subtype_missing_entity
34
- SUBTYPE OF (missing_entity);
35
- END_ENTITY;
36
- END_SCHEMA;
37
- SCHEMA hyperlink_schema2;
38
- ENTITY attribute_entity2;
39
- test : BOOLEAN;
40
- END_ENTITY;
41
- END_SCHEMA;
42
- SCHEMA hyperlink_schema3;
43
- ENTITY attribute_entity3;
44
- test : BOOLEAN;
45
- END_ENTITY;
46
- END_SCHEMA;
47
- SCHEMA hyperlink_schema4;
48
- ENTITY attribute_entity;
49
- test : BOOLEAN;
50
- END_ENTITY;
51
- 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