public IAnalysisResult GetMember(string name, Genero4glAst ast, out IGeneroProject definingProject, out IProjectEntry projEntry, bool function) { definingProject = null; projEntry = null; TestFunctionCollection collection = null; _collections.TryGetValue(name, out collection); return(collection); }
public IAnalysisResult GetMember(string name, Genero4glAst ast, out IGeneroProject definingProject, out IProjectEntry projEntry, bool function) { definingProject = null; var res = GetMemberOfType(name, ast, true, true, true, true, out projEntry); if (projEntry != null && projEntry is IGeneroProjectEntry) { definingProject = (projEntry as IGeneroProjectEntry).ParentProject; } return(res); }
protected override GeneroAst CreateAst() { ModuleNode moduleNode = null; if (ModuleNode.TryParseNode(this, out moduleNode)) { var ast = new Genero4glAst(moduleNode, _tokenizer.GetLineLocations(), GeneroLanguageVersion.None, _projectEntry, _filename); UpdateNodeAndTree(moduleNode, ast); return(ast); } return(null); }
public ExtractedMethodCreator(Genero4glAst ast, /*ScopeStatement[] scopes, HashSet<PythonVariable> inputVariables, HashSet<PythonVariable> outputVariables, SelectionTarget target,*/ int indentSize, bool insertTabs, string newline) { _ast = ast; //_scopes = scopes; //_inputVars = new List<PythonVariable>(inputVariables); //_outputVars = new List<PythonVariable>(outputVariables); //_inputVars.Sort(CompareVariables); //_outputVars.Sort(CompareVariables); //_target = target; _indentSize = indentSize; _insertTabs = insertTabs; _newline = newline; }
/// <summary> /// Parses the specified file on disk. /// </summary> /// <param name="filename"></param> public void EnqueueFile(IProjectEntry projEntry, string filename) { var severity = Severity.Ignore; EnqueWorker(() => { for (int i = 0; i < 10; i++) { try { if (!File.Exists(filename)) { break; } using (var reader = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete)) { _parser.ParseFile(projEntry, filename, reader, severity); return; } } catch (IOException) { // file being copied, try again... Thread.Sleep(100); } catch (UnauthorizedAccessException) { // file is inaccessible, try again... Thread.Sleep(100); } } IGeneroProjectEntry gEntry = projEntry as IGeneroProjectEntry; IAnalysisCookie cookie = null; Genero4glAst node = null; if (gEntry != null) { // failed to parse, keep the UpdateTree calls balanced gEntry.UpdateTree(node, cookie); } }); }
public IEnumerable <MemberResult> GetMembers(Genero4glAst ast, MemberType memberType, bool function) { string projNamespace = string.Format("{0}", this.Name); List <MemberResult> members = new List <MemberResult>(); foreach (var projEntry in ProjectEntries) { if (projEntry.Value.Analysis != null && projEntry.Value.Analysis.Body != null) { projEntry.Value.Analysis.Body.SetNamespace(projNamespace); IModuleResult modRes = projEntry.Value.Analysis.Body as IModuleResult; if (modRes != null) { if (memberType.HasFlag(MemberType.Variables)) { members.AddRange(modRes.GlobalVariables.Select(x => new MemberResult(x.Key, x.Value, GeneroMemberType.Variable, ast))); members.AddRange(modRes.Variables.Where(x => x.Value.IsPublic).Select(x => new MemberResult(x.Key, x.Value, GeneroMemberType.Variable, ast))); } if (memberType.HasFlag(MemberType.Types)) { members.AddRange(modRes.GlobalTypes.Select(x => new MemberResult(x.Key, x.Value, GeneroMemberType.Class, ast))); members.AddRange(modRes.Types.Where(x => x.Value.IsPublic).Select(x => new MemberResult(x.Key, x.Value, GeneroMemberType.Class, ast))); } if (memberType.HasFlag(MemberType.Constants)) { members.AddRange(modRes.GlobalConstants.Select(x => new MemberResult(x.Key, x.Value, GeneroMemberType.Constant, ast))); members.AddRange(modRes.Constants.Where(x => x.Value.IsPublic).Select(x => new MemberResult(x.Key, x.Value, GeneroMemberType.Constant, ast))); } if (memberType.HasFlag(MemberType.Functions)) { members.AddRange(modRes.Functions.Where(x => x.Value.IsPublic).Select(x => new MemberResult(x.Key, x.Value, GeneroMemberType.Method, ast))); } } } } return(members); }
private async void buttonReloadContexts_Click(object sender, EventArgs e) { bool success = await Genero4glAst.ReloadContextMap(); if (success) { labelReloadResult.Text = "Reload succeeded!"; labelReloadResult.ForeColor = Color.DarkGreen; labelReloadResult.Visible = true; } else { labelReloadResult.Text = "Reload failed."; labelReloadResult.ForeColor = Color.DarkRed; labelReloadResult.Visible = true; } _timer = new Timer(); _timer.Interval = 5000; _timer.Tick += _timer_Tick; _timer.Start(); }
public bool HasChildFunctions(Genero4glAst ast) { return(false); }
public bool HasChildFunctions(Genero4glAst ast) { return(_collections.Count > 0); }
public IEnumerable <MemberResult> GetMembers(Genero4glAst ast, MemberType memberType, bool function) { return(new List <MemberResult>()); }
public IAnalysisResult GetMember(string name, Genero4glAst ast, out IGeneroProject definingProject, out IProjectEntry projEntry, bool function) { definingProject = null; projEntry = null; return(null); }
public IEnumerable <MemberResult> GetMembers(Genero4glAst ast, MemberType memberType, bool function) { return(_functions.Values.Select(x => new MemberResult(x.Name, x, GeneroMemberType.Method, ast))); }