ometa IndirectLeftRecursion <: Parser { digit = char:d ?(d >= '0' && d <= '9') -> d.digitValue(), number = number:n digit:d -> (10*n + d) | digit, d = char:d ?(d == '1') -> 1, x = term, term = x:t1 "+" d:f -> ['Add', t1, f] | d } IndirectLeftRecursion.matchAll('1+1+1+1', 'term')