class Gem::RequestSet::Lockfile::Parser

def parse_GIT # :nodoc:

:nodoc:
def parse_GIT # :nodoc:
  get :entry, 'remote'
  repository = get(:text).value
  skip :newline
  get :entry, 'revision'
  revision = get(:text).value
  skip :newline
  type = peek.type
  value = peek.value
  if type == :entry and %w[branch ref tag].include? value
    get
    get :text
    skip :newline
  end
  get :entry, 'specs'
  skip :newline
  set = Gem::Resolver::GitSet.new
  set.root_dir = @set.install_dir
  last_spec = nil
  while not @tokens.empty? and :text == peek.type do
    token = get :text
    name = token.value
    column = token.column
    case peek[0]
    when :newline then
      last_spec.add_dependency Gem::Dependency.new name if column == 6
    when :l_paren then
      get :l_paren
      token = get [:text, :requirement]
      type = token.type
      data = token.value
      if type == :text and column == 4
        last_spec = set.add_git_spec name, data, repository, revision, true
      else
        dependency = parse_dependency name, data
        last_spec.add_dependency dependency
      end
      get :r_paren
    else
      raise "BUG: unknown token #{peek}"
    end
    skip :newline
  end
  @set.sets << set
end