protected virtual XmlElement serialize(Node_Worker node) { XmlElement elem = _doc.CreateElement(node.typeName, desible1NS); append<INode_Expression>(elem, node.@face, "face"); append<Node_Worker>(elem, node.@childWorkers, "child worker"); append<Node_MemberImplementation>(elem, node.@memberImplementations, null); return elem; }
//worker public static IWorker evaluate(Node_Worker node, IScope scope, IObject owner) { IList<IWorker> children = new List<IWorker>(); foreach( Node_Worker child in node.childWorkers ) children.Add(evaluate(child, scope, owner)); WorkerBuilder builder = new WorkerBuilder( Bridge.toNativeInterface(Executor.executeAny(node.face, scope)), owner, children ); foreach( Node_MemberImplementation nmi in node.memberImplementations ) { Node_MemberType type = nmi.memberType; if( type.value == MemberType.GETTER ) builder.addPropertyGetter( nmi.name.value, Executor.executeAny(nmi.function, scope)); if( type.value == MemberType.SETTER ) builder.addPropertySetter( nmi.name.value, Executor.executeAny(nmi.function, scope)); } return builder.compile(); }