#include "stdafx.h" #include Delegate::Delegate( const NamespaceScopes &namespaceScopes, const std::string &name, Procedure::Kind procKind, const char *paramStr, const Type &returnType, int nowLine ) : Procedure( namespaceScopes, name, procKind, false ) { this->returnType = returnType; params.Analyze( paramStr, nowLine ); } void Delegates::Collect( const BasicSource &source ) { int i2; char temporary[VN_SIZE]; // 名前空間管理 NamespaceScopes &namespaceScopes = compiler.GetNamespaceSupporter().GetLivingNamespaceScopes(); namespaceScopes.clear(); // Importsされた名前空間の管理 NamespaceScopesCollection &importedNamespaces = compiler.GetNamespaceSupporter().GetImportedNamespaces(); importedNamespaces.clear(); for( int i=0; iPut( new Delegate( namespaceScopes, name, procKind, paramStr, returnType, nowLine ) ); } } } void Delegates::GenerateSourceCode( std::string &destSource ) { destSource = ""; SourceTemplate sourceTemplate( "\\SubOperation\\templates\\delegate_class.tab" ); this->Iterator_Reset(); while( this->Iterator_HasNext() ) { const Delegate &dg = *this->Iterator_GetNext(); std::map values; values.insert( std::map::value_type( "name", dg.GetName() ) ); values.insert( std::map::value_type( "params", "" ) ); destSource += sourceTemplate.GetResult( values ); } }