Reduce will reduce the elems and nonTerminals stacks using the available reducers and return
those slices modified to contain the reduced expressions. The elems will contain the reduced
expression the the nonTerminals will contain the modified stack of nonTerminals yet to be reduced.