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, #select_members, #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, #unescaped_name
Constructor Details
#initialize(_name, _enclosure, params) ⇒ Struct
Returns a new instance of Struct.
2480
2481
2482
2483
2484
2485
2486
|
# File 'lib/ridl/node.rb', line 2480
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.
2479
2480
2481
|
# File 'lib/ridl/node.rb', line 2479
def idltype
@idltype
end
|
Instance Method Details
#defined=(f) ⇒ Object
2489
|
# File 'lib/ridl/node.rb', line 2489
def defined=(f); @defined = f end
|
#instantiate(_context, _enclosure) ⇒ Object
2523
2524
2525
2526
2527
2528
2529
2530
|
# File 'lib/ridl/node.rb', line 2523
def instantiate(_context, _enclosure)
_params = {
:forward => @forward
}
_s = super(_context, _enclosure, _params)
_s.defined = self.is_defined?
_s
end
|
#is_defined? ⇒ Boolean
2488
|
# File 'lib/ridl/node.rb', line 2488
def is_defined?; @defined end
|
#is_forward? ⇒ Boolean
2490
|
# File 'lib/ridl/node.rb', line 2490
def is_forward?; @forward end
|
#is_local?(recurstk = []) ⇒ Boolean
2502
2503
2504
2505
2506
2507
2508
2509
|
# File 'lib/ridl/node.rb', line 2502
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
2491
|
# File 'lib/ridl/node.rb', line 2491
def is_recursive?; @recursive end
|
#marshal_dump ⇒ Object
2511
2512
2513
|
# File 'lib/ridl/node.rb', line 2511
def marshal_dump
super() << @idltype << @defined << @recursive << @forward
end
|
#marshal_load(vars) ⇒ Object
2515
2516
2517
2518
2519
2520
2521
|
# File 'lib/ridl/node.rb', line 2515
def marshal_load(vars)
@forward = vars.pop
@recursive = vars.pop
@defined = vars.pop
@idltype = vars.pop
super(vars)
end
|
#members ⇒ Object
2498
2499
2500
|
# File 'lib/ridl/node.rb', line 2498
def members
@children.find_all { |c| c.is_a? IDL::AST::Member }
end
|
#recursive=(f) ⇒ Object
2492
|
# File 'lib/ridl/node.rb', line 2492
def recursive=(f); @recursive = f end
|
#walk_members(&block) ⇒ Object
2494
2495
2496
|
# File 'lib/ridl/node.rb', line 2494
def walk_members(&block)
@children.each { |m| yield(m) if not m.is_a? IDL::AST::Member }
end
|