ENTRY
  {
    author
  }
  {}
  { label }

INTEGERS { nameptr namesleft numnames }

STRINGS { s t }

FUNCTION {format.names}
{ 's :=
  #1 'nameptr :=
  s num.names$ 'numnames :=
  numnames 'namesleft :=
  { namesleft #0 > }
    {
      s nameptr "{ff}|{vv}|{ll}|{jj}" format.name$ write$ newline$
      s nameptr "{f}|{v}|{l}|{j}" format.name$ write$ newline$
      s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ write$ newline$
      s nameptr "{f~}{vv~}{ll}{, jj}" format.name$ write$ newline$
      namesleft #1 - 'namesleft :=
      nameptr #1 + 'nameptr :=
    }
  while$
}

FUNCTION {format.authors}
{ author empty$
    { "" }
    { author format.names }
  if$
}

READ

ITERATE {format.authors}
