//------------------------------------------------------------ // コンストラクタ。 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 SemanticAnalyzeComponent( SymbolTree.ErrorInfoHolder aErrorInfoHolder , ModuleContext aModuleContext , TypeSymbolNode aTypeSymbolNode , OnSymbolNodeCreate aOnSymbolNodeCreate , ISymbolNode aPrevSymbolNode ) { ErrorInfoHolder = aErrorInfoHolder; ModuleContext = aModuleContext; TypeSymbolNode = aTypeSymbolNode; OnSymbolNodeCreateMethod = aOnSymbolNodeCreate; PrevSymbolNode = aPrevSymbolNode; }
//------------------------------------------------------------ // コンストラクタ。 public TypeSymbol(TypeSymbolNode aNode) { mType = Type.Symbol; mNode = aNode; }
//------------------------------------------------------------ // コンストラクタ。 public ModuleSymbolNode(ISymbolNode aParent, ModuleContext aModuleContext) { mTypeNode = new TypeSymbolNode(aParent, aModuleContext, aModuleContext.ModuleDef.StaticTypeDef); }