private string FindSelfNames()
 {
     if (Body is SuiteStatement stmts)
     {
         foreach (Statement stmt in stmts.Statements)
         {
             if (stmt is FunctionDefinition def && def.Name == "__init__")
             {
                 return(string.Join(",", SelfNameFinder.FindNames(def)));
             }
         }
     }
     return(string.Empty);
 }
            public static string[] FindNames(FunctionDefinition function)
            {
                var parameters = function.Parameters;

                if (parameters.Count == 0)
                {
                    // no point analyzing function with no parameters
                    return(ArrayUtils.EmptyStrings);
                }

                var finder = new SelfNameFinder(function, parameters[0]);

                function.Body.Walk(finder);
                return(ArrayUtils.ToArray(finder._names.Keys));
            }
Beispiel #3
0
        private string FindSelfNames()
        {
            SuiteStatement stmts = Body as SuiteStatement;

            if (stmts == null)
            {
                return("");
            }

            foreach (Statement stmt in stmts.Statements)
            {
                if (stmt is FunctionDefinition def && def.Name == "__init__")
                {
                    return(string.Join(",", SelfNameFinder.FindNames(def)));
                }
            }
            return("");
        }
            public static string[] FindNames(FunctionDefinition function) {
                var parameters = function.Parameters;

                if (parameters.Count > 0) {
                    SelfNameFinder finder = new SelfNameFinder(function, parameters[0]);
                    function.Body.Walk(finder);
                    return ArrayUtils.ToArray(finder._names.Keys);
                } else {
                    // no point analyzing function with no parameters
                    return ArrayUtils.EmptyStrings;
                }
            }
Beispiel #5
0
            public static string[] FindNames(FunctionDefinition function) {
                Parameter[] parameters = function.Parameters;

                if (parameters.Length > 0) {
                    SelfNameFinder finder = new SelfNameFinder(function, parameters[0]);
                    function.Body.Walk(finder);
                    return SymbolTable.IdsToStrings(new List<SymbolId>(finder._names.Keys));
                } else {
                    // no point analyzing function with no parameters
                    return ArrayUtils.EmptyStrings;
                }
            }