Tail recursive parser

In computer science, tail recursive parsers are a derivation from the more common recursive descent parsers.

They use a smaller amount of stack space than regular recursive descent parsers.

Typical recursive descent parsers make parsing left recursive grammars impossible (because of an infinite loop problem).

Tail recursive parsers use a node reparenting technique that makes this allowable.

The typical algorithm for parsing a grammar like this using an abstract syntax tree is: A basic example of this kind of parser in C is shown here.