internal TaskDeclarationSyntax(TextExtent extent, 
                                       CodeNamespaceDeclarationSyntax      codeNamespaceDeclaration,
                                       CodeNotImplementedDeclarationSyntax codeNotImplementedDeclaration, 
                                       CodeResultDeclarationSyntax         codeResultDeclaration, 
                                       IReadOnlyList<ConnectionPointNodeSyntax> connectionPointNodeDeclarations) 
            : base(extent) {

            AddChildNode(_codeNamespaceDeclaration  = codeNamespaceDeclaration);
            AddChildNode(_codeNotImplementedDeclaration = codeNotImplementedDeclaration);
            AddChildNode(_codeResultDeclaration         = codeResultDeclaration);
            AddChildNodes(_connectionPointNodes     = connectionPointNodeDeclarations);
        }
        internal CodeGenerationUnitSyntax(
                TextExtent extent,
                CodeNamespaceDeclarationSyntax            codeNamespaceDeclaration,
                IReadOnlyList<CodeUsingDeclarationSyntax> codeUsingDeclarations,
                IReadOnlyList<MemberDeclarationSyntax>    memberDeclarations
                ) 
            : base(extent) {
            _members = memberDeclarations;

            AddChildNode( _codeNamespace = codeNamespaceDeclaration);
            AddChildNodes(_codeUsings    = codeUsingDeclarations   );
            AddChildNodes(_members       = memberDeclarations      );
        }
		public override void PostWalkCodeNamespaceDeclaration(CodeNamespaceDeclarationSyntax codeNamespaceDeclarationSyntax) { 
			MethodsCalled["PostWalkCodeNamespaceDeclaration"]=true;
		}
		// CodeNamespaceDeclarationSyntax
		public override bool WalkCodeNamespaceDeclaration(CodeNamespaceDeclarationSyntax codeNamespaceDeclarationSyntax) { 
			MethodsCalled["WalkCodeNamespaceDeclaration"]=true;
			return true; 
		}