When a node is declared that has an attribute that is not initialized, the resulting constructor does not emit a colon. This missing colon generated a syntax error.
The problem is in the NeedsColon() function. It does not take into account whether the parent node has an attribute that needs to be constructed.
This has been resolved. I counted the number of parameters in a node's constructor and if the parent constructor has parameters, then I need a colon for this parent constructor.
When a node is declared that has an attribute that is not initialized, the resulting constructor does not emit a colon. This missing colon generated a syntax error.
The problem is in the NeedsColon() function. It does not take into account whether the parent node has an attribute that needs to be constructed.