expressir 2.1.0 → 2.1.1
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/.rubocop.yml +8 -13
- data/.rubocop_todo.yml +69 -6
- data/Gemfile +1 -1
- data/README.adoc +46 -0
- data/exe/expressir-format-test +2 -1
- data/expressir.gemspec +2 -3
- data/lib/expressir/express/cache.rb +6 -6
- data/lib/expressir/express/formatter.rb +754 -741
- data/lib/expressir/express/hyperlink_formatter.rb +2 -2
- data/lib/expressir/express/model_visitor.rb +1 -1
- data/lib/expressir/express/parser.rb +224 -100
- data/lib/expressir/express/resolve_references_model_visitor.rb +6 -6
- data/lib/expressir/express/schema_head_formatter.rb +3 -3
- data/lib/expressir/express/visitor.rb +353 -344
- data/lib/expressir/model/cache.rb +3 -3
- data/lib/expressir/model/data_type.rb +1 -1
- data/lib/expressir/model/data_types/aggregate.rb +3 -3
- data/lib/expressir/model/data_types/array.rb +6 -6
- data/lib/expressir/model/data_types/bag.rb +4 -4
- data/lib/expressir/model/data_types/binary.rb +3 -3
- data/lib/expressir/model/data_types/boolean.rb +1 -1
- data/lib/expressir/model/data_types/enumeration.rb +4 -4
- data/lib/expressir/model/data_types/enumeration_item.rb +2 -2
- data/lib/expressir/model/data_types/generic.rb +2 -2
- data/lib/expressir/model/data_types/generic_entity.rb +2 -2
- data/lib/expressir/model/data_types/integer.rb +1 -1
- data/lib/expressir/model/data_types/list.rb +5 -5
- data/lib/expressir/model/data_types/logical.rb +1 -1
- data/lib/expressir/model/data_types/number.rb +1 -1
- data/lib/expressir/model/data_types/real.rb +2 -2
- data/lib/expressir/model/data_types/select.rb +5 -5
- data/lib/expressir/model/data_types/set.rb +4 -4
- data/lib/expressir/model/data_types/string.rb +3 -3
- data/lib/expressir/model/declaration.rb +1 -1
- data/lib/expressir/model/declarations/attribute.rb +7 -7
- data/lib/expressir/model/declarations/constant.rb +4 -4
- data/lib/expressir/model/declarations/entity.rb +9 -9
- data/lib/expressir/model/declarations/function.rb +13 -13
- data/lib/expressir/model/declarations/interface.rb +4 -4
- data/lib/expressir/model/declarations/interface_item.rb +3 -3
- data/lib/expressir/model/declarations/interfaced_item.rb +6 -6
- data/lib/expressir/model/declarations/parameter.rb +4 -4
- data/lib/expressir/model/declarations/procedure.rb +12 -12
- data/lib/expressir/model/declarations/remark_item.rb +3 -3
- data/lib/expressir/model/declarations/rule.rb +14 -14
- data/lib/expressir/model/declarations/schema.rb +18 -18
- data/lib/expressir/model/declarations/schema_version.rb +3 -3
- data/lib/expressir/model/declarations/schema_version_item.rb +3 -3
- data/lib/expressir/model/declarations/subtype_constraint.rb +6 -6
- data/lib/expressir/model/declarations/type.rb +5 -5
- data/lib/expressir/model/declarations/unique_rule.rb +3 -3
- data/lib/expressir/model/declarations/variable.rb +4 -4
- data/lib/expressir/model/declarations/where_rule.rb +3 -3
- data/lib/expressir/model/expression.rb +1 -1
- data/lib/expressir/model/expressions/aggregate_initializer.rb +2 -2
- data/lib/expressir/model/expressions/aggregate_initializer_item.rb +3 -3
- data/lib/expressir/model/expressions/binary_expression.rb +12 -5
- data/lib/expressir/model/expressions/entity_constructor.rb +3 -3
- data/lib/expressir/model/expressions/function_call.rb +3 -3
- data/lib/expressir/model/expressions/interval.rb +6 -6
- data/lib/expressir/model/expressions/query_expression.rb +4 -4
- data/lib/expressir/model/expressions/unary_expression.rb +3 -3
- data/lib/expressir/model/identifier.rb +5 -5
- data/lib/expressir/model/literal.rb +1 -1
- data/lib/expressir/model/literals/binary.rb +2 -2
- data/lib/expressir/model/literals/integer.rb +2 -2
- data/lib/expressir/model/literals/logical.rb +2 -2
- data/lib/expressir/model/literals/real.rb +2 -2
- data/lib/expressir/model/literals/string.rb +3 -3
- data/lib/expressir/model/model_element.rb +35 -41
- data/lib/expressir/model/reference.rb +1 -1
- data/lib/expressir/model/references/attribute_reference.rb +3 -3
- data/lib/expressir/model/references/group_reference.rb +3 -3
- data/lib/expressir/model/references/index_reference.rb +4 -4
- data/lib/expressir/model/references/simple_reference.rb +3 -3
- data/lib/expressir/model/repository.rb +3 -4
- data/lib/expressir/model/statement.rb +1 -1
- data/lib/expressir/model/statements/alias.rb +4 -4
- data/lib/expressir/model/statements/assignment.rb +3 -3
- data/lib/expressir/model/statements/case.rb +4 -4
- data/lib/expressir/model/statements/case_action.rb +3 -3
- data/lib/expressir/model/statements/compound.rb +2 -2
- data/lib/expressir/model/statements/escape.rb +1 -1
- data/lib/expressir/model/statements/if.rb +4 -4
- data/lib/expressir/model/statements/null.rb +1 -1
- data/lib/expressir/model/statements/procedure_call.rb +3 -3
- data/lib/expressir/model/statements/repeat.rb +8 -8
- data/lib/expressir/model/statements/return.rb +2 -2
- data/lib/expressir/model/statements/skip.rb +1 -1
- data/lib/expressir/model/supertype_expression.rb +1 -1
- data/lib/expressir/model/supertype_expressions/binary_supertype_expression.rb +4 -4
- data/lib/expressir/model/supertype_expressions/oneof_supertype_expression.rb +2 -2
- data/lib/expressir/version.rb +1 -1
- metadata +12 -12
@@ -2,8 +2,8 @@ module Expressir
|
|
2
2
|
module Model
|
3
3
|
# Cache content object with Expressir version
|
4
4
|
class Cache < ModelElement
|
5
|
-
model_attr_accessor :version,
|
6
|
-
model_attr_accessor :content,
|
5
|
+
model_attr_accessor :version, "String"
|
6
|
+
model_attr_accessor :content, "ModelElement"
|
7
7
|
|
8
8
|
# @param [Hash] options
|
9
9
|
# @option options [String] :version
|
@@ -14,4 +14,4 @@ module Expressir
|
|
14
14
|
end
|
15
15
|
end
|
16
16
|
end
|
17
|
-
end
|
17
|
+
end
|
@@ -6,7 +6,7 @@ module Expressir
|
|
6
6
|
class Aggregate < DataType
|
7
7
|
include Identifier
|
8
8
|
|
9
|
-
model_attr_accessor :base_type,
|
9
|
+
model_attr_accessor :base_type, "Type"
|
10
10
|
|
11
11
|
# @param [Hash] options
|
12
12
|
# @option (see Identifier#initialize_identifier)
|
@@ -22,10 +22,10 @@ module Expressir
|
|
22
22
|
# @return [Array<Declaration>]
|
23
23
|
def children
|
24
24
|
[
|
25
|
-
*remark_items
|
25
|
+
*remark_items,
|
26
26
|
]
|
27
27
|
end
|
28
28
|
end
|
29
29
|
end
|
30
30
|
end
|
31
|
-
end
|
31
|
+
end
|
@@ -4,11 +4,11 @@ module Expressir
|
|
4
4
|
# Specified in ISO 10303-11:2004
|
5
5
|
# - section 8.2.1 Array data type
|
6
6
|
class Array < DataType
|
7
|
-
model_attr_accessor :bound1,
|
8
|
-
model_attr_accessor :bound2,
|
9
|
-
model_attr_accessor :optional,
|
10
|
-
model_attr_accessor :unique,
|
11
|
-
model_attr_accessor :base_type,
|
7
|
+
model_attr_accessor :bound1, "Expression"
|
8
|
+
model_attr_accessor :bound2, "Expression"
|
9
|
+
model_attr_accessor :optional, "::Boolean"
|
10
|
+
model_attr_accessor :unique, "::Boolean"
|
11
|
+
model_attr_accessor :base_type, "DataType"
|
12
12
|
|
13
13
|
# @param [Hash] options
|
14
14
|
# @option options [Expression] :bound1
|
@@ -28,4 +28,4 @@ module Expressir
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
end
|
31
|
-
end
|
31
|
+
end
|
@@ -4,9 +4,9 @@ module Expressir
|
|
4
4
|
# Specified in ISO 10303-11:2004
|
5
5
|
# - section 8.2.3 Bag data type
|
6
6
|
class Bag < DataType
|
7
|
-
model_attr_accessor :bound1,
|
8
|
-
model_attr_accessor :bound2,
|
9
|
-
model_attr_accessor :base_type,
|
7
|
+
model_attr_accessor :bound1, "Expression"
|
8
|
+
model_attr_accessor :bound2, "Expression"
|
9
|
+
model_attr_accessor :base_type, "DataType"
|
10
10
|
|
11
11
|
# @param [Hash] options
|
12
12
|
# @option options [Expression] :bound1
|
@@ -22,4 +22,4 @@ module Expressir
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
25
|
-
end
|
25
|
+
end
|
@@ -4,8 +4,8 @@ module Expressir
|
|
4
4
|
# Specified in ISO 10303-11:2004
|
5
5
|
# - section 8.1.7 Binary data type
|
6
6
|
class Binary < DataType
|
7
|
-
model_attr_accessor :width,
|
8
|
-
model_attr_accessor :fixed,
|
7
|
+
model_attr_accessor :width, "Expression"
|
8
|
+
model_attr_accessor :fixed, "::Boolean"
|
9
9
|
|
10
10
|
# @param [Hash] options
|
11
11
|
# @option options [Expression] :width
|
@@ -19,4 +19,4 @@ module Expressir
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
22
|
-
end
|
22
|
+
end
|
@@ -4,9 +4,9 @@ module Expressir
|
|
4
4
|
# Specified in ISO 10303-11:2004
|
5
5
|
# - section 8.4.1 Enumeration data type
|
6
6
|
class Enumeration < DataType
|
7
|
-
model_attr_accessor :extensible,
|
8
|
-
model_attr_accessor :based_on,
|
9
|
-
model_attr_accessor :items,
|
7
|
+
model_attr_accessor :extensible, "::Boolean"
|
8
|
+
model_attr_accessor :based_on, "Reference"
|
9
|
+
model_attr_accessor :items, "::Array<EnumerationItem>"
|
10
10
|
|
11
11
|
# @param [Hash] options
|
12
12
|
# @option options [::Boolean] :extensible
|
@@ -22,4 +22,4 @@ module Expressir
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
25
|
-
end
|
25
|
+
end
|
@@ -4,10 +4,10 @@ module Expressir
|
|
4
4
|
# Specified in ISO 10303-11:2004
|
5
5
|
# - section 8.2.2 List data type
|
6
6
|
class List < DataType
|
7
|
-
model_attr_accessor :bound1,
|
8
|
-
model_attr_accessor :bound2,
|
9
|
-
model_attr_accessor :unique,
|
10
|
-
model_attr_accessor :base_type,
|
7
|
+
model_attr_accessor :bound1, "Expression"
|
8
|
+
model_attr_accessor :bound2, "Expression"
|
9
|
+
model_attr_accessor :unique, "::Boolean"
|
10
|
+
model_attr_accessor :base_type, "DataType"
|
11
11
|
|
12
12
|
# @param [Hash] options
|
13
13
|
# @option options [Expression] :bound1
|
@@ -25,4 +25,4 @@ module Expressir
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
28
|
-
end
|
28
|
+
end
|
@@ -4,7 +4,7 @@ module Expressir
|
|
4
4
|
# Specified in ISO 10303-11:2004
|
5
5
|
# - section 8.1.2 Real data type
|
6
6
|
class Real < DataType
|
7
|
-
model_attr_accessor :precision,
|
7
|
+
model_attr_accessor :precision, "Expression"
|
8
8
|
|
9
9
|
# @param [Hash] options
|
10
10
|
# @option options [Expression] :precision
|
@@ -16,4 +16,4 @@ module Expressir
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
19
|
-
end
|
19
|
+
end
|
@@ -4,10 +4,10 @@ module Expressir
|
|
4
4
|
# Specified in ISO 10303-11:2004
|
5
5
|
# - section 8.4.2 Select data type
|
6
6
|
class Select < DataType
|
7
|
-
model_attr_accessor :extensible,
|
8
|
-
model_attr_accessor :generic_entity,
|
9
|
-
model_attr_accessor :based_on,
|
10
|
-
model_attr_accessor :items,
|
7
|
+
model_attr_accessor :extensible, "::Boolean"
|
8
|
+
model_attr_accessor :generic_entity, "::Boolean"
|
9
|
+
model_attr_accessor :based_on, "Reference"
|
10
|
+
model_attr_accessor :items, "::Array<Reference>"
|
11
11
|
|
12
12
|
# @param [Hash] options
|
13
13
|
# @option options [::Boolean] :extensible
|
@@ -25,4 +25,4 @@ module Expressir
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
28
|
-
end
|
28
|
+
end
|
@@ -4,9 +4,9 @@ module Expressir
|
|
4
4
|
# Specified in ISO 10303-11:2004
|
5
5
|
# - section 8.2.4 Set data type
|
6
6
|
class Set < DataType
|
7
|
-
model_attr_accessor :bound1,
|
8
|
-
model_attr_accessor :bound2,
|
9
|
-
model_attr_accessor :base_type,
|
7
|
+
model_attr_accessor :bound1, "Expression"
|
8
|
+
model_attr_accessor :bound2, "Expression"
|
9
|
+
model_attr_accessor :base_type, "DataType"
|
10
10
|
|
11
11
|
# @param [Hash] options
|
12
12
|
# @option options [Expression] :bound1
|
@@ -22,4 +22,4 @@ module Expressir
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
25
|
-
end
|
25
|
+
end
|
@@ -4,8 +4,8 @@ module Expressir
|
|
4
4
|
# Specified in ISO 10303-11:2004
|
5
5
|
# - section 8.1.6 String data type
|
6
6
|
class String < DataType
|
7
|
-
model_attr_accessor :width,
|
8
|
-
model_attr_accessor :fixed,
|
7
|
+
model_attr_accessor :width, "Expression"
|
8
|
+
model_attr_accessor :fixed, "::Boolean"
|
9
9
|
|
10
10
|
# @param [Hash] options
|
11
11
|
# @option options [Expression] :width
|
@@ -19,4 +19,4 @@ module Expressir
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
22
|
-
end
|
22
|
+
end
|
@@ -10,11 +10,11 @@ module Expressir
|
|
10
10
|
DERIVED = :DERIVED
|
11
11
|
INVERSE = :INVERSE
|
12
12
|
|
13
|
-
model_attr_accessor :kind,
|
14
|
-
model_attr_accessor :supertype_attribute,
|
15
|
-
model_attr_accessor :optional,
|
16
|
-
model_attr_accessor :type,
|
17
|
-
model_attr_accessor :expression,
|
13
|
+
model_attr_accessor :kind, ":EXPLICIT, :DERIVED, :INVERSE"
|
14
|
+
model_attr_accessor :supertype_attribute, "Reference"
|
15
|
+
model_attr_accessor :optional, "Boolean"
|
16
|
+
model_attr_accessor :type, "DataType"
|
17
|
+
model_attr_accessor :expression, "Expression"
|
18
18
|
|
19
19
|
# @param [Hash] options
|
20
20
|
# @option (see Identifier#initialize_identifier)
|
@@ -38,10 +38,10 @@ module Expressir
|
|
38
38
|
# @return [Array<Declaration>]
|
39
39
|
def children
|
40
40
|
[
|
41
|
-
*remark_items
|
41
|
+
*remark_items,
|
42
42
|
]
|
43
43
|
end
|
44
44
|
end
|
45
45
|
end
|
46
46
|
end
|
47
|
-
end
|
47
|
+
end
|
@@ -6,8 +6,8 @@ module Expressir
|
|
6
6
|
class Constant < Declaration
|
7
7
|
include Identifier
|
8
8
|
|
9
|
-
model_attr_accessor :type,
|
10
|
-
model_attr_accessor :expression,
|
9
|
+
model_attr_accessor :type, "DataType"
|
10
|
+
model_attr_accessor :expression, "Expression"
|
11
11
|
|
12
12
|
# @param [Hash] options
|
13
13
|
# @option (see Identifier#initialize_identifier)
|
@@ -25,10 +25,10 @@ module Expressir
|
|
25
25
|
# @return [Array<Declaration>]
|
26
26
|
def children
|
27
27
|
[
|
28
|
-
*remark_items
|
28
|
+
*remark_items,
|
29
29
|
]
|
30
30
|
end
|
31
31
|
end
|
32
32
|
end
|
33
33
|
end
|
34
|
-
end
|
34
|
+
end
|
@@ -6,13 +6,13 @@ module Expressir
|
|
6
6
|
class Entity < Declaration
|
7
7
|
include Identifier
|
8
8
|
|
9
|
-
model_attr_accessor :abstract,
|
10
|
-
model_attr_accessor :supertype_expression,
|
11
|
-
model_attr_accessor :subtype_of,
|
12
|
-
model_attr_accessor :attributes,
|
13
|
-
model_attr_accessor :unique_rules,
|
14
|
-
model_attr_accessor :where_rules,
|
15
|
-
model_attr_accessor :informal_propositions,
|
9
|
+
model_attr_accessor :abstract, "Boolean"
|
10
|
+
model_attr_accessor :supertype_expression, "SupertypeExpression"
|
11
|
+
model_attr_accessor :subtype_of, "Array<Reference>"
|
12
|
+
model_attr_accessor :attributes, "Array<Attribute>"
|
13
|
+
model_attr_accessor :unique_rules, "Array<UniqueRule>"
|
14
|
+
model_attr_accessor :where_rules, "Array<WhereRule>"
|
15
|
+
model_attr_accessor :informal_propositions, "Array<RemarkItem>"
|
16
16
|
|
17
17
|
# @param [Hash] options
|
18
18
|
# @option (see Identifier#initialize_identifier)
|
@@ -44,10 +44,10 @@ module Expressir
|
|
44
44
|
*unique_rules,
|
45
45
|
*where_rules,
|
46
46
|
*informal_propositions,
|
47
|
-
*remark_items
|
47
|
+
*remark_items,
|
48
48
|
]
|
49
49
|
end
|
50
50
|
end
|
51
51
|
end
|
52
52
|
end
|
53
|
-
end
|
53
|
+
end
|
@@ -6,16 +6,16 @@ module Expressir
|
|
6
6
|
class Function < Declaration
|
7
7
|
include Identifier
|
8
8
|
|
9
|
-
model_attr_accessor :parameters,
|
10
|
-
model_attr_accessor :return_type,
|
11
|
-
model_attr_accessor :types,
|
12
|
-
model_attr_accessor :entities,
|
13
|
-
model_attr_accessor :subtype_constraints,
|
14
|
-
model_attr_accessor :functions,
|
15
|
-
model_attr_accessor :procedures,
|
16
|
-
model_attr_accessor :constants,
|
17
|
-
model_attr_accessor :variables,
|
18
|
-
model_attr_accessor :statements,
|
9
|
+
model_attr_accessor :parameters, "Array<Parameter>"
|
10
|
+
model_attr_accessor :return_type, "DataType"
|
11
|
+
model_attr_accessor :types, "Array<Type>"
|
12
|
+
model_attr_accessor :entities, "Array<Entity>"
|
13
|
+
model_attr_accessor :subtype_constraints, "Array<SubtypeConstraint>"
|
14
|
+
model_attr_accessor :functions, "Array<Function>"
|
15
|
+
model_attr_accessor :procedures, "Array<Procedure>"
|
16
|
+
model_attr_accessor :constants, "Array<Constant>"
|
17
|
+
model_attr_accessor :variables, "Array<Variable>"
|
18
|
+
model_attr_accessor :statements, "Array<Statement>"
|
19
19
|
|
20
20
|
# @param [Hash] options
|
21
21
|
# @option (see Identifier#initialize_identifier)
|
@@ -51,17 +51,17 @@ module Expressir
|
|
51
51
|
[
|
52
52
|
*parameters,
|
53
53
|
*types,
|
54
|
-
*types.flat_map
|
54
|
+
*types.flat_map(&:enumeration_items),
|
55
55
|
*entities,
|
56
56
|
*subtype_constraints,
|
57
57
|
*functions,
|
58
58
|
*procedures,
|
59
59
|
*constants,
|
60
60
|
*variables,
|
61
|
-
*remark_items
|
61
|
+
*remark_items,
|
62
62
|
]
|
63
63
|
end
|
64
64
|
end
|
65
65
|
end
|
66
66
|
end
|
67
|
-
end
|
67
|
+
end
|
@@ -7,9 +7,9 @@ module Expressir
|
|
7
7
|
USE = :USE
|
8
8
|
REFERENCE = :REFERENCE
|
9
9
|
|
10
|
-
model_attr_accessor :kind,
|
11
|
-
model_attr_accessor :schema,
|
12
|
-
model_attr_accessor :items,
|
10
|
+
model_attr_accessor :kind, ":USE, :REFERENCE"
|
11
|
+
model_attr_accessor :schema, "Reference"
|
12
|
+
model_attr_accessor :items, "Array<InterfaceItem>"
|
13
13
|
|
14
14
|
# @param [Hash] options
|
15
15
|
# @option options [:USE, :REFERENCE] :kind
|
@@ -25,4 +25,4 @@ module Expressir
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
28
|
-
end
|
28
|
+
end
|
@@ -4,8 +4,8 @@ module Expressir
|
|
4
4
|
# Specified in ISO 10303-11:2004
|
5
5
|
# - section 11 Interface specification
|
6
6
|
class InterfaceItem < ModelElement
|
7
|
-
model_attr_accessor :ref,
|
8
|
-
model_attr_accessor :id,
|
7
|
+
model_attr_accessor :ref, "Reference"
|
8
|
+
model_attr_accessor :id, "String"
|
9
9
|
|
10
10
|
# @param [Hash] options
|
11
11
|
# @option (see Identifier#initialize_identifier)
|
@@ -20,4 +20,4 @@ module Expressir
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
23
|
-
end
|
23
|
+
end
|
@@ -4,11 +4,11 @@ module Expressir
|
|
4
4
|
# Specified in ISO 10303-11:2004
|
5
5
|
# - section 11 Interface specification
|
6
6
|
class InterfacedItem < ModelElement
|
7
|
-
model_attr_accessor :id,
|
8
|
-
model_attr_accessor :remarks,
|
9
|
-
model_attr_accessor :remark_items,
|
7
|
+
model_attr_accessor :id, "String"
|
8
|
+
model_attr_accessor :remarks, "Array<String>"
|
9
|
+
model_attr_accessor :remark_items, "Array<RemarkItem>"
|
10
10
|
|
11
|
-
model_attr_accessor :base_item,
|
11
|
+
model_attr_accessor :base_item, "ModelElement"
|
12
12
|
|
13
13
|
# @param [Hash] options
|
14
14
|
# @option options [String] :id
|
@@ -28,10 +28,10 @@ module Expressir
|
|
28
28
|
# @return [Array<Declaration>]
|
29
29
|
def children
|
30
30
|
[
|
31
|
-
*remark_items
|
31
|
+
*remark_items,
|
32
32
|
]
|
33
33
|
end
|
34
34
|
end
|
35
35
|
end
|
36
36
|
end
|
37
|
-
end
|
37
|
+
end
|
@@ -6,8 +6,8 @@ module Expressir
|
|
6
6
|
class Parameter < Declaration
|
7
7
|
include Identifier
|
8
8
|
|
9
|
-
model_attr_accessor :var,
|
10
|
-
model_attr_accessor :type,
|
9
|
+
model_attr_accessor :var, "Boolean"
|
10
|
+
model_attr_accessor :type, "DataType"
|
11
11
|
|
12
12
|
# @param [Hash] options
|
13
13
|
# @option (see Identifier#initialize_identifier)
|
@@ -25,10 +25,10 @@ module Expressir
|
|
25
25
|
# @return [Array<Declaration>]
|
26
26
|
def children
|
27
27
|
[
|
28
|
-
*remark_items
|
28
|
+
*remark_items,
|
29
29
|
]
|
30
30
|
end
|
31
31
|
end
|
32
32
|
end
|
33
33
|
end
|
34
|
-
end
|
34
|
+
end
|
@@ -6,15 +6,15 @@ module Expressir
|
|
6
6
|
class Procedure < Declaration
|
7
7
|
include Identifier
|
8
8
|
|
9
|
-
model_attr_accessor :parameters,
|
10
|
-
model_attr_accessor :types,
|
11
|
-
model_attr_accessor :entities,
|
12
|
-
model_attr_accessor :subtype_constraints,
|
13
|
-
model_attr_accessor :functions,
|
14
|
-
model_attr_accessor :procedures,
|
15
|
-
model_attr_accessor :constants,
|
16
|
-
model_attr_accessor :variables,
|
17
|
-
model_attr_accessor :statements,
|
9
|
+
model_attr_accessor :parameters, "Array<Parameter>"
|
10
|
+
model_attr_accessor :types, "Array<Type>"
|
11
|
+
model_attr_accessor :entities, "Array<Entity>"
|
12
|
+
model_attr_accessor :subtype_constraints, "Array<SubtypeConstraint>"
|
13
|
+
model_attr_accessor :functions, "Array<Function>"
|
14
|
+
model_attr_accessor :procedures, "Array<Procedure>"
|
15
|
+
model_attr_accessor :constants, "Array<Constant>"
|
16
|
+
model_attr_accessor :variables, "Array<Variable>"
|
17
|
+
model_attr_accessor :statements, "Array<Statement>"
|
18
18
|
|
19
19
|
# @param [Hash] options
|
20
20
|
# @option (see Identifier#initialize_identifier)
|
@@ -48,17 +48,17 @@ module Expressir
|
|
48
48
|
[
|
49
49
|
*parameters,
|
50
50
|
*types,
|
51
|
-
*types.flat_map
|
51
|
+
*types.flat_map(&:enumeration_items),
|
52
52
|
*entities,
|
53
53
|
*subtype_constraints,
|
54
54
|
*functions,
|
55
55
|
*procedures,
|
56
56
|
*constants,
|
57
57
|
*variables,
|
58
|
-
*remark_items
|
58
|
+
*remark_items,
|
59
59
|
]
|
60
60
|
end
|
61
61
|
end
|
62
62
|
end
|
63
63
|
end
|
64
|
-
end
|
64
|
+
end
|
@@ -3,8 +3,8 @@ module Expressir
|
|
3
3
|
module Declarations
|
4
4
|
# Implicit item with remarks
|
5
5
|
class RemarkItem < Declaration
|
6
|
-
model_attr_accessor :id,
|
7
|
-
model_attr_accessor :remarks,
|
6
|
+
model_attr_accessor :id, "String"
|
7
|
+
model_attr_accessor :remarks, "Array<String>"
|
8
8
|
|
9
9
|
# @param [Hash] options
|
10
10
|
# @option options [String] :id
|
@@ -18,4 +18,4 @@ module Expressir
|
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
21
|
-
end
|
21
|
+
end
|
@@ -6,17 +6,17 @@ module Expressir
|
|
6
6
|
class Rule < Declaration
|
7
7
|
include Identifier
|
8
8
|
|
9
|
-
model_attr_accessor :applies_to,
|
10
|
-
model_attr_accessor :types,
|
11
|
-
model_attr_accessor :entities,
|
12
|
-
model_attr_accessor :subtype_constraints,
|
13
|
-
model_attr_accessor :functions,
|
14
|
-
model_attr_accessor :procedures,
|
15
|
-
model_attr_accessor :constants,
|
16
|
-
model_attr_accessor :variables,
|
17
|
-
model_attr_accessor :statements,
|
18
|
-
model_attr_accessor :where_rules,
|
19
|
-
model_attr_accessor :informal_propositions,
|
9
|
+
model_attr_accessor :applies_to, "Array<Reference>"
|
10
|
+
model_attr_accessor :types, "Array<Type>"
|
11
|
+
model_attr_accessor :entities, "Array<Entity>"
|
12
|
+
model_attr_accessor :subtype_constraints, "Array<SubtypeConstraint>"
|
13
|
+
model_attr_accessor :functions, "Array<Function>"
|
14
|
+
model_attr_accessor :procedures, "Array<Procedure>"
|
15
|
+
model_attr_accessor :constants, "Array<Constant>"
|
16
|
+
model_attr_accessor :variables, "Array<Variable>"
|
17
|
+
model_attr_accessor :statements, "Array<Statement>"
|
18
|
+
model_attr_accessor :where_rules, "Array<WhereRule>"
|
19
|
+
model_attr_accessor :informal_propositions, "Array<RemarkItem>"
|
20
20
|
|
21
21
|
# @param [Hash] options
|
22
22
|
# @option (see Identifier#initialize_identifier)
|
@@ -53,7 +53,7 @@ module Expressir
|
|
53
53
|
def children
|
54
54
|
[
|
55
55
|
*types,
|
56
|
-
*types.flat_map
|
56
|
+
*types.flat_map(&:enumeration_items),
|
57
57
|
*entities,
|
58
58
|
*subtype_constraints,
|
59
59
|
*functions,
|
@@ -62,10 +62,10 @@ module Expressir
|
|
62
62
|
*variables,
|
63
63
|
*where_rules,
|
64
64
|
*informal_propositions,
|
65
|
-
*remark_items
|
65
|
+
*remark_items,
|
66
66
|
]
|
67
67
|
end
|
68
68
|
end
|
69
69
|
end
|
70
70
|
end
|
71
|
-
end
|
71
|
+
end
|