Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

In yacc the generator will tell you about shift reduce conflicts. Once you have debugged the grammar the parser is likely to work. With parser combinators you have no such assurance - you don't know if your grammar has loops, the parser might get stuck easily while parsing. However for a simple and regular input language like sexpr everything is fine.


In recursive descent you simply do not have any shift/reduce conflicts.


you can have left recursion, or implicit left recursion in your recursive descent grammar, if you have then the parser gets stuck while parsing a clause that contains left recursion.


Firstly, this have nothing to do with shift/reduce. Secondly, you can safely handle left-recursive grammars in Packrat (which, in turn, can be implemented with combinators).


I didn't say that left recursion has anything to do with shift reduce conflicts. Please read again.


I see, yes, you mentioned loops earlier. Anyway, it is not a problem for combinator-based parsing, just use Packrat with a left-recursive extension [1]

[1] http://www.vpri.org/pdf/tr2007002_packrat.pdf




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: