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.