pass operator precedence as data variable instead of evaluating each time