jokoon 13 hours ago

I think the book claims to be accessible and easy

The visitor pattern is not something I find simple and easy to approach

markus_zhang 2 days ago

It probably has nothing to do with recursive descent parsing, which is intuitive, but with the visitor pattern as mentioned. I myself find it very distracting too.

  • almostgotcaught 2 days ago

    .... They're the same thing....

    • ossopite 2 days ago

      What?

      The visitor pattern is a technique for dynamic dispatch on two values (typically one represents 'which variant of data are we working with' and the other 'which operation are we performing'). You would not generally use that in recursive descent parsing, because when parsing you don't have an AST yet, so 'which variant of data' doesn't make sense, you are just consuming tokens from a stream.

      • almostgotcaught 2 days ago

        > you are just consuming tokens from a stream.

        My guy... Do you think that parsers just like... concat tokens into tuples or something....??? Do you not understand that after lexing you have tokens (which are a "type") and AST node construction (an "operation") and that the grammar of a language is naturally a graph.... Like where else would you get the "recursion" from....

        If that doesn't make sense I invite you to read some literature:

        > makeAST():

        > asks the tokenizer for the next token t, and then asks t to call the appropriate factory method the int token and the id token call makeLeaf(), the left parenthesis token calls makeBinOp() all other tokens should flag an error! does the above "smell" like the visitor pattern to you or not? Who are the hosts and who are the visitors?

        https://www.clear.rice.edu/comp212/02-fall/labs/11/