public ProcedureNode GetFirstStaticFunctionBy(string procName, int argCount) { if (ProcTable == null) { return(null); } ProcedureNode procNode = ProcTable.GetFunctionsByNameAndArgumentNumber(procName, argCount) .Where(p => p.IsStatic) .FirstOrDefault(); if (procNode != null) { return(procNode); } foreach (int baseClassIndex in Bases) { var baseClass = TypeSystem.classTable.ClassNodes[baseClassIndex]; procNode = baseClass.GetFirstStaticFunctionBy(procName, argCount); if (null != procNode) { break; } } return(procNode); }
public ProcedureNode GetFirstConstructorBy(string procName, int argCount) { if (ProcTable == null) { return null; } return ProcTable.GetFunctionsByNameAndArgumentNumber(procName, argCount) .Where(p => p.IsConstructor) .FirstOrDefault(); }
public ProcedureNode GetFirstMemberFunctionBy(string procName, int argCount) { if (ProcTable == null) { return null; } ProcedureNode procNode = ProcTable.GetFunctionsByNameAndArgumentNumber(procName, argCount).FirstOrDefault(); if (procNode != null) { return procNode; } if (Base != Constants.kInvalidIndex) { var baseClass = TypeSystem.classTable.ClassNodes[Base]; procNode = baseClass.GetFirstMemberFunctionBy(procName, argCount); } return procNode; }