#
# 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 .
#



###
### operator-singleop
###

## Chapter 8 section 4.4

sub operator {
  my ($subpart, $op, $opfunc) = @_;

  # Build and return parser like the one above
  T(concatenate($subpart, star(T(concatenate($op,
                                             $subpart),
                                 sub {
                                   my $subpart_value = $_[1];
                                   sub { $opfunc->($_[0], $subpart_value };
                                 }),
                               )),
     sub { my ($total, $funcs) = @_;
           for my $f (@$funcs) {
             $total = $f->($total);
           }
           $total;
         }
    );

} 
