Evaluate left-or-right
JavaScript (Node.js), 50 bytes

f=a=&gt;a[1]?f(a.replace(/\((.&gt;)?(.)(&lt;.)?\)/,'$2')):a

Try it online!
Repeat apply regex replace until only 1 char left. The regex /\((.&gt;)?(.)(&lt;.)?\)/ get the calculate result as 2nd capturing group.

Save 1 byte, thanks to Arnauld