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