In fact, langcc already has visitor/traversal functions, though they are not so well documented yet. I have just added an example (expr_simpl in https://github.com/jzimmerman/langcc/blob/main/examples/calc...).
> Another suggestion is to make sure the grammar preserves source information (file, line, column span)
This is already present as well (the calc example illustrates this functionality).
> implement re-printing which preserves comments and whitespace
I considered doing this, but it's surprisingly difficult to get the specification right, especially in whitespace-sensitive languages like Python.
In fact, langcc already has visitor/traversal functions, though they are not so well documented yet. I have just added an example (expr_simpl in https://github.com/jzimmerman/langcc/blob/main/examples/calc...).
> Another suggestion is to make sure the grammar preserves source information (file, line, column span)
This is already present as well (the calc example illustrates this functionality).
> implement re-printing which preserves comments and whitespace
I considered doing this, but it's surprisingly difficult to get the specification right, especially in whitespace-sensitive languages like Python.