Expressão booleana de análise sem recursão da mão esquerda

Estou tentando corresponder isso

f(some_thing) == 'something else'
f (alguma coisa) é uma chamada de função, que é uma expressão== é um operador booleano'algo mais' é uma string, que também é uma expressão

então a expressão booleana deve ser

expression operator expression

O problema é que não consigo descobrir como fazer isso sem recursão à esquerda Essas são as minhas regras

expression 
  = 
  bool_expression
  / function_call
  / string
  / real_number
  / integer
  / identifier

bool_expression
  = l:expression space* op:bool_operator space* r:expression 
  { return ... }

Usando a notação gramatical, tenho

O := ==|<=|>=|<|>|!=  // operators
E := B|....           // expression, many non terminals
B := EOE

Porque a minha gramática é EOE eu não sei como usar o algoritmo da esquerda que é

A := Ab|B
transforms into
A := BA'
A':= e|bA

Onde e está vazio eb é um terminal

questionAnswers(1)

yourAnswerToTheQuestion