def alteration_type
      skip_whitespace

      # Return immediately if varargs-type doesn't match
      return false unless varargs_type

      skip_whitespace

      # Go through enumeration of types, separated with "/" or "|"
      while @input.check(/[\/|]/)
        @out << @input.scan(/[\/|]/)

        skip_whitespace
        return false unless varargs_type
        skip_whitespace
      end

      true
    end
def alteration_type
      skip_whitespace

      # Return immediately if varargs-type doesn't match
      return false unless varargs_type

      skip_whitespace

      # Go through enumeration of types, separated with "/" or "|"
      while @input.check(/[\/|]/)
        @out << @input.scan(/[\/|]/)

        skip_whitespace
        return false unless varargs_type
        skip_whitespace
      end

      true
    end
<alteration-type> ::= <varargs-type> [ ("/" | "|") <varargs-type> ]*