expressir 1.0.0-x64-mingw32 → 1.1.0-x64-mingw32
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/.yardopts +11 -0
- data/Rakefile +3 -0
- data/expressir.gemspec +3 -0
- data/lib/expressir/express/2.4/express_parser.so +0 -0
- data/lib/expressir/express/2.5/express_parser.so +0 -0
- data/lib/expressir/express/2.6/express_parser.so +0 -0
- data/lib/expressir/express/2.7/express_parser.so +0 -0
- data/lib/expressir/express/3.0/express_parser.so +0 -0
- data/lib/expressir/express/cache.rb +16 -10
- data/lib/expressir/express/formatter.rb +231 -180
- data/lib/expressir/express/hyperlink_formatter.rb +15 -1
- data/lib/expressir/express/model_visitor.rb +1 -0
- data/lib/expressir/express/parser.rb +16 -10
- data/lib/expressir/express/resolve_references_model_visitor.rb +7 -5
- data/lib/expressir/express/schema_head_formatter.rb +16 -2
- data/lib/expressir/express/visitor.rb +280 -254
- data/lib/expressir/model.rb +52 -45
- data/lib/expressir/model/cache.rb +6 -2
- data/lib/expressir/model/data_type.rb +9 -0
- data/lib/expressir/model/data_types/aggregate.rb +31 -0
- data/lib/expressir/model/data_types/array.rb +31 -0
- data/lib/expressir/model/data_types/bag.rb +25 -0
- data/lib/expressir/model/data_types/binary.rb +22 -0
- data/lib/expressir/model/data_types/boolean.rb +10 -0
- data/lib/expressir/model/data_types/enumeration.rb +25 -0
- data/lib/expressir/model/data_types/enumeration_item.rb +26 -0
- data/lib/expressir/model/data_types/generic.rb +26 -0
- data/lib/expressir/model/data_types/generic_entity.rb +26 -0
- data/lib/expressir/model/data_types/integer.rb +10 -0
- data/lib/expressir/model/data_types/list.rb +28 -0
- data/lib/expressir/model/data_types/logical.rb +10 -0
- data/lib/expressir/model/data_types/number.rb +10 -0
- data/lib/expressir/model/data_types/real.rb +19 -0
- data/lib/expressir/model/data_types/select.rb +28 -0
- data/lib/expressir/model/data_types/set.rb +25 -0
- data/lib/expressir/model/data_types/string.rb +22 -0
- data/lib/expressir/model/declaration.rb +9 -0
- data/lib/expressir/model/declarations/attribute.rb +47 -0
- data/lib/expressir/model/declarations/constant.rb +34 -0
- data/lib/expressir/model/declarations/entity.rb +53 -0
- data/lib/expressir/model/declarations/function.rb +67 -0
- data/lib/expressir/model/declarations/interface.rb +28 -0
- data/lib/expressir/model/declarations/interface_item.rb +23 -0
- data/lib/expressir/model/declarations/interfaced_item.rb +37 -0
- data/lib/expressir/model/declarations/parameter.rb +34 -0
- data/lib/expressir/model/declarations/procedure.rb +64 -0
- data/lib/expressir/model/declarations/remark_item.rb +21 -0
- data/lib/expressir/model/declarations/rule.rb +71 -0
- data/lib/expressir/model/declarations/schema.rb +117 -0
- data/lib/expressir/model/declarations/schema_version.rb +22 -0
- data/lib/expressir/model/declarations/schema_version_item.rb +22 -0
- data/lib/expressir/model/declarations/subtype_constraint.rb +40 -0
- data/lib/expressir/model/declarations/type.rb +45 -0
- data/lib/expressir/model/declarations/unique_rule.rb +31 -0
- data/lib/expressir/model/declarations/variable.rb +34 -0
- data/lib/expressir/model/declarations/where_rule.rb +31 -0
- data/lib/expressir/model/expression.rb +9 -0
- data/lib/expressir/model/expressions/aggregate_initializer.rb +6 -2
- data/lib/expressir/model/expressions/aggregate_initializer_item.rb +22 -0
- data/lib/expressir/model/expressions/binary_expression.rb +16 -5
- data/lib/expressir/model/expressions/entity_constructor.rb +8 -3
- data/lib/expressir/model/expressions/function_call.rb +22 -0
- data/lib/expressir/model/expressions/interval.rb +17 -6
- data/lib/expressir/model/expressions/query_expression.rb +11 -7
- data/lib/expressir/model/expressions/unary_expression.rb +9 -3
- data/lib/expressir/model/identifier.rb +26 -4
- data/lib/expressir/model/literal.rb +9 -0
- data/lib/expressir/model/literals/binary.rb +6 -2
- data/lib/expressir/model/literals/integer.rb +6 -2
- data/lib/expressir/model/literals/logical.rb +6 -2
- data/lib/expressir/model/literals/real.rb +6 -2
- data/lib/expressir/model/literals/string.rb +8 -3
- data/lib/expressir/model/model_element.rb +63 -37
- data/lib/expressir/model/reference.rb +9 -0
- data/lib/expressir/model/references/attribute_reference.rb +22 -0
- data/lib/expressir/model/references/group_reference.rb +22 -0
- data/lib/expressir/model/references/index_reference.rb +27 -0
- data/lib/expressir/model/references/simple_reference.rb +24 -0
- data/lib/expressir/model/repository.rb +7 -1
- data/lib/expressir/model/statement.rb +9 -0
- data/lib/expressir/model/statements/alias.rb +11 -7
- data/lib/expressir/model/statements/assignment.rb +8 -3
- data/lib/expressir/model/statements/case.rb +10 -4
- data/lib/expressir/model/statements/case_action.rb +7 -2
- data/lib/expressir/model/statements/compound.rb +6 -2
- data/lib/expressir/model/statements/escape.rb +3 -1
- data/lib/expressir/model/statements/if.rb +10 -4
- data/lib/expressir/model/statements/null.rb +3 -1
- data/lib/expressir/model/statements/procedure_call.rb +22 -0
- data/lib/expressir/model/statements/repeat.rb +19 -11
- data/lib/expressir/model/statements/return.rb +6 -2
- data/lib/expressir/model/statements/skip.rb +3 -1
- data/lib/expressir/model/supertype_expression.rb +9 -0
- data/lib/expressir/model/supertype_expressions/binary_supertype_expression.rb +29 -0
- data/lib/expressir/model/supertype_expressions/oneof_supertype_expression.rb +19 -0
- data/lib/expressir/version.rb +1 -1
- data/spec/expressir/model/model_element_spec.rb +131 -131
- data/spec/syntax/multiple.yaml +68 -68
- data/spec/syntax/remark.yaml +64 -64
- data/spec/syntax/single.yaml +5 -5
- data/spec/syntax/single_formatted.yaml +5 -5
- data/spec/syntax/syntax.yaml +1003 -1030
- metadata +97 -45
- data/lib/expressir/model/attribute.rb +0 -38
- data/lib/expressir/model/constant.rb +0 -28
- data/lib/expressir/model/entity.rb +0 -42
- data/lib/expressir/model/enumeration_item.rb +0 -22
- data/lib/expressir/model/expressions/aggregate_item.rb +0 -17
- data/lib/expressir/model/expressions/attribute_reference.rb +0 -17
- data/lib/expressir/model/expressions/call.rb +0 -17
- data/lib/expressir/model/expressions/group_reference.rb +0 -17
- data/lib/expressir/model/expressions/index_reference.rb +0 -19
- data/lib/expressir/model/expressions/simple_reference.rb +0 -19
- data/lib/expressir/model/function.rb +0 -57
- data/lib/expressir/model/interface.rb +0 -20
- data/lib/expressir/model/interface_item.rb +0 -15
- data/lib/expressir/model/interfaced_item.rb +0 -27
- data/lib/expressir/model/parameter.rb +0 -28
- data/lib/expressir/model/procedure.rb +0 -55
- data/lib/expressir/model/remark_item.rb +0 -15
- data/lib/expressir/model/rule.rb +0 -60
- data/lib/expressir/model/schema.rb +0 -100
- data/lib/expressir/model/schema_version.rb +0 -15
- data/lib/expressir/model/schema_version_item.rb +0 -15
- data/lib/expressir/model/statements/call.rb +0 -17
- data/lib/expressir/model/subtype_constraint.rb +0 -32
- data/lib/expressir/model/type.rb +0 -37
- data/lib/expressir/model/types/aggregate.rb +0 -28
- data/lib/expressir/model/types/array.rb +0 -23
- data/lib/expressir/model/types/bag.rb +0 -19
- data/lib/expressir/model/types/binary.rb +0 -17
- data/lib/expressir/model/types/boolean.rb +0 -8
- data/lib/expressir/model/types/enumeration.rb +0 -19
- data/lib/expressir/model/types/generic.rb +0 -24
- data/lib/expressir/model/types/generic_entity.rb +0 -24
- data/lib/expressir/model/types/integer.rb +0 -8
- data/lib/expressir/model/types/list.rb +0 -21
- data/lib/expressir/model/types/logical.rb +0 -8
- data/lib/expressir/model/types/number.rb +0 -8
- data/lib/expressir/model/types/real.rb +0 -15
- data/lib/expressir/model/types/select.rb +0 -21
- data/lib/expressir/model/types/set.rb +0 -19
- data/lib/expressir/model/types/string.rb +0 -17
- data/lib/expressir/model/unique_rule.rb +0 -26
- data/lib/expressir/model/variable.rb +0 -28
- data/lib/expressir/model/where_rule.rb +0 -26
@@ -0,0 +1,19 @@
|
|
1
|
+
module Expressir
|
2
|
+
module Model
|
3
|
+
module DataTypes
|
4
|
+
# Specified in ISO 10303-11:2004
|
5
|
+
# - section 8.1.2 Real data type
|
6
|
+
class Real < DataType
|
7
|
+
model_attr_accessor :precision, 'Expression'
|
8
|
+
|
9
|
+
# @param [Hash] options
|
10
|
+
# @option options [Expression] :precision
|
11
|
+
def initialize(options = {})
|
12
|
+
@precision = options[:precision]
|
13
|
+
|
14
|
+
super
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Expressir
|
2
|
+
module Model
|
3
|
+
module DataTypes
|
4
|
+
# Specified in ISO 10303-11:2004
|
5
|
+
# - section 8.4.2 Select data type
|
6
|
+
class Select < DataType
|
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
|
+
|
12
|
+
# @param [Hash] options
|
13
|
+
# @option options [::Boolean] :extensible
|
14
|
+
# @option options [::Boolean] :generic_entity
|
15
|
+
# @option options [Reference] :based_on
|
16
|
+
# @option options [::Array<Reference>] :items
|
17
|
+
def initialize(options = {})
|
18
|
+
@extensible = options[:extensible]
|
19
|
+
@generic_entity = options[:generic_entity]
|
20
|
+
@based_on = options[:based_on]
|
21
|
+
@items = options[:items] || []
|
22
|
+
|
23
|
+
super
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Expressir
|
2
|
+
module Model
|
3
|
+
module DataTypes
|
4
|
+
# Specified in ISO 10303-11:2004
|
5
|
+
# - section 8.2.4 Set data type
|
6
|
+
class Set < DataType
|
7
|
+
model_attr_accessor :bound1, 'Expression'
|
8
|
+
model_attr_accessor :bound2, 'Expression'
|
9
|
+
model_attr_accessor :base_type, 'DataType'
|
10
|
+
|
11
|
+
# @param [Hash] options
|
12
|
+
# @option options [Expression] :bound1
|
13
|
+
# @option options [Expression] :bound2
|
14
|
+
# @option options [DataType] :base_type
|
15
|
+
def initialize(options = {})
|
16
|
+
@bound1 = options[:bound1]
|
17
|
+
@bound2 = options[:bound2]
|
18
|
+
@base_type = options[:base_type]
|
19
|
+
|
20
|
+
super
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Expressir
|
2
|
+
module Model
|
3
|
+
module DataTypes
|
4
|
+
# Specified in ISO 10303-11:2004
|
5
|
+
# - section 8.1.6 String data type
|
6
|
+
class String < DataType
|
7
|
+
model_attr_accessor :width, 'Expression'
|
8
|
+
model_attr_accessor :fixed, '::Boolean'
|
9
|
+
|
10
|
+
# @param [Hash] options
|
11
|
+
# @option options [Expression] :width
|
12
|
+
# @option options [::Boolean] :fixed
|
13
|
+
def initialize(options = {})
|
14
|
+
@width = options[:width]
|
15
|
+
@fixed = options[:fixed]
|
16
|
+
|
17
|
+
super
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Expressir
|
2
|
+
module Model
|
3
|
+
module Declarations
|
4
|
+
# Specified in ISO 10303-11:2004
|
5
|
+
# - section 9.2.1 Attributes
|
6
|
+
class Attribute < Declaration
|
7
|
+
include Identifier
|
8
|
+
|
9
|
+
EXPLICIT = :EXPLICIT
|
10
|
+
DERIVED = :DERIVED
|
11
|
+
INVERSE = :INVERSE
|
12
|
+
|
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
|
+
|
19
|
+
# @param [Hash] options
|
20
|
+
# @option (see Identifier#initialize_identifier)
|
21
|
+
# @option options [:EXPLICIT, :DERIVED, :INVERSE] :kind
|
22
|
+
# @option options [Reference] :supertype_attribute
|
23
|
+
# @option options [Boolean] :optional
|
24
|
+
# @option options [DataType] :type
|
25
|
+
# @option options [Expression] :operand
|
26
|
+
def initialize(options = {})
|
27
|
+
initialize_identifier(options)
|
28
|
+
|
29
|
+
@kind = options[:kind]
|
30
|
+
@supertype_attribute = options[:supertype_attribute]
|
31
|
+
@optional = options[:optional]
|
32
|
+
@type = options[:type]
|
33
|
+
@expression = options[:expression]
|
34
|
+
|
35
|
+
super
|
36
|
+
end
|
37
|
+
|
38
|
+
# @return [Array<Declaration>]
|
39
|
+
def children
|
40
|
+
[
|
41
|
+
*remark_items
|
42
|
+
]
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Expressir
|
2
|
+
module Model
|
3
|
+
module Declarations
|
4
|
+
# Specified in ISO 10303-11:2004
|
5
|
+
# - section 9.4 Constant
|
6
|
+
class Constant < Declaration
|
7
|
+
include Identifier
|
8
|
+
|
9
|
+
model_attr_accessor :type, 'DataType'
|
10
|
+
model_attr_accessor :expression, 'Expression'
|
11
|
+
|
12
|
+
# @param [Hash] options
|
13
|
+
# @option (see Identifier#initialize_identifier)
|
14
|
+
# @option options [DataType] :type
|
15
|
+
# @option options [Expression] :expression
|
16
|
+
def initialize(options = {})
|
17
|
+
initialize_identifier(options)
|
18
|
+
|
19
|
+
@type = options[:type]
|
20
|
+
@expression = options[:expression]
|
21
|
+
|
22
|
+
super
|
23
|
+
end
|
24
|
+
|
25
|
+
# @return [Array<Declaration>]
|
26
|
+
def children
|
27
|
+
[
|
28
|
+
*remark_items
|
29
|
+
]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module Expressir
|
2
|
+
module Model
|
3
|
+
module Declarations
|
4
|
+
# Specified in ISO 10303-11:2004
|
5
|
+
# - section 9.2 Entity declaration
|
6
|
+
class Entity < Declaration
|
7
|
+
include Identifier
|
8
|
+
|
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
|
+
|
17
|
+
# @param [Hash] options
|
18
|
+
# @option (see Identifier#initialize_identifier)
|
19
|
+
# @option options [Boolean] :abstract
|
20
|
+
# @option options [SupertypeExpression] :supertype_expression
|
21
|
+
# @option options [Array<Reference>] :subtype_of
|
22
|
+
# @option options [Array<Attribute>] :attributes
|
23
|
+
# @option options [Array<UniqueRule>] :unique_rules
|
24
|
+
# @option options [Array<WhereRule>] :where_rules
|
25
|
+
# @option options [Array<RemarkItem>] :informal_propositions
|
26
|
+
def initialize(options = {})
|
27
|
+
initialize_identifier(options)
|
28
|
+
|
29
|
+
@abstract = options[:abstract]
|
30
|
+
@supertype_expression = options[:supertype_expression]
|
31
|
+
@subtype_of = options[:subtype_of] || []
|
32
|
+
@attributes = options[:attributes] || []
|
33
|
+
@unique_rules = options[:unique_rules] || []
|
34
|
+
@where_rules = options[:where_rules] || []
|
35
|
+
@informal_propositions = options[:informal_propositions] || []
|
36
|
+
|
37
|
+
super
|
38
|
+
end
|
39
|
+
|
40
|
+
# @return [Array<Declaration>]
|
41
|
+
def children
|
42
|
+
[
|
43
|
+
*attributes,
|
44
|
+
*unique_rules,
|
45
|
+
*where_rules,
|
46
|
+
*informal_propositions,
|
47
|
+
*remark_items
|
48
|
+
]
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
module Expressir
|
2
|
+
module Model
|
3
|
+
module Declarations
|
4
|
+
# Specified in ISO 10303-11:2004
|
5
|
+
# - section 9.5.1 Function
|
6
|
+
class Function < Declaration
|
7
|
+
include Identifier
|
8
|
+
|
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
|
+
|
20
|
+
# @param [Hash] options
|
21
|
+
# @option (see Identifier#initialize_identifier)
|
22
|
+
# @option options [Array<Parameter>] :parameters
|
23
|
+
# @option options [DataType] :return_type
|
24
|
+
# @option options [Array<Type>] :types
|
25
|
+
# @option options [Array<Entity>] :entities
|
26
|
+
# @option options [Array<SubtypeConstraint>] :subtype_constraints
|
27
|
+
# @option options [Array<Function>] :functions
|
28
|
+
# @option options [Array<Procedure>] :procedures
|
29
|
+
# @option options [Array<Constant>] :constants
|
30
|
+
# @option options [Array<Variable>] :variables
|
31
|
+
# @option options [Array<Statement>] :statements
|
32
|
+
def initialize(options = {})
|
33
|
+
initialize_identifier(options)
|
34
|
+
|
35
|
+
@parameters = options[:parameters] || []
|
36
|
+
@return_type = options[:return_type]
|
37
|
+
@types = options[:types] || []
|
38
|
+
@entities = options[:entities] || []
|
39
|
+
@subtype_constraints = options[:subtype_constraints] || []
|
40
|
+
@functions = options[:functions] || []
|
41
|
+
@procedures = options[:procedures] || []
|
42
|
+
@constants = options[:constants] || []
|
43
|
+
@variables = options[:variables] || []
|
44
|
+
@statements = options[:statements] || []
|
45
|
+
|
46
|
+
super
|
47
|
+
end
|
48
|
+
|
49
|
+
# @return [Array<Declaration>]
|
50
|
+
def children
|
51
|
+
[
|
52
|
+
*parameters,
|
53
|
+
*types,
|
54
|
+
*types.flat_map{|x| x.enumeration_items},
|
55
|
+
*entities,
|
56
|
+
*subtype_constraints,
|
57
|
+
*functions,
|
58
|
+
*procedures,
|
59
|
+
*constants,
|
60
|
+
*variables,
|
61
|
+
*remark_items
|
62
|
+
]
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Expressir
|
2
|
+
module Model
|
3
|
+
module Declarations
|
4
|
+
# Specified in ISO 10303-11:2004
|
5
|
+
# - section 11 Interface specification
|
6
|
+
class Interface < Declaration
|
7
|
+
USE = :USE
|
8
|
+
REFERENCE = :REFERENCE
|
9
|
+
|
10
|
+
model_attr_accessor :kind, ':USE, :REFERENCE'
|
11
|
+
model_attr_accessor :schema, 'Reference'
|
12
|
+
model_attr_accessor :items, 'Array<InterfaceItem>'
|
13
|
+
|
14
|
+
# @param [Hash] options
|
15
|
+
# @option options [:USE, :REFERENCE] :kind
|
16
|
+
# @option options [Reference] :schema
|
17
|
+
# @option options [Array<InterfaceItem>] :items
|
18
|
+
def initialize(options = {})
|
19
|
+
@kind = options[:kind]
|
20
|
+
@schema = options[:schema]
|
21
|
+
@items = options[:items] || []
|
22
|
+
|
23
|
+
super
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Expressir
|
2
|
+
module Model
|
3
|
+
module Declarations
|
4
|
+
# Specified in ISO 10303-11:2004
|
5
|
+
# - section 11 Interface specification
|
6
|
+
class InterfaceItem < ModelElement
|
7
|
+
model_attr_accessor :ref, 'Reference'
|
8
|
+
model_attr_accessor :id, 'String'
|
9
|
+
|
10
|
+
# @param [Hash] options
|
11
|
+
# @option (see Identifier#initialize_identifier)
|
12
|
+
# @option options [Reference] :ref
|
13
|
+
# @option options [String] :id
|
14
|
+
def initialize(options = {})
|
15
|
+
@ref = options[:ref]
|
16
|
+
@id = options[:id]
|
17
|
+
|
18
|
+
super
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Expressir
|
2
|
+
module Model
|
3
|
+
module Declarations
|
4
|
+
# Specified in ISO 10303-11:2004
|
5
|
+
# - section 11 Interface specification
|
6
|
+
class InterfacedItem < ModelElement
|
7
|
+
model_attr_accessor :id, 'String'
|
8
|
+
model_attr_accessor :remarks, 'Array<String>'
|
9
|
+
model_attr_accessor :remark_items, 'Array<RemarkItem>'
|
10
|
+
|
11
|
+
model_attr_accessor :base_item, 'ModelElement'
|
12
|
+
|
13
|
+
# @param [Hash] options
|
14
|
+
# @option options [String] :id
|
15
|
+
# @option options [Array<String>] :remarks
|
16
|
+
# @option options [Array<RemarkItem>] :remark_items
|
17
|
+
# @option options [ModelElement] :base_item
|
18
|
+
def initialize(options = {})
|
19
|
+
@id = options[:id]
|
20
|
+
@remarks = options[:remarks] || []
|
21
|
+
@remark_items = options[:remark_items] || []
|
22
|
+
|
23
|
+
@base_item = options[:base_item]
|
24
|
+
|
25
|
+
super
|
26
|
+
end
|
27
|
+
|
28
|
+
# @return [Array<Declaration>]
|
29
|
+
def children
|
30
|
+
[
|
31
|
+
*remark_items
|
32
|
+
]
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Expressir
|
2
|
+
module Model
|
3
|
+
module Declarations
|
4
|
+
# Specified in ISO 10303-11:2004
|
5
|
+
# - section 9.5.3 Parameters
|
6
|
+
class Parameter < Declaration
|
7
|
+
include Identifier
|
8
|
+
|
9
|
+
model_attr_accessor :var, 'Boolean'
|
10
|
+
model_attr_accessor :type, 'DataType'
|
11
|
+
|
12
|
+
# @param [Hash] options
|
13
|
+
# @option (see Identifier#initialize_identifier)
|
14
|
+
# @option options [Boolean] :var
|
15
|
+
# @option options [DataType] :type
|
16
|
+
def initialize(options = {})
|
17
|
+
initialize_identifier(options)
|
18
|
+
|
19
|
+
@var = options[:var]
|
20
|
+
@type = options[:type]
|
21
|
+
|
22
|
+
super
|
23
|
+
end
|
24
|
+
|
25
|
+
# @return [Array<Declaration>]
|
26
|
+
def children
|
27
|
+
[
|
28
|
+
*remark_items
|
29
|
+
]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|