class IDL::AST::Enumerator
def initialize(_name, _enclosure, params)
def initialize(_name, _enclosure, params) super(_name, _enclosure) @idltype = IDL::Type::ULong.new @enum = params[:enum] @value = params[:value] @enum.add_enumerator(self) end
def instantiate(instantiation_context, _enclosure)
def instantiate(instantiation_context, _enclosure) # find already instantiated Enum parent _enum = _enclosure.resolve(@enum.name) raise "Unable to resolve instantiated Enum scope for enumerator #{@enum.name}::#{name} instantiation" unless _enum super(instantiation_context, _enclosure, { enum: _enum, value: @value }) end
def marshal_dump
def marshal_dump super() << @idltype << @enum << @value end
def marshal_load(vars)
def marshal_load(vars) @value = vars.pop @enum = vars.pop @idltype = vars.pop super(vars) end