Trying to figure out removing left recursion in context free grammars. I'm used to certain forms, but this one has me a bit boggled.
S --> S {S} S | (A) | a
A --> {S} A | epsilon
I also have to design a decent parser, which I can do. However, figuring out this left recursion (especially on the first one) has me confused.