Allow send endpoints to be normal children (not restricted to NTAs)
Currently, only an NTA can be a send endpoint (and this NTA has to be defined in the grammar). To allow for an easier setup, normal children should be allowed as send endpoints as well (similar to tokens being allowed).
However, a new change/dependency tracking has to be added in order to notify the endpoint on all changes within its subtree which includes recomputed NTAs contained in this subtree. This can be realized using (mostly simple) notifications propagating changes up in the tree until they "reach" the endpoint.
List of actions to trigger such a notification:
- call of
setChild
,setParent
,removeChild
,setX
(whereX
is a token) in the endpoint or one of its (transitive) children - change somewhere in the AST leading to invalidation of an NTA within the subtree of the endpoint
With the changes introduced in https://bitbucket.org/jastadd/jastadd2/issues/329/add-event-for-completion-of-flush, this could be realized by listening to INC_FLUSH_START
on any node of the subtree, and some similar mechanism for NTAs.