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)); }
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; } }
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; } }