//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;
        }
Exemple #3
0
 //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;
 }