# A simple calculator in Tamsin
# Evaluates arithmetic expressions

main <- expr $;

expr <- term '+' expr { add($1, $3) }
      | term '-' expr { sub($1, $3) }
      | term { $1 };

term <- factor '*' term { mul($1, $3) }
      | factor '/' term { div($1, $3) }
      | factor { $1 };

factor <- '(' expr ')' { $2 }
        | number { $1 };

number <- /[0-9]+/ { int($1) };
