expressir 0.2.10-arm64-darwin → 0.2.15-arm64-darwin
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/exe/format +27 -0
- data/expressir.gemspec +1 -0
- data/lib/expressir/express_exp/2.4/express_parser.bundle +0 -0
- data/lib/expressir/express_exp/2.5/express_parser.bundle +0 -0
- data/lib/expressir/express_exp/2.6/express_parser.bundle +0 -0
- data/lib/expressir/express_exp/2.7/express_parser.bundle +0 -0
- data/lib/expressir/express_exp/3.0/express_parser.bundle +0 -0
- data/lib/expressir/express_exp/formatter.rb +90 -100
- data/lib/expressir/express_exp/hyperlink_formatter.rb +29 -0
- data/lib/expressir/express_exp/parser.rb +7 -1
- data/lib/expressir/express_exp/schema_head_formatter.rb +14 -0
- data/lib/expressir/express_exp/visitor.rb +68 -80
- data/lib/expressir/model.rb +2 -2
- data/lib/expressir/model/attribute.rb +2 -0
- data/lib/expressir/model/constant.rb +2 -0
- data/lib/expressir/model/entity.rb +3 -2
- data/lib/expressir/model/enumeration_item.rb +2 -0
- data/lib/expressir/model/expressions/aggregate_initializer.rb +2 -0
- data/lib/expressir/model/expressions/aggregate_item.rb +2 -0
- data/lib/expressir/model/expressions/attribute_reference.rb +2 -0
- data/lib/expressir/model/expressions/binary_expression.rb +2 -0
- data/lib/expressir/model/expressions/call.rb +2 -0
- data/lib/expressir/model/expressions/entity_constructor.rb +2 -0
- data/lib/expressir/model/expressions/group_reference.rb +2 -0
- data/lib/expressir/model/expressions/index_reference.rb +2 -0
- data/lib/expressir/model/expressions/interval.rb +2 -0
- data/lib/expressir/model/expressions/query_expression.rb +2 -1
- data/lib/expressir/model/expressions/simple_reference.rb +2 -0
- data/lib/expressir/model/expressions/unary_expression.rb +2 -0
- data/lib/expressir/model/function.rb +3 -8
- data/lib/expressir/model/identifier.rb +0 -1
- data/lib/expressir/model/informal_proposition.rb +2 -0
- data/lib/expressir/model/interface.rb +2 -0
- data/lib/expressir/model/{renamed_ref.rb → interface_item.rb} +4 -2
- data/lib/expressir/model/interfaced_item.rb +23 -0
- data/lib/expressir/model/literals/binary.rb +2 -0
- data/lib/expressir/model/literals/integer.rb +2 -0
- data/lib/expressir/model/literals/logical.rb +2 -0
- data/lib/expressir/model/literals/real.rb +2 -0
- data/lib/expressir/model/literals/string.rb +2 -0
- data/lib/expressir/model/model_element.rb +85 -12
- data/lib/expressir/model/parameter.rb +2 -0
- data/lib/expressir/model/procedure.rb +3 -8
- data/lib/expressir/model/repository.rb +2 -2
- data/lib/expressir/model/rule.rb +4 -9
- data/lib/expressir/model/schema.rb +45 -9
- data/lib/expressir/model/statements/alias.rb +2 -1
- data/lib/expressir/model/statements/assignment.rb +2 -0
- data/lib/expressir/model/statements/call.rb +2 -0
- data/lib/expressir/model/statements/case.rb +2 -0
- data/lib/expressir/model/statements/case_action.rb +2 -0
- data/lib/expressir/model/statements/compound.rb +2 -0
- data/lib/expressir/model/statements/if.rb +2 -0
- data/lib/expressir/model/statements/repeat.rb +2 -1
- data/lib/expressir/model/statements/return.rb +2 -0
- data/lib/expressir/model/subtype_constraint.rb +2 -1
- data/lib/expressir/model/type.rb +3 -6
- data/lib/expressir/model/types/aggregate.rb +2 -0
- data/lib/expressir/model/types/array.rb +2 -0
- data/lib/expressir/model/types/bag.rb +2 -0
- data/lib/expressir/model/types/binary.rb +2 -0
- data/lib/expressir/model/types/enumeration.rb +2 -0
- data/lib/expressir/model/types/generic.rb +2 -0
- data/lib/expressir/model/types/generic_entity.rb +2 -0
- data/lib/expressir/model/types/list.rb +2 -0
- data/lib/expressir/model/types/real.rb +2 -0
- data/lib/expressir/model/types/select.rb +2 -0
- data/lib/expressir/model/types/set.rb +2 -0
- data/lib/expressir/model/types/string.rb +2 -0
- data/lib/expressir/model/unique.rb +2 -0
- data/lib/expressir/model/variable.rb +2 -0
- data/lib/expressir/model/where.rb +2 -0
- data/lib/expressir/version.rb +1 -1
- data/original/examples/syntax/hyperlink.exp +23 -0
- data/original/examples/syntax/hyperlink_formatted.exp +51 -0
- data/original/examples/syntax/syntax.exp +18 -18
- data/original/examples/syntax/syntax_formatted.exp +32 -24
- 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/{head_source_spec.rb → parser/head_source_spec.rb} +1 -1
- data/spec/expressir/express_exp/{parse_multiple_spec.rb → parser/multiple_spec.rb} +6 -1
- data/spec/expressir/express_exp/{parse_remark_spec.rb → parser/remark_spec.rb} +2 -2
- data/spec/expressir/express_exp/{source_spec.rb → parser/source_spec.rb} +1 -1
- data/spec/expressir/express_exp/{parse_syntax_spec.rb → parser/syntax_spec.rb} +98 -60
- data/spec/expressir/express_exp/schema_head_formatter_spec.rb +36 -0
- data/spec/expressir/model/{scope_spec.rb → model_element/find_spec.rb} +7 -2
- data/spec/expressir/model/model_element/hash_spec.rb +66 -0
- metadata +34 -14
- data/lib/expressir/model/scope.rb +0 -63
- data/spec/expressir/express_exp/ap233_spec.rb +0 -22
- data/spec/expressir/model/model_element_spec.rb +0 -59
@@ -2,7 +2,6 @@ module Expressir
|
|
2
2
|
module Model
|
3
3
|
module Statements
|
4
4
|
class Alias < ModelElement
|
5
|
-
include Scope
|
6
5
|
include Identifier
|
7
6
|
|
8
7
|
attr_accessor :expression
|
@@ -15,6 +14,8 @@ module Expressir
|
|
15
14
|
|
16
15
|
@expression = options[:expression]
|
17
16
|
@statements = options.fetch(:statements, [])
|
17
|
+
|
18
|
+
super
|
18
19
|
end
|
19
20
|
|
20
21
|
def children
|
@@ -2,7 +2,6 @@ module Expressir
|
|
2
2
|
module Model
|
3
3
|
module Statements
|
4
4
|
class Repeat < ModelElement
|
5
|
-
include Scope
|
6
5
|
include Identifier
|
7
6
|
|
8
7
|
attr_accessor :bound1
|
@@ -23,6 +22,8 @@ module Expressir
|
|
23
22
|
@while_expression = options[:while_expression]
|
24
23
|
@until_expression = options[:until_expression]
|
25
24
|
@statements = options.fetch(:statements, [])
|
25
|
+
|
26
|
+
super
|
26
27
|
end
|
27
28
|
|
28
29
|
def children
|
@@ -1,7 +1,6 @@
|
|
1
1
|
module Expressir
|
2
2
|
module Model
|
3
3
|
class SubtypeConstraint < ModelElement
|
4
|
-
include Scope
|
5
4
|
include Identifier
|
6
5
|
|
7
6
|
attr_accessor :applies_to
|
@@ -18,6 +17,8 @@ module Expressir
|
|
18
17
|
@abstract = options[:abstract]
|
19
18
|
@total_over = options[:total_over]
|
20
19
|
@supertype_expression = options[:supertype_expression]
|
20
|
+
|
21
|
+
super
|
21
22
|
end
|
22
23
|
|
23
24
|
def children
|
data/lib/expressir/model/type.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
module Expressir
|
2
2
|
module Model
|
3
3
|
class Type < ModelElement
|
4
|
-
include Scope
|
5
4
|
include Identifier
|
6
5
|
|
7
6
|
attr_accessor :type
|
@@ -16,15 +15,13 @@ module Expressir
|
|
16
15
|
@type = options[:type]
|
17
16
|
@where = options.fetch(:where, [])
|
18
17
|
@informal_propositions = options.fetch(:informal_propositions, [])
|
18
|
+
|
19
|
+
super
|
19
20
|
end
|
20
21
|
|
21
22
|
def children
|
22
23
|
items = []
|
23
|
-
items.push(
|
24
|
-
*if @type.instance_of? Expressir::Model::Types::Enumeration
|
25
|
-
@type.items
|
26
|
-
end
|
27
|
-
])
|
24
|
+
items.push(*@type.is_a?(Types::Enumeration) ? @type.items : [])
|
28
25
|
items.push(*@where)
|
29
26
|
items.push(*@informal_propositions)
|
30
27
|
items
|
data/lib/expressir/version.rb
CHANGED
@@ -0,0 +1,23 @@
|
|
1
|
+
SCHEMA hyperlink_schema;
|
2
|
+
REFERENCE FROM hyperlink_schema2;
|
3
|
+
REFERENCE FROM hyperlink_schema3 (attribute_entity3);
|
4
|
+
REFERENCE FROM hyperlink_schema4 (attribute_entity AS attribute_entity4);
|
5
|
+
ENTITY test; END_ENTITY;
|
6
|
+
ENTITY empty_entity; END_ENTITY;
|
7
|
+
ENTITY attribute_entity; test : BOOLEAN; END_ENTITY;
|
8
|
+
ENTITY subtype_empty_entity SUBTYPE OF (empty_entity); END_ENTITY;
|
9
|
+
ENTITY subtype_attribute_entity SUBTYPE OF (attribute_entity); SELF\attribute_entity.test : BOOLEAN; END_ENTITY;
|
10
|
+
ENTITY subtype_attribute_entity2 SUBTYPE OF (attribute_entity2); SELF\attribute_entity2.test : BOOLEAN; END_ENTITY;
|
11
|
+
ENTITY subtype_attribute_entity3 SUBTYPE OF (attribute_entity3); SELF\attribute_entity3.test : BOOLEAN; END_ENTITY;
|
12
|
+
ENTITY subtype_attribute_entity4 SUBTYPE OF (attribute_entity4); SELF\attribute_entity4.test : BOOLEAN; END_ENTITY;
|
13
|
+
ENTITY subtype_missing_entity SUBTYPE OF (missing_entity); END_ENTITY;
|
14
|
+
END_SCHEMA;
|
15
|
+
SCHEMA hyperlink_schema2;
|
16
|
+
ENTITY attribute_entity2; test : BOOLEAN; END_ENTITY;
|
17
|
+
END_SCHEMA;
|
18
|
+
SCHEMA hyperlink_schema3;
|
19
|
+
ENTITY attribute_entity3; test : BOOLEAN; END_ENTITY;
|
20
|
+
END_SCHEMA;
|
21
|
+
SCHEMA hyperlink_schema4;
|
22
|
+
ENTITY attribute_entity; test : BOOLEAN; END_ENTITY;
|
23
|
+
END_SCHEMA;
|
@@ -0,0 +1,51 @@
|
|
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;
|
@@ -31,23 +31,23 @@ ENTITY attribute_entity; test : BOOLEAN; END_ENTITY;
|
|
31
31
|
ENTITY attribute_optional_entity; test : OPTIONAL BOOLEAN; END_ENTITY;
|
32
32
|
ENTITY attribute_multiple_entity; test : BOOLEAN; test2 : BOOLEAN; END_ENTITY;
|
33
33
|
ENTITY attribute_multiple_shorthand_entity; test, test2 : BOOLEAN; END_ENTITY;
|
34
|
-
ENTITY attribute_redeclared_entity; SELF\attribute_entity.test : BOOLEAN; END_ENTITY;
|
35
|
-
ENTITY attribute_redeclared_renamed_entity; SELF\attribute_entity.test RENAMED test2 : BOOLEAN; END_ENTITY;
|
34
|
+
ENTITY attribute_redeclared_entity SUBTYPE OF (attribute_entity); SELF\attribute_entity.test : BOOLEAN; END_ENTITY;
|
35
|
+
ENTITY attribute_redeclared_renamed_entity SUBTYPE OF (attribute_entity); SELF\attribute_entity.test RENAMED test2 : BOOLEAN; END_ENTITY;
|
36
36
|
ENTITY derived_attribute_entity; DERIVE test : BOOLEAN := TRUE; END_ENTITY;
|
37
|
-
ENTITY derived_attribute_redeclared_entity; DERIVE SELF\attribute_entity.test : BOOLEAN := TRUE; END_ENTITY;
|
38
|
-
ENTITY derived_attribute_redeclared_renamed_entity; DERIVE SELF\attribute_entity.test RENAMED test2 : BOOLEAN := TRUE; END_ENTITY;
|
37
|
+
ENTITY derived_attribute_redeclared_entity SUBTYPE OF (attribute_entity); DERIVE SELF\attribute_entity.test : BOOLEAN := TRUE; END_ENTITY;
|
38
|
+
ENTITY derived_attribute_redeclared_renamed_entity SUBTYPE OF (attribute_entity); DERIVE SELF\attribute_entity.test RENAMED test2 : BOOLEAN := TRUE; END_ENTITY;
|
39
39
|
ENTITY inverse_attribute_entity; INVERSE test : attribute_entity FOR test; END_ENTITY;
|
40
40
|
ENTITY inverse_attribute_entity_entity; INVERSE test : attribute_entity FOR attribute_entity.test; END_ENTITY;
|
41
41
|
ENTITY inverse_attribute_set_entity; INVERSE test : SET OF attribute_entity FOR test; END_ENTITY;
|
42
42
|
ENTITY inverse_attribute_set_bound_entity; INVERSE test : SET [1:9] OF attribute_entity FOR test; END_ENTITY;
|
43
43
|
ENTITY inverse_attribute_bag_entity; INVERSE test : BAG OF attribute_entity FOR test; END_ENTITY;
|
44
44
|
ENTITY inverse_attribute_bag_bound_entity; INVERSE test : BAG [1:9] OF attribute_entity FOR test; END_ENTITY;
|
45
|
-
ENTITY inverse_attribute_redeclared_entity; INVERSE SELF\attribute_entity.test : attribute_entity FOR test; END_ENTITY;
|
46
|
-
ENTITY inverse_attribute_redeclared_renamed_entity; INVERSE SELF\attribute_entity.test RENAMED test2 : attribute_entity FOR test; END_ENTITY;
|
45
|
+
ENTITY inverse_attribute_redeclared_entity SUBTYPE OF (attribute_entity); INVERSE SELF\attribute_entity.test : attribute_entity FOR test; END_ENTITY;
|
46
|
+
ENTITY inverse_attribute_redeclared_renamed_entity SUBTYPE OF (attribute_entity); INVERSE SELF\attribute_entity.test RENAMED test2 : attribute_entity FOR test; END_ENTITY;
|
47
47
|
ENTITY unique_entity; test : BOOLEAN; UNIQUE test; END_ENTITY;
|
48
48
|
ENTITY unique_label_entity; test : BOOLEAN; UNIQUE UR1 : test; END_ENTITY;
|
49
|
-
ENTITY
|
50
|
-
ENTITY
|
49
|
+
ENTITY unique_redeclared_entity SUBTYPE OF (attribute_entity); UNIQUE SELF\attribute_entity.test; END_ENTITY;
|
50
|
+
ENTITY unique_label_redeclared_entity SUBTYPE OF (attribute_entity); UNIQUE UR1 : SELF\attribute_entity.test; END_ENTITY;
|
51
51
|
ENTITY where_entity; WHERE TRUE; END_ENTITY;
|
52
52
|
ENTITY where_label_entity; WHERE WR1 : TRUE; END_ENTITY;
|
53
53
|
|
@@ -122,15 +122,15 @@ RULE where_label_rule FOR (empty_entity); WHERE WR1 : TRUE; END_RULE;
|
|
122
122
|
PROCEDURE statements;
|
123
123
|
-- statements
|
124
124
|
PROCEDURE alias_simple_reference_statement; ALIAS test FOR test; ; END_ALIAS; END_PROCEDURE;
|
125
|
-
PROCEDURE
|
126
|
-
PROCEDURE alias_group_reference_statement; ALIAS test FOR test\test; ; END_ALIAS; END_PROCEDURE;
|
125
|
+
PROCEDURE alias_group_reference_statement; ALIAS test FOR test\test2; ; END_ALIAS; END_PROCEDURE;
|
127
126
|
PROCEDURE alias_index_reference_statement; ALIAS test FOR test[1]; ; END_ALIAS; END_PROCEDURE;
|
128
127
|
PROCEDURE alias_index2_reference_statement; ALIAS test FOR test[1:9]; ; END_ALIAS; END_PROCEDURE;
|
128
|
+
PROCEDURE alias_attribute_reference_statement; ALIAS test FOR test.test2; ; END_ALIAS; END_PROCEDURE;
|
129
129
|
PROCEDURE assignment_simple_reference_statement; test := TRUE; END_PROCEDURE;
|
130
|
-
PROCEDURE
|
131
|
-
PROCEDURE assignment_group_reference_statement; test\test := TRUE; END_PROCEDURE;
|
130
|
+
PROCEDURE assignment_group_reference_statement; test\test2 := TRUE; END_PROCEDURE;
|
132
131
|
PROCEDURE assignment_index_reference_statement; test[1] := TRUE; END_PROCEDURE;
|
133
132
|
PROCEDURE assignment_index2_reference_statement; test[1:9] := TRUE; END_PROCEDURE;
|
133
|
+
PROCEDURE assignment_attribute_reference_statement; test.test2 := TRUE; END_PROCEDURE;
|
134
134
|
PROCEDURE case_statement; CASE test OF TRUE : ; END_CASE; END_PROCEDURE;
|
135
135
|
PROCEDURE case_multiple_statement; CASE test OF TRUE : ; TRUE : ; END_CASE; END_PROCEDURE;
|
136
136
|
PROCEDURE case_multiple_shorthand_statement; CASE test OF TRUE, TRUE : ; END_CASE; END_PROCEDURE;
|
@@ -290,7 +290,7 @@ PROCEDURE expressions;
|
|
290
290
|
and_or_expression : BOOLEAN := TRUE AND FALSE OR TRUE;
|
291
291
|
parenthesis_or_and_expression : BOOLEAN := (TRUE OR FALSE) AND TRUE;
|
292
292
|
and_parenthesis_or_expression : BOOLEAN := TRUE AND (FALSE OR TRUE);
|
293
|
-
combine_expression : BOOLEAN := test ||
|
293
|
+
combine_expression : BOOLEAN := test || test2;
|
294
294
|
in_expression : BOOLEAN := TRUE IN [TRUE];
|
295
295
|
like_expression : BOOLEAN := 'xxx' LIKE 'xxx';
|
296
296
|
|
@@ -304,11 +304,11 @@ PROCEDURE expressions;
|
|
304
304
|
call_expression : BOOLEAN := parameter_function(TRUE);
|
305
305
|
|
306
306
|
-- reference expressions
|
307
|
-
simple_reference_expression : BOOLEAN :=
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
307
|
+
simple_reference_expression : BOOLEAN := test;
|
308
|
+
group_reference_expression : BOOLEAN := test\test2;
|
309
|
+
index_reference_expression : BOOLEAN := test[1];
|
310
|
+
index2_reference_expression : BOOLEAN := test[1:9];
|
311
|
+
attribute_reference_expression : BOOLEAN := test.test2;
|
312
312
|
|
313
313
|
-- interval expressions
|
314
314
|
lt_lt_interval_expression : BOOLEAN := {1 < 5 < 9};
|