Beispiel #1
0
        //------------------------------------------------------------
        // コンストラクタ。
        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
                                                          )));
                }
            }
        }
Beispiel #2
0
 //------------------------------------------------------------
 // メンバ関数の宣言としてコンストラクトする。
 public SymbolDef(MemberFunctionDecl aMF)
 {
     SymbolKind         = Kind.MemberFunctionDecl;
     MemberFunctionDecl = aMF;
 }