Class: IDL::AST::Struct
- Inherits:
-
Node
show all
- Defined in:
- lib/ridl/node.rb,
lib/ridl/node.rb
Overview
Constant Summary
collapse
- NAMETYPE =
:class
- DEFINABLE =
[IDL::AST::Member, IDL::AST::Struct, IDL::AST::Union, IDL::AST::Enum, IDL::AST::Enumerator]
Instance Attribute Summary collapse
Attributes inherited from Leaf
#annotations, #enclosure, #intern, #lm_name, #name, #prefix, #scopes
Instance Method Summary
collapse
Methods inherited from Node
#define, #introduce, #is_definable?, #match_members, #redefine, #replace_prefix, #resolve, #undo_introduction
Methods inherited from Leaf
#_set_prefix, #has_annotations?, #is_template?, #lm_name_for_scope, #parsed_name_scope, #replace_prefix, #repo_scopes, #repository_id, #resolve, #scoped_lm_name, #scoped_name, #set_repo_id, #set_repo_version, #typename
Constructor Details
#initialize(_name, _enclosure, params) ⇒ Struct
Returns a new instance of Struct.
2448
2449
2450
2451
2452
2453
2454
|
# File 'lib/ridl/node.rb', line 2448
def initialize(_name, _enclosure, params)
@defined = false
@recursive = false
@forward = params[:forward] ? true : false
super(_name, _enclosure)
@idltype = IDL::Type::Struct.new(self)
end
|
Instance Attribute Details
#idltype ⇒ Object
Returns the value of attribute idltype.
2447
2448
2449
|
# File 'lib/ridl/node.rb', line 2447
def idltype
@idltype
end
|
Instance Method Details
#defined=(f) ⇒ Object
2457
|
# File 'lib/ridl/node.rb', line 2457
def defined=(f); @defined = f end
|
#instantiate(_context, _enclosure) ⇒ Object
2491
2492
2493
2494
2495
2496
2497
2498
|
# File 'lib/ridl/node.rb', line 2491
def instantiate(_context, _enclosure)
_params = {
:forward => @forward
}
_s = super(_context, _enclosure, _params)
_s.defined = self.is_defined?
_s
end
|
#is_defined? ⇒ Boolean
2456
|
# File 'lib/ridl/node.rb', line 2456
def is_defined?; @defined end
|
#is_forward? ⇒ Boolean
2458
|
# File 'lib/ridl/node.rb', line 2458
def is_forward?; @forward end
|
#is_local?(recurstk = []) ⇒ Boolean
2470
2471
2472
2473
2474
2475
2476
2477
|
# File 'lib/ridl/node.rb', line 2470
def is_local?(recurstk = [])
return false if is_forward? || recurstk.include?(self)
recurstk.push self ret = members.any? { |m| m.is_local?(recurstk) }
recurstk.pop
ret
end
|
#is_recursive? ⇒ Boolean
2459
|
# File 'lib/ridl/node.rb', line 2459
def is_recursive?; @recursive end
|
#marshal_dump ⇒ Object
2479
2480
2481
|
# File 'lib/ridl/node.rb', line 2479
def marshal_dump
super() << @idltype << @defined << @recursive << @forward
end
|
#marshal_load(vars) ⇒ Object
2483
2484
2485
2486
2487
2488
2489
|
# File 'lib/ridl/node.rb', line 2483
def marshal_load(vars)
@forward = vars.pop
@recursive = vars.pop
@defined = vars.pop
@idltype = vars.pop
super(vars)
end
|
#members ⇒ Object
2466
2467
2468
|
# File 'lib/ridl/node.rb', line 2466
def members
@children.find_all { |c| c.is_a? IDL::AST::Member }
end
|
#recursive=(f) ⇒ Object
2460
|
# File 'lib/ridl/node.rb', line 2460
def recursive=(f); @recursive = f end
|
#walk_members(&block) ⇒ Object
2462
2463
2464
|
# File 'lib/ridl/node.rb', line 2462
def walk_members(&block)
@children.each { |m| yield(m) if not m.is_a? IDL::AST::Member }
end
|