You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, if an extension production wants to implement a host-language dispatch signature, the rule is that the extension production must forward to a host-language production implementing the signature, sharing all the same children. This is to ensure that when an inherited equation is supplied for some child of all host-language implementations of some dispatch, then the equation will exist for all extension implementations as well.
However, I realized that this requirement (ext prods must forward to a host-language implementation) doesn't really make sense in the closed nonterminal/translation pass approach, as extension productions do not need to forward. I think instead we just want to require that any non-forwarding extension implementations supply any inherited equation that is present on all host implementations (and don't exceed the host equations' dependencies in doing so.)
This means that on closed nonterminals, we can no longer project extension inherited attributes through applications of a dispatch signature, and instead they must be supplied prior to dispatching. But I think this is acceptable, as it is somewhat analogous to the restriction for extension synthesized attributes on closed nonterminals, which must have a default equation.
The text was updated successfully, but these errors were encountered:
Currently, if an extension production wants to implement a host-language dispatch signature, the rule is that the extension production must forward to a host-language production implementing the signature, sharing all the same children. This is to ensure that when an inherited equation is supplied for some child of all host-language implementations of some dispatch, then the equation will exist for all extension implementations as well.
However, I realized that this requirement (ext prods must forward to a host-language implementation) doesn't really make sense in the closed nonterminal/translation pass approach, as extension productions do not need to forward. I think instead we just want to require that any non-forwarding extension implementations supply any inherited equation that is present on all host implementations (and don't exceed the host equations' dependencies in doing so.)
This means that on closed nonterminals, we can no longer project extension inherited attributes through applications of a dispatch signature, and instead they must be supplied prior to dispatching. But I think this is acceptable, as it is somewhat analogous to the restriction for extension synthesized attributes on closed nonterminals, which must have a default equation.
The text was updated successfully, but these errors were encountered: