Talk:Tail recursive parser

I can find very little web information on this subject, I hope someone finds it useful. I find it to be an interesting parsing method that is not discussed as much. I used it for a science fair project, and the result turned out quite nice, and pretty simple.

Okay, I changed this page to be a little less overly complex. Thanks to ard on #dhell of dynamichell.org for helping me with the sentences.

Merge into recursive descent parser
I don't see any reason for this to be it's own article. This is a common optimization that the dragon book doesn't bother to give a distinct name. Even the recursive descent parser article's implementation uses this technique. I don't see anything interesting in the Dr. Dobb's article that isn't already covered in the dragon book. 15.227.137.69 21:50, 16 February 2007 (UTC)

This is a common technique
Which is the reason for the repetition in the EBNF notation in the first place.

Stupid and ambiguous grammar
The grammar is a) stupid and b) ambiguous. Either you do normal left-recursion for such operator-expressions: F → F + I | I or you use the LL(k)-compatible workaround: F → I (+ I)* But the example does not make sense… Could you explain it?

--Chricho (talk) 13:06, 11 September 2010 (UTC)

Source code
The source code that's provided on the page besides demonstrating functionality does a few other things, like using system to invoke gcc on generated code, compiling a binary that only prints the result of parsing. It also contains commented unused code and information/statements in a language other than english. As such, it does not succinctly demonstrate the capabilities of the parser and that is why I reverted the edit in the first place. I think the best solution is to just leave an outline of the code unless someone wants to clean it up. Dithpri (talk) 15:47, 3 June 2019 (UTC)

Tail recursive example with a language not eliminating tail recursion
What sense does it make to use a language, which does not eliminate tail recursion, to illustrate a tail recursive algorithm? Ceving (talk) 08:42, 26 March 2021 (UTC)