I have the following grammar which I need to make LL(1) compatible. E -> A | BA -> A op1 T | TT -> T op2 F | FF -> ( A ) | vB -> B lop B2 | B2B2 -> A rop A | ( B )op1 -> + | -op2 -> * | /rop -> > | < | == | <= | >=lop -> AND | ORSo far I have been able to remove the left recursionE -> A | BA -> T A2A2 -> op1 T A2 | eT -> F T2T2 -> op2 F T2 | eF -> ( A ) | vB -> B2 B3B3 -> lop B2 B3 | eB2 -> A rop A | (B)op1 -> + | -op2 -> * | /rop -> > | < | == | <= | >=lop -> AND | ORWhere e is the null string. Now after this I can't figure out how to make it LL(1) compatible.(This is a homework problem. Any help would be appreciated)EDIT: My main issue is when an opening parenthesis is encountered at E, with one lookahead I can't decide if the ruleE -> A should be followed or the rule E -> B This is because they both derive strings starting with an opening parenthesis. I am not able to figure out how to remove this problem.
Trying to make a grammar LL(1)
compiler