###########################################
package MathParser;
###########################################
use MathLexer;
use strict;
use warnings;

###########################################
sub new {
###########################################
    my($class, $parser) = @_;

    my $self = {
        parser => $parser
    };

    bless $self, $class;
}

###########################################
sub parse {
###########################################
  my($self, $str, $debug) = @_;

  my $lexer = MathLexer->new($str);

  my $result = $self->{parser}->YYParse(
    yylex   => sub { $lexer->next(); },
    yyerror => sub { die "Error" },
    yydebug => $debug ? 0x1F : undef,
  );
}

1;
