The node type created by the factory
The class of the node being constructed (for access to static properties)
The kind whose definition is to be deleted
The names of all the available kinds of nodes
The kind of node whose class is to be returned
The class object for the given kind
The node to test if it is of a given kind
The kind to test for
True if the node is of the given kind, false otherwise
Defines a class for a given node kind
The kind whose class is being defined
The class for the given kind
The Factory interface
Factory<N, C> takes a node type N and a node class C, which give the interfaces for the node instance and the node constructors. We need both for two reasons: first, you can't use typeof N to get C, since N is a type not an object, and if N has static members, we may want to access them from the results of getNodeClass(kind) (this is done in MmlNodes, for example).