> (cur = op, next = value[subexp], setright)> [*]> / \> a SE> |> +> / \> b c>>> So...after all that...>> What in the world is this method of expression parsing called?

It's LL(1).

But what you're doing is rewriting the tree in order to take into
account operator priority. You would not have to do that if your syntax
was suitable to be directly parsed with LL(1). For instance in terms of
lisp syntax :

(+ a (* b (++ c))

Or with operators in the middle :

(a + (b * (c ++))

Please notice that parenthesis are required and forgeting them will be a
syntax error. In that case the syntax directly represent the LL(1)
parsable tree, so no need to do some rewriting. However deducing the
priority without parenthesis require a little more work.

I'm using same "trick" as you for the Neko compiler (seehttp://nekovm.org) and I guess it's a good way of doing it.