class IDL::Delegator
def parse_literal(_typestring, _value)
def parse_literal(_typestring, _value) k = Expression::Value case _typestring when :boolean k.new(Type::Boolean.new, _value) when :integer _type = [ Type::Octet, Type::TinyShort, Type::Short, Type::Long, Type::LongLong, Type::UTinyShort, Type::ULongLong ].detect { |t| t::Range === _value } if _type.nil? raise "it's not a valid integer: #{v.to_s}" end k.new(_type.new, _value) when :string k.new(Type::String.new, _value) when :wstring k.new(Type::WString.new, _value) when :char k.new(Type::Char.new, _value) when :wchar k.new(Type::WChar.new, _value) when :fixed k.new(Type::Fixed.new, _value) when :float k.new(Type::Float.new, _value) else raise ParseError, "unknown literal type: #{type}" end end