//------------------------------------------------------------ // コンストラクタ。 public FunctionSymbolNode( TypeSymbolNode aParent , ModuleContext aModuleContext , MemberFunctionDecl aFunctionDecl ) { mParent = aParent; mModuleContext = aModuleContext; mFunctionDecl = aFunctionDecl; // TypeInfo生成 {// 戻り値 FunctionReturnValueDecl retValDecl = aFunctionDecl.ReturnValueDecl; mReturnTypeInfo = createTypeInfo( retValDecl.TypePath , retValDecl.IsConst , false // isIn , retValDecl.IsRef ); } {// 引数 mArgTypeInfos = new List <ArgTypeInfo>(); foreach (FunctionArgumentDecl argDecl in aFunctionDecl.ArgDeclList) { mArgTypeInfos.Add(new ArgTypeInfo(argDecl.Ident, createTypeInfo( argDecl.TypePath , argDecl.IsConst , argDecl.IsIn , argDecl.IsRef ))); } } }
//------------------------------------------------------------ // メンバ関数の宣言としてコンストラクトする。 public SymbolDef(MemberFunctionDecl aMF) { SymbolKind = Kind.MemberFunctionDecl; MemberFunctionDecl = aMF; }