expressir 0.2.8-x86-linux → 0.2.13-x86-linux
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/release.yml +1 -7
- data/exe/format +20 -0
- data/expressir.gemspec +3 -2
- data/lib/expressir/express_exp/2.4/express_parser.so +0 -0
- data/lib/expressir/express_exp/2.5/express_parser.so +0 -0
- data/lib/expressir/express_exp/2.6/express_parser.so +0 -0
- data/lib/expressir/express_exp/2.7/express_parser.so +0 -0
- data/lib/expressir/express_exp/3.0/express_parser.so +0 -0
- data/lib/expressir/express_exp/formatter.rb +147 -110
- data/lib/expressir/express_exp/hyperlink_formatter.rb +25 -0
- data/lib/expressir/express_exp/parser.rb +14 -1
- data/lib/expressir/express_exp/schema_head_formatter.rb +14 -0
- data/lib/expressir/express_exp/visitor.rb +197 -111
- data/lib/expressir/model.rb +3 -1
- data/lib/expressir/model/attribute.rb +5 -1
- data/lib/expressir/model/constant.rb +5 -1
- data/lib/expressir/model/entity.rb +14 -20
- data/lib/expressir/model/enumeration_item.rb +5 -1
- data/lib/expressir/model/expressions/aggregate_initializer.rb +4 -2
- data/lib/expressir/model/expressions/aggregate_item.rb +3 -1
- data/lib/expressir/model/expressions/attribute_reference.rb +3 -1
- data/lib/expressir/model/expressions/binary_expression.rb +3 -1
- data/lib/expressir/model/expressions/call.rb +4 -2
- data/lib/expressir/model/expressions/entity_constructor.rb +4 -2
- data/lib/expressir/model/expressions/group_reference.rb +3 -1
- data/lib/expressir/model/expressions/index_reference.rb +3 -1
- data/lib/expressir/model/expressions/interval.rb +3 -1
- data/lib/expressir/model/expressions/query_expression.rb +5 -2
- data/lib/expressir/model/expressions/simple_reference.rb +3 -1
- data/lib/expressir/model/expressions/unary_expression.rb +3 -1
- data/lib/expressir/model/function.rb +28 -39
- data/lib/expressir/model/identifier.rb +1 -3
- data/lib/expressir/model/informal_proposition.rb +15 -0
- data/lib/expressir/model/interface.rb +4 -2
- data/lib/expressir/model/literals/binary.rb +3 -1
- data/lib/expressir/model/literals/integer.rb +3 -1
- data/lib/expressir/model/literals/logical.rb +3 -1
- data/lib/expressir/model/literals/real.rb +3 -1
- data/lib/expressir/model/literals/string.rb +3 -1
- data/lib/expressir/model/model_element.rb +140 -0
- data/lib/expressir/model/parameter.rb +5 -1
- data/lib/expressir/model/procedure.rb +29 -40
- data/lib/expressir/model/renamed_ref.rb +3 -1
- data/lib/expressir/model/repository.rb +5 -5
- data/lib/expressir/model/rule.rb +33 -41
- data/lib/expressir/model/schema.rb +44 -46
- data/lib/expressir/model/statements/alias.rb +6 -3
- data/lib/expressir/model/statements/assignment.rb +3 -1
- data/lib/expressir/model/statements/call.rb +4 -2
- data/lib/expressir/model/statements/case.rb +4 -2
- data/lib/expressir/model/statements/case_action.rb +4 -2
- data/lib/expressir/model/statements/compound.rb +4 -2
- data/lib/expressir/model/statements/escape.rb +1 -1
- data/lib/expressir/model/statements/if.rb +5 -3
- data/lib/expressir/model/statements/null.rb +1 -1
- data/lib/expressir/model/statements/repeat.rb +6 -3
- data/lib/expressir/model/statements/return.rb +3 -1
- data/lib/expressir/model/statements/skip.rb +1 -1
- data/lib/expressir/model/subtype_constraint.rb +5 -2
- data/lib/expressir/model/type.rb +11 -4
- data/lib/expressir/model/types/aggregate.rb +5 -1
- data/lib/expressir/model/types/array.rb +3 -1
- data/lib/expressir/model/types/bag.rb +3 -1
- data/lib/expressir/model/types/binary.rb +3 -1
- data/lib/expressir/model/types/boolean.rb +1 -1
- data/lib/expressir/model/types/enumeration.rb +5 -3
- data/lib/expressir/model/types/generic.rb +5 -1
- data/lib/expressir/model/types/generic_entity.rb +5 -1
- data/lib/expressir/model/types/integer.rb +1 -1
- data/lib/expressir/model/types/list.rb +3 -1
- data/lib/expressir/model/types/logical.rb +1 -1
- data/lib/expressir/model/types/number.rb +1 -1
- data/lib/expressir/model/types/real.rb +3 -1
- data/lib/expressir/model/types/select.rb +5 -3
- data/lib/expressir/model/types/set.rb +3 -1
- data/lib/expressir/model/types/string.rb +3 -1
- data/lib/expressir/model/unique.rb +6 -2
- data/lib/expressir/model/variable.rb +5 -1
- data/lib/expressir/model/where.rb +5 -1
- data/lib/expressir/version.rb +1 -1
- data/original/examples/syntax/hyperlink.exp +8 -0
- data/original/examples/syntax/hyperlink_formatted.exp +19 -0
- data/original/examples/syntax/remark.exp +63 -20
- data/original/examples/syntax/remark_formatted.exp +62 -24
- data/original/examples/syntax/simple.exp +3 -0
- data/original/examples/syntax/source.exp +16 -0
- data/original/examples/syntax/syntax.exp +201 -190
- data/original/examples/syntax/syntax_formatted.exp +370 -799
- data/spec/expressir/express_exp/{format_remark_spec.rb → formatter/remark_spec.rb} +2 -2
- data/spec/expressir/express_exp/{format_syntax_spec.rb → formatter/syntax_spec.rb} +2 -2
- data/spec/expressir/express_exp/hyperlink_formatter_spec.rb +24 -0
- data/spec/expressir/express_exp/parser/head_source_spec.rb +38 -0
- data/spec/expressir/express_exp/parser/multiple_spec.rb +32 -0
- data/spec/expressir/express_exp/{parse_remark_spec.rb → parser/remark_spec.rb} +120 -55
- data/spec/expressir/express_exp/{source_spec.rb → parser/source_spec.rb} +3 -6
- data/spec/expressir/express_exp/parser/syntax_spec.rb +3080 -0
- data/spec/expressir/express_exp/schema_head_formatter_spec.rb +36 -0
- data/spec/expressir/model/{find_spec.rb → model_element/find_spec.rb} +26 -8
- data/spec/expressir/model/model_element/hash_spec.rb +66 -0
- metadata +38 -13
- data/lib/expressir/model/scope.rb +0 -32
- data/spec/expressir/express_exp/ap233_spec.rb +0 -22
- data/spec/expressir/express_exp/find_spec.rb +0 -28
- data/spec/expressir/express_exp/parse_syntax_spec.rb +0 -3003
@@ -4,8 +4,8 @@ require "expressir/express_exp/formatter"
|
|
4
4
|
|
5
5
|
RSpec.describe Expressir::ExpressExp::Formatter do
|
6
6
|
describe ".format" do
|
7
|
-
it "formats
|
8
|
-
repo = Expressir::ExpressExp::Parser.
|
7
|
+
it "formats remark" do
|
8
|
+
repo = Expressir::ExpressExp::Parser.from_file(input_file)
|
9
9
|
|
10
10
|
result = Expressir::ExpressExp::Formatter.format(repo)
|
11
11
|
expected_result = File.read(output_file)
|
@@ -4,8 +4,8 @@ require "expressir/express_exp/formatter"
|
|
4
4
|
|
5
5
|
RSpec.describe Expressir::ExpressExp::Formatter do
|
6
6
|
describe ".format" do
|
7
|
-
it "formats
|
8
|
-
repo = Expressir::ExpressExp::Parser.
|
7
|
+
it "formats syntax" do
|
8
|
+
repo = Expressir::ExpressExp::Parser.from_file(input_file)
|
9
9
|
|
10
10
|
result = Expressir::ExpressExp::Formatter.format(repo)
|
11
11
|
expected_result = File.read(output_file)
|
@@ -0,0 +1,24 @@
|
|
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
|
@@ -0,0 +1,38 @@
|
|
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
|
@@ -0,0 +1,32 @@
|
|
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].id).to eq("syntax_schema")
|
12
|
+
expect(schemas[1].id).to eq("remark_schema")
|
13
|
+
expect(schemas[2].id).to eq("entity_schema")
|
14
|
+
expect(schemas[3].id).to eq("version_entity_schema")
|
15
|
+
expect(schemas[4].id).to eq("version_interface_entity_schema")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def sample_files
|
20
|
+
@sample_files ||= [
|
21
|
+
Expressir.root_path.join(
|
22
|
+
"original", "examples", "syntax", "syntax.exp"
|
23
|
+
),
|
24
|
+
Expressir.root_path.join(
|
25
|
+
"original", "examples", "syntax", "remark.exp"
|
26
|
+
),
|
27
|
+
Expressir.root_path.join(
|
28
|
+
"original", "examples", "syntax", "source.exp"
|
29
|
+
)
|
30
|
+
]
|
31
|
+
end
|
32
|
+
end
|
@@ -3,8 +3,8 @@ require "expressir/express_exp/parser"
|
|
3
3
|
|
4
4
|
RSpec.describe Expressir::ExpressExp::Parser do
|
5
5
|
describe ".from_file" do
|
6
|
-
it "
|
7
|
-
repo = Expressir::ExpressExp::Parser.
|
6
|
+
it "parses remark" do
|
7
|
+
repo = Expressir::ExpressExp::Parser.from_file(sample_file)
|
8
8
|
|
9
9
|
schema = repo.schemas.first
|
10
10
|
|
@@ -18,7 +18,7 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
18
18
|
expect(x.remarks[3]).to eq("universal scope - schema before")
|
19
19
|
expect(x.remarks[4]).to eq("universal scope - schema")
|
20
20
|
end
|
21
|
-
|
21
|
+
|
22
22
|
schema.constants.first.tap do |x|
|
23
23
|
expect(x).to be_instance_of(Expressir::Model::Constant)
|
24
24
|
expect(x.remarks).to be_instance_of(Array)
|
@@ -26,7 +26,7 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
26
26
|
expect(x.remarks[0]).to eq("schema scope - constant")
|
27
27
|
expect(x.remarks[1]).to eq("universal scope - constant")
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
schema.types.first.tap do |x|
|
31
31
|
expect(x).to be_instance_of(Expressir::Model::Type)
|
32
32
|
expect(x.remarks).to be_instance_of(Array)
|
@@ -38,12 +38,38 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
38
38
|
x.type.items.first.tap do |x|
|
39
39
|
expect(x).to be_instance_of(Expressir::Model::EnumerationItem)
|
40
40
|
expect(x.remarks).to be_instance_of(Array)
|
41
|
-
expect(x.remarks.count).to eq(
|
41
|
+
expect(x.remarks.count).to eq(4)
|
42
42
|
expect(x.remarks[0]).to eq("schema scope - enumeration item")
|
43
|
-
expect(x.remarks[1]).to eq("
|
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")
|
44
46
|
end
|
45
47
|
end
|
46
|
-
|
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
|
+
|
47
73
|
schema.entities.first.tap do |x|
|
48
74
|
expect(x).to be_instance_of(Expressir::Model::Entity)
|
49
75
|
expect(x.remarks).to be_instance_of(Array)
|
@@ -51,8 +77,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
51
77
|
expect(x.remarks[0]).to eq("schema scope - entity")
|
52
78
|
expect(x.remarks[1]).to eq("universal scope - entity")
|
53
79
|
end
|
54
|
-
|
55
|
-
schema.entities.first.
|
80
|
+
|
81
|
+
schema.entities.first.attributes.find{|x| x.kind == Expressir::Model::Attribute::EXPLICIT}.tap do |x|
|
56
82
|
expect(x).to be_instance_of(Expressir::Model::Attribute)
|
57
83
|
expect(x.kind).to eq(Expressir::Model::Attribute::EXPLICIT)
|
58
84
|
expect(x.remarks).to be_instance_of(Array)
|
@@ -61,8 +87,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
61
87
|
expect(x.remarks[1]).to eq("schema scope - entity attribute")
|
62
88
|
expect(x.remarks[2]).to eq("universal scope - entity attribute")
|
63
89
|
end
|
64
|
-
|
65
|
-
schema.entities.first.
|
90
|
+
|
91
|
+
schema.entities.first.attributes.find{|x| x.kind == Expressir::Model::Attribute::DERIVED}.tap do |x|
|
66
92
|
expect(x).to be_instance_of(Expressir::Model::Attribute)
|
67
93
|
expect(x.kind).to eq(Expressir::Model::Attribute::DERIVED)
|
68
94
|
expect(x.remarks).to be_instance_of(Array)
|
@@ -71,8 +97,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
71
97
|
expect(x.remarks[1]).to eq("schema scope - entity derived attribute")
|
72
98
|
expect(x.remarks[2]).to eq("universal scope - entity derived attribute")
|
73
99
|
end
|
74
|
-
|
75
|
-
schema.entities.first.
|
100
|
+
|
101
|
+
schema.entities.first.attributes.find{|x| x.kind == Expressir::Model::Attribute::INVERSE}.tap do |x|
|
76
102
|
expect(x).to be_instance_of(Expressir::Model::Attribute)
|
77
103
|
expect(x.kind).to eq(Expressir::Model::Attribute::INVERSE)
|
78
104
|
expect(x.remarks).to be_instance_of(Array)
|
@@ -81,7 +107,7 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
81
107
|
expect(x.remarks[1]).to eq("schema scope - entity inverse attribute")
|
82
108
|
expect(x.remarks[2]).to eq("universal scope - entity inverse attribute")
|
83
109
|
end
|
84
|
-
|
110
|
+
|
85
111
|
schema.entities.first.unique.first.tap do |x|
|
86
112
|
expect(x).to be_instance_of(Expressir::Model::Unique)
|
87
113
|
expect(x.remarks).to be_instance_of(Array)
|
@@ -90,16 +116,31 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
90
116
|
expect(x.remarks[1]).to eq("schema scope - entity unique")
|
91
117
|
expect(x.remarks[2]).to eq("universal scope - entity unique")
|
92
118
|
end
|
93
|
-
|
119
|
+
|
94
120
|
schema.entities.first.where.first.tap do |x|
|
95
121
|
expect(x).to be_instance_of(Expressir::Model::Where)
|
96
122
|
expect(x.remarks).to be_instance_of(Array)
|
97
|
-
expect(x.remarks.count).to eq(
|
123
|
+
expect(x.remarks.count).to eq(6)
|
98
124
|
expect(x.remarks[0]).to eq("entity scope - entity where")
|
99
|
-
expect(x.remarks[1]).to eq("
|
100
|
-
expect(x.remarks[2]).to eq("
|
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")
|
101
142
|
end
|
102
|
-
|
143
|
+
|
103
144
|
schema.subtype_constraints.first.tap do |x|
|
104
145
|
expect(x).to be_instance_of(Expressir::Model::SubtypeConstraint)
|
105
146
|
expect(x.remarks).to be_instance_of(Array)
|
@@ -107,7 +148,7 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
107
148
|
expect(x.remarks[0]).to eq("schema scope - subtype constraint")
|
108
149
|
expect(x.remarks[1]).to eq("universal scope - subtype constraint")
|
109
150
|
end
|
110
|
-
|
151
|
+
|
111
152
|
schema.functions.first.tap do |x|
|
112
153
|
expect(x).to be_instance_of(Expressir::Model::Function)
|
113
154
|
expect(x.remarks).to be_instance_of(Array)
|
@@ -115,7 +156,7 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
115
156
|
expect(x.remarks[0]).to eq("schema scope - function")
|
116
157
|
expect(x.remarks[1]).to eq("universal scope - function")
|
117
158
|
end
|
118
|
-
|
159
|
+
|
119
160
|
schema.functions.first.parameters.first.tap do |x|
|
120
161
|
expect(x).to be_instance_of(Expressir::Model::Parameter)
|
121
162
|
expect(x.remarks).to be_instance_of(Array)
|
@@ -124,7 +165,7 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
124
165
|
expect(x.remarks[1]).to eq("schema scope - function parameter")
|
125
166
|
expect(x.remarks[2]).to eq("universal scope - function parameter")
|
126
167
|
end
|
127
|
-
|
168
|
+
|
128
169
|
schema.functions.first.types.first.tap do |x|
|
129
170
|
expect(x).to be_instance_of(Expressir::Model::Type)
|
130
171
|
expect(x.remarks).to be_instance_of(Array)
|
@@ -137,13 +178,16 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
137
178
|
x.type.items.first.tap do |x|
|
138
179
|
expect(x).to be_instance_of(Expressir::Model::EnumerationItem)
|
139
180
|
expect(x.remarks).to be_instance_of(Array)
|
140
|
-
expect(x.remarks.count).to eq(
|
181
|
+
expect(x.remarks.count).to eq(6)
|
141
182
|
expect(x.remarks[0]).to eq("function scope - function enumeration item")
|
142
|
-
expect(x.remarks[1]).to eq("
|
143
|
-
expect(x.remarks[2]).to eq("
|
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")
|
144
188
|
end
|
145
189
|
end
|
146
|
-
|
190
|
+
|
147
191
|
schema.functions.first.constants.first.tap do |x|
|
148
192
|
expect(x).to be_instance_of(Expressir::Model::Constant)
|
149
193
|
expect(x.remarks).to be_instance_of(Array)
|
@@ -152,7 +196,7 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
152
196
|
expect(x.remarks[1]).to eq("schema scope - function constant")
|
153
197
|
expect(x.remarks[2]).to eq("universal scope - function constant")
|
154
198
|
end
|
155
|
-
|
199
|
+
|
156
200
|
schema.functions.first.variables.first.tap do |x|
|
157
201
|
expect(x).to be_instance_of(Expressir::Model::Variable)
|
158
202
|
expect(x.remarks).to be_instance_of(Array)
|
@@ -161,21 +205,21 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
161
205
|
expect(x.remarks[1]).to eq("schema scope - function variable")
|
162
206
|
expect(x.remarks[2]).to eq("universal scope - function variable")
|
163
207
|
end
|
164
|
-
|
208
|
+
|
165
209
|
schema.functions.first.statements[0].tap do |x|
|
166
210
|
expect(x).to be_instance_of(Expressir::Model::Statements::Alias)
|
167
211
|
expect(x.remarks).to be_instance_of(Array)
|
168
212
|
expect(x.remarks.count).to eq(1)
|
169
213
|
expect(x.remarks[0]).to eq("function alias scope - function alias")
|
170
214
|
end
|
171
|
-
|
215
|
+
|
172
216
|
schema.functions.first.statements[1].tap do |x|
|
173
217
|
expect(x).to be_instance_of(Expressir::Model::Statements::Repeat)
|
174
218
|
expect(x.remarks).to be_instance_of(Array)
|
175
219
|
expect(x.remarks.count).to eq(1)
|
176
220
|
expect(x.remarks[0]).to eq("function repeat scope - function repeat")
|
177
221
|
end
|
178
|
-
|
222
|
+
|
179
223
|
schema.functions.first.statements[2].tap do |x|
|
180
224
|
expect(x).to be_instance_of(Expressir::Model::Statements::Assignment)
|
181
225
|
expect(x.expression).to be_instance_of(Expressir::Model::Expressions::QueryExpression)
|
@@ -183,7 +227,7 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
183
227
|
expect(x.expression.remarks.count).to eq(1)
|
184
228
|
expect(x.expression.remarks[0]).to eq("function query scope - function query")
|
185
229
|
end
|
186
|
-
|
230
|
+
|
187
231
|
schema.procedures.first.tap do |x|
|
188
232
|
expect(x).to be_instance_of(Expressir::Model::Procedure)
|
189
233
|
expect(x.remarks).to be_instance_of(Array)
|
@@ -191,7 +235,7 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
191
235
|
expect(x.remarks[0]).to eq("schema scope - procedure")
|
192
236
|
expect(x.remarks[1]).to eq("universal scope - procedure")
|
193
237
|
end
|
194
|
-
|
238
|
+
|
195
239
|
schema.procedures.first.parameters.first.tap do |x|
|
196
240
|
expect(x).to be_instance_of(Expressir::Model::Parameter)
|
197
241
|
expect(x.remarks).to be_instance_of(Array)
|
@@ -200,7 +244,7 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
200
244
|
expect(x.remarks[1]).to eq("schema scope - procedure parameter")
|
201
245
|
expect(x.remarks[2]).to eq("universal scope - procedure parameter")
|
202
246
|
end
|
203
|
-
|
247
|
+
|
204
248
|
schema.procedures.first.types.first.tap do |x|
|
205
249
|
expect(x).to be_instance_of(Expressir::Model::Type)
|
206
250
|
expect(x.remarks).to be_instance_of(Array)
|
@@ -213,13 +257,16 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
213
257
|
x.type.items.first.tap do |x|
|
214
258
|
expect(x).to be_instance_of(Expressir::Model::EnumerationItem)
|
215
259
|
expect(x.remarks).to be_instance_of(Array)
|
216
|
-
expect(x.remarks.count).to eq(
|
260
|
+
expect(x.remarks.count).to eq(6)
|
217
261
|
expect(x.remarks[0]).to eq("procedure scope - procedure enumeration item")
|
218
|
-
expect(x.remarks[1]).to eq("
|
219
|
-
expect(x.remarks[2]).to eq("
|
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")
|
220
267
|
end
|
221
268
|
end
|
222
|
-
|
269
|
+
|
223
270
|
schema.procedures.first.constants.first.tap do |x|
|
224
271
|
expect(x).to be_instance_of(Expressir::Model::Constant)
|
225
272
|
expect(x.remarks).to be_instance_of(Array)
|
@@ -228,7 +275,7 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
228
275
|
expect(x.remarks[1]).to eq("schema scope - procedure constant")
|
229
276
|
expect(x.remarks[2]).to eq("universal scope - procedure constant")
|
230
277
|
end
|
231
|
-
|
278
|
+
|
232
279
|
schema.procedures.first.variables.first.tap do |x|
|
233
280
|
expect(x).to be_instance_of(Expressir::Model::Variable)
|
234
281
|
expect(x.remarks).to be_instance_of(Array)
|
@@ -237,21 +284,21 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
237
284
|
expect(x.remarks[1]).to eq("schema scope - procedure variable")
|
238
285
|
expect(x.remarks[2]).to eq("universal scope - procedure variable")
|
239
286
|
end
|
240
|
-
|
287
|
+
|
241
288
|
schema.procedures.first.statements[0].tap do |x|
|
242
289
|
expect(x).to be_instance_of(Expressir::Model::Statements::Alias)
|
243
290
|
expect(x.remarks).to be_instance_of(Array)
|
244
291
|
expect(x.remarks.count).to eq(1)
|
245
292
|
expect(x.remarks[0]).to eq("procedure alias scope - procedure alias")
|
246
293
|
end
|
247
|
-
|
294
|
+
|
248
295
|
schema.procedures.first.statements[1].tap do |x|
|
249
296
|
expect(x).to be_instance_of(Expressir::Model::Statements::Repeat)
|
250
297
|
expect(x.remarks).to be_instance_of(Array)
|
251
298
|
expect(x.remarks.count).to eq(1)
|
252
299
|
expect(x.remarks[0]).to eq("procedure repeat scope - procedure repeat")
|
253
300
|
end
|
254
|
-
|
301
|
+
|
255
302
|
schema.procedures.first.statements[2].tap do |x|
|
256
303
|
expect(x).to be_instance_of(Expressir::Model::Statements::Assignment)
|
257
304
|
expect(x.expression).to be_instance_of(Expressir::Model::Expressions::QueryExpression)
|
@@ -259,7 +306,7 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
259
306
|
expect(x.expression.remarks.count).to eq(1)
|
260
307
|
expect(x.expression.remarks[0]).to eq("procedure query scope - procedure query")
|
261
308
|
end
|
262
|
-
|
309
|
+
|
263
310
|
schema.rules.first.tap do |x|
|
264
311
|
expect(x).to be_instance_of(Expressir::Model::Rule)
|
265
312
|
expect(x.remarks).to be_instance_of(Array)
|
@@ -267,7 +314,7 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
267
314
|
expect(x.remarks[0]).to eq("schema scope - rule")
|
268
315
|
expect(x.remarks[1]).to eq("universal scope - rule")
|
269
316
|
end
|
270
|
-
|
317
|
+
|
271
318
|
schema.rules.first.types.first.tap do |x|
|
272
319
|
expect(x).to be_instance_of(Expressir::Model::Type)
|
273
320
|
expect(x.remarks).to be_instance_of(Array)
|
@@ -280,13 +327,16 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
280
327
|
x.type.items.first.tap do |x|
|
281
328
|
expect(x).to be_instance_of(Expressir::Model::EnumerationItem)
|
282
329
|
expect(x.remarks).to be_instance_of(Array)
|
283
|
-
expect(x.remarks.count).to eq(
|
330
|
+
expect(x.remarks.count).to eq(6)
|
284
331
|
expect(x.remarks[0]).to eq("rule scope - rule enumeration item")
|
285
|
-
expect(x.remarks[1]).to eq("
|
286
|
-
expect(x.remarks[2]).to eq("
|
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")
|
287
337
|
end
|
288
338
|
end
|
289
|
-
|
339
|
+
|
290
340
|
schema.rules.first.constants.first.tap do |x|
|
291
341
|
expect(x).to be_instance_of(Expressir::Model::Constant)
|
292
342
|
expect(x.remarks).to be_instance_of(Array)
|
@@ -295,7 +345,7 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
295
345
|
expect(x.remarks[1]).to eq("schema scope - rule constant")
|
296
346
|
expect(x.remarks[2]).to eq("universal scope - rule constant")
|
297
347
|
end
|
298
|
-
|
348
|
+
|
299
349
|
schema.rules.first.variables.first.tap do |x|
|
300
350
|
expect(x).to be_instance_of(Expressir::Model::Variable)
|
301
351
|
expect(x.remarks).to be_instance_of(Array)
|
@@ -304,21 +354,21 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
304
354
|
expect(x.remarks[1]).to eq("schema scope - rule variable")
|
305
355
|
expect(x.remarks[2]).to eq("universal scope - rule variable")
|
306
356
|
end
|
307
|
-
|
357
|
+
|
308
358
|
schema.rules.first.statements[0].tap do |x|
|
309
359
|
expect(x).to be_instance_of(Expressir::Model::Statements::Alias)
|
310
360
|
expect(x.remarks).to be_instance_of(Array)
|
311
361
|
expect(x.remarks.count).to eq(1)
|
312
362
|
expect(x.remarks[0]).to eq("rule alias scope - rule alias")
|
313
363
|
end
|
314
|
-
|
364
|
+
|
315
365
|
schema.rules.first.statements[1].tap do |x|
|
316
366
|
expect(x).to be_instance_of(Expressir::Model::Statements::Repeat)
|
317
367
|
expect(x.remarks).to be_instance_of(Array)
|
318
368
|
expect(x.remarks.count).to eq(1)
|
319
369
|
expect(x.remarks[0]).to eq("rule repeat scope - rule repeat")
|
320
370
|
end
|
321
|
-
|
371
|
+
|
322
372
|
schema.rules.first.statements[2].tap do |x|
|
323
373
|
expect(x).to be_instance_of(Expressir::Model::Statements::Assignment)
|
324
374
|
expect(x.expression).to be_instance_of(Expressir::Model::Expressions::QueryExpression)
|
@@ -326,14 +376,29 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
326
376
|
expect(x.expression.remarks.count).to eq(1)
|
327
377
|
expect(x.expression.remarks[0]).to eq("rule query scope - rule query")
|
328
378
|
end
|
329
|
-
|
379
|
+
|
330
380
|
schema.rules.first.where.first.tap do |x|
|
331
381
|
expect(x).to be_instance_of(Expressir::Model::Where)
|
332
382
|
expect(x.remarks).to be_instance_of(Array)
|
333
|
-
expect(x.remarks.count).to eq(
|
383
|
+
expect(x.remarks.count).to eq(6)
|
334
384
|
expect(x.remarks[0]).to eq("rule scope - rule where")
|
335
|
-
expect(x.remarks[1]).to eq("
|
336
|
-
expect(x.remarks[2]).to eq("
|
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")
|
337
402
|
end
|
338
403
|
end
|
339
404
|
end
|