logoalt Hacker News

kryptiskttoday at 11:37 AM1 replyview on HN

You lose in versatility, then you can't add user-defined operators, which is pretty easy with a Pratt parser.


Replies

wavemodetoday at 3:39 PM

You can have user-defined operators with plain old recursive descent.

Consider if you had functions called parse_user_ops_precedence_1, parse_user_ops_precedence_2, etc. These would simply take a table of user-defined operators as an argument (or reference some shared/global state), and participate in the same recursive callstack as all your other parsing functions.