# # This software is Copyright 2005 by Elsevier Inc. You may use it # under the terms of the license at http://perl.plover.com/hop/LICENSE.txt . # ### ### alternate-parsers ### ## Chapter 9 section 3.2 sub alternate { my @p = @_; return parser { return () } if @p == 0; return $p[0] if @p == 1; my $parser = parser { my $input = shift; my ($v, $newinput); for (@p) { if (($v, $newinput) = $_->($input)) { return ($v, $newinput); } } return; }; }