Exemplo n.º 1
0
 /// <summary>
 /// Convert ProtoCore.DSASM.AccessSpecifier to MemberType.Public, MemberType.Private or MemberType.Protected
 /// </summary>
 /// <param name="access"></param>
 /// <returns></returns>
 private static MemberType AccessToMemberType(ProtoCore.DSASM.AccessSpecifier access)
 {
     if (access == ProtoCore.DSASM.AccessSpecifier.kPublic)
     {
         return(MemberType.Public);
     }
     else if (access == ProtoCore.DSASM.AccessSpecifier.kProtected)
     {
         return(MemberType.Protected);
     }
     else
     {
         return(MemberType.Private);
     }
 }
Exemplo n.º 2
0
        private static List <KeyValuePair <int, ProtoCore.DSASM.ProcedureNode> > GetConstructors(int classIndex, string function, ScopeInfo si)
        {
            ProtoCore.DSASM.ClassNode       cn     = compileState.ClassTable.ClassNodes[classIndex];
            ProtoCore.DSASM.AccessSpecifier access = GetAccessLevel(si.ClassScope, classIndex);
            List <KeyValuePair <int, ProtoCore.DSASM.ProcedureNode> > functionList = new List <KeyValuePair <int, ProtoCore.DSASM.ProcedureNode> >();

            if (cn.vtable == null)
            {
                return(functionList);
            }
            foreach (ProtoCore.DSASM.ProcedureNode pn in cn.vtable.procList)
            {
                if (pn.name == function && pn.isConstructor && access >= pn.access)
                {
                    functionList.Add(new KeyValuePair <int, ProtoCore.DSASM.ProcedureNode>(classIndex, pn));
                }
            }

            // no need to search base constructors,

            return(functionList);
        }