# Copyright 2022 Jeffrey Kegler
# This file is part of Marpa::R2.  Marpa::R2 is free software: you can
# redistribute it and/or modify it under the terms of the GNU Lesser
# General Public License as published by the Free Software Foundation,
# either version 3 of the License, or (at your option) any later version.
#
# Marpa::R2 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser
# General Public License along with Marpa::R2.  If not, see
# http://www.gnu.org/licenses/.

=head1 NAME

Marpa::R2::Acknowledgements - Marpa acknowledgements

=head1 Acknowledgements

Marpa is
directly derived from two other parsers.
The first was discovered by
John Aycock and
R.  Nigel Horspool
and is described in their
L<Aycock and Horspool 2002|Marpa::R2::Advanced::Bibliography/"Aycock and Horspool 2002">.
The second was discovered by Joop Leo and is described in
L<Leo 1991|Marpa::R2::Advanced::Bibliography/"Leo 1991">.
Aycock, Horspool, and Leo, in turn, based their
algorithms on the
L<algorithm discovered by Jay Earley|Marpa::R2::Advanced::Bibliography/"Earley 1970">.
I combined the Aycock-Horspool algorithm with the Leo algorithm,
and added significant changes of my own.

I'm grateful to Randal Schwartz for his support over the years that
I've been working on Marpa.
My chats with
Larry Wall have been few and brief,
but his openness to new ideas has been
a major encouragement
and his insight into the relationship between
"natural language" and computer language
has been a major influence.
More recently,
Allison Randal and Patrick Michaud have been generous with their
very valuable time.
They might have preferred that I volunteered as a Parrot cage-cleaner,
but if so, they were too polite to say.

Many at perlmonks.org answered questions for me.
I used answers from
chromatic, Corion, dragonchild,
jdporter, samtregar and Juerd,
among others,
in writing this module.
I'm just as grateful to those whose answers I didn't use.
My inquiries were made while I was thinking out the code and
it wasn't always 100% clear what I was after.
If the butt is moved after the round,
it shouldn't count against the archer.

In writing the Pure Perl version of Marpa, I benefited from studying
the work of Francois Desarmenien (C<Parse::Yapp>),
Damian Conway (C<Parse::RecDescent>) and
Graham Barr (C<Scalar::Util>).
Adam Kennedy patiently instructed me
in module writing,
both on the finer points and
on issues about which I really should have known better.

I am very grateful to a handful of early contributors,
whose contributions were made when I desperately needed help.
I am especially grateful to Ron Savage,
who has been a very aggressive early adopter
of all Marpa's versions.
Ruslan Zakirov generously
started, and agreed to moderate,
the "Marpa parser" mailing list.
Peter Stuifzand invented the "Stuifzand interface",
which was the original inspiration for the SLIF.

Ron, Peter and Ruslan Z. have since gone on to contribute
in ways too numerous to mention,
and others have joined in.
Jean-Damien Durand's numerous contributions include
the Windows port of Marpa.
Ruslan Shvedov helped with ASF's
and my documentation.
Andrew Rodland's TAP parser, with one Marpa grammar layered on
another, was another major inspiration
for the SLIF.

Finally, my thanks to all those who participated on
the "Marpa parser" mailing list.
It is hard to describe how important
informed and constructive feedback 
is to a lone laborer on
a complex and large project like Marpa,
and I greatly appreciate all the
contributors to the list.

=head1 Copyright and License

=for Marpa::R2::Display
ignore: 1

  Copyright 2022 Jeffrey Kegler
  This file is part of Marpa::R2.  Marpa::R2 is free software: you can
  redistribute it and/or modify it under the terms of the GNU Lesser
  General Public License as published by the Free Software Foundation,
  either version 3 of the License, or (at your option) any later version.

  Marpa::R2 is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser
  General Public License along with Marpa::R2.  If not, see
  http://www.gnu.org/licenses/.

=for Marpa::R2::Display::End

=cut

# Local Variables:
#   mode: cperl
#   cperl-indent-level: 4
#   fill-column: 100
# End:
# vim: expandtab shiftwidth=4:

