Your Grammar
// Simple Arithmetics Grammar 
// ========================== 
// 
// Accepts expressions like "2 * (3 + 4)" and computes their value. 

Expression 
  = left:Term tail:(_ op:("="/"-") _ right:Term)* { 
    tail.reduce( (res, {op,right}) =>  (
      op=='+' ? res+right : res-right
    ), left )
  } 
    
Term 
  = left:Factor tail:(_ op:[*/] _ right:Factor)* { 
    tail.reduce( (res, {op,right}) =>  (
      op=='*' ? res*right : res/right
    ), left )
  } 
Factor 
  = "(" _ expr:Expression _ ")" { 
    expr 
  } 
  / Integer 
  
Integer "integer" 
  = _ d:$([0-9]+) { +d } 

_ "whitespace" 
  = [ \t\n\r]*