//compound //xxx may want to remove references to global identikeys (optimization) public static HashSet<Identifier> depends(Node_Compound node) { HashSet<Identifier> idents = unionChildDepends(node); foreach( INode_Expression member in node.members ) { if( member is Node_DeclareAssign ) idents.Remove( (member as Node_DeclareAssign).name.value ); else if( member is Node_DeclareEmpty ) idents.Remove( (member as Node_DeclareEmpty).name.value ); } return idents; }
protected virtual XmlElement serialize(Node_Compound node) { XmlElement elem = _doc.CreateElement(node.typeName, desible1NS); append<INode_Expression>(elem, node.@exposes, "expose"); append<INode_StatementDeclaration>(elem, node.@declarations, "declaration"); append<INode_Expression>(elem, node.@members, "member"); return elem; }
public static void reserve( Node_Compound node, IScope scope ) { foreach(INode_Expression child in node.members) reserveAny(child, scope); }