//interface public static IInterface evaluate(Node_Interface node, IScope scope) { IList<IInterface> inheritees = new List<IInterface>(); IList<Callee> callees = new List<Callee>(); IList<Breeder> breeders = new List<Breeder>(); IList<Property> props = new List<Property>(); IList<Method> meths = new List<Method>(); foreach( INode_Expression inherNode in node.inheritees ) inheritees.Add( Bridge.toNativeInterface( Executor.executeAny(inherNode, scope))); foreach( Node_StatusedMember sm in node.members ) { //xxx member status (sm.memberStatus) is ignored INode_InterfaceMember member = sm.member; if( member is Node_Callee ) callees.Add(evaluate(member as Node_Callee, scope)); if( member is Node_Breeder ) breeders.Add(evaluate(member as Node_Breeder, scope)); if( member is Node_Property ) props.Add(evaluate(member as Node_Property, scope)); if( member is Node_Method ) meths.Add(evaluate(member as Node_Method, scope)); } return new Interface( inheritees, callees, breeders, props, meths ); }
public Node_GenericInterface( IList<Node_ParameterInfo> @parameters, Node_Interface @interface, string @nodeSource ) { m_parameters = @parameters; m_interface = @interface; m_nodeSource = @nodeSource; }
//interface public static DependsResults dependsSplit(Node_Interface node) { DependsResults results = new DependsResults(null,null); foreach( INode_Expression inher in node.inheritees ) results.tryFinish(inher); foreach( Node_StatusedMember sm in node.members ) results.UnionWith(dependsSplitAny(sm.member)); return results; }
protected virtual XmlElement serialize(Node_Interface node) { XmlElement elem = _doc.CreateElement(node.typeName, desible1NS); append<INode_Expression>(elem, node.@inheritees, "inheritee"); append<Node_StatusedMember>(elem, node.@members, "member"); return elem; }