def finalize!
      return if finalized?

      modifiers.each do |modifier|
        modifier.type.each_with_index do |type, i|
          case type
          when :endian, :signedness, :precision, :type, :string_type
            tags[type] = modifier.value[i]
          when :size
            tags[:size] = modifier.value[i] unless tags[:size]
          else
            raise UnknownModifierError,
              "Unknown modifier: #{type}"
          end
        end
      end

      @finalized = true
      cache_string
    end
def finalize!
      return if finalized?

      modifiers.each do |modifier|
        modifier.type.each_with_index do |type, i|
          case type
          when :endian, :signedness, :precision, :type, :string_type
            tags[type] = modifier.value[i]
          when :size
            tags[:size] = modifier.value[i] unless tags[:size]
          else
            raise UnknownModifierError,
              "Unknown modifier: #{type}"
          end
        end
      end

      @finalized = true
      cache_string
    end
Finalizes the directive.

 @return [void]