class IDL::AST::Const
Attributes
expression[R]
idltype[R]
value[R]
Public Class Methods
new(_name, _enclosure, params)
click to toggle source
Calls superclass method
IDL::AST::Leaf::new
# File lib/ridl/node.rb, line 2197 def initialize(_name, _enclosure, params) super(_name, _enclosure) @idltype = params[:type] @expression = params[:expression] @value = nil unless @idltype.is_a?(IDL::Type::ScopedName) && @idltype.is_node?(IDL::AST::TemplateParam) raise "Anonymous type definitions are not allowed!" if @idltype.is_anonymous? raise "Incomplete type #{@idltype.typename} not allowed here!" unless @idltype.is_complete? unless @expression.is_a?(IDL::Expression::ScopedName) && @expression.is_node?(IDL::AST::TemplateParam) @value = @idltype.narrow(@expression.value) end end end
Public Instance Methods
instantiate(instantiation_context, _enclosure)
click to toggle source
Calls superclass method
IDL::AST::Leaf#instantiate
# File lib/ridl/node.rb, line 2227 def instantiate(instantiation_context, _enclosure) _params = { type: @idltype.instantiate(instantiation_context), expression: @expression.instantiate(instantiation_context) } super(instantiation_context, _enclosure, _params) end
marshal_dump()
click to toggle source
Calls superclass method
IDL::AST::Leaf#marshal_dump
# File lib/ridl/node.rb, line 2212 def marshal_dump super() << @idltype << @expression end
marshal_load(vars)
click to toggle source
Calls superclass method
IDL::AST::Leaf#marshal_load
# File lib/ridl/node.rb, line 2216 def marshal_load(vars) @expression = vars.pop @idltype = vars.pop super(vars) unless @idltype.is_a?(IDL::Type::ScopedName) && @idltype.is_node?(IDL::AST::TemplateParam) unless @expression.is_a?(IDL::Expression::ScopedName) && @expression.is_node?(IDL::AST::TemplateParam) @value = @idltype.narrow(@expression.value) end end end