Re:Where is the CRDT for syntax trees
by int0x80 on Friday December 03, 2021 @07:07PM
(#29437236)
Do you have an example of a language that parses different because of dependencies?
[ Parent
| on HN ]
Languages with user-defined operators with user-defined precedence, like Haskell.
Languages with user-defined subgrammars, like Raku (Perl 6).
Languages with declaration-dependent ambiguity resolution, like C++ (https://en.wikipedia.org/wiki/Most_vexing_parse).
Sure, just plain C can wreck any kind of parsing with its macros.
Technically the parsing itself and the grammar are the same, they don't depend on defined macros. Yes, defining a macro in an included file can make the resulting AST change, but the parsing algorithm doesn't really care about it.
Re:Where is the CRDT for syntax trees
by chriswarbo on Friday December 03, 2021 @07:25PM
(#29437382)
Unfortunately, text-substitution macros (like CPP) pretty much force a source file to be treated as a stream of bytes. They can be handy, but delimited macros (e.g. like Lisps) are much less invasive.