On 13-04-25 08:33 AM, Paul Stansifer wrote:

(For example: suppose that some statements and some expressions shared a
common prefix that had to be merged in order to make the grammar LL(1);
instead of having `stmt` and `expr` nonterminals in macros, we'd need to
split them into `most_stmt` `most_expr` and `some_stmt_and_expr`.)

That would of course be undesirable. It is not clear to me that the factorings patrick was struggling with had that property. I think both suffixes of 'unsafe' were inside $stmt (branching to sub-rules shared by $item and $expr) and both suffixes of '&' were branching to sub-rules of $ty and $pat. But I might be misreading. I agree that we want to keep relatively pithy named entrypoints in the grammar for the macro nonterminal parser to hook in at (even if they're artificial). Difficult balancing act, but I think it may be possible. Or at least it's not evident to me yet that it's not.

-Graydon

_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to