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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
 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;
 }
Example #5
0
        /// <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);
                }
            });
        }
Example #6
0
        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);
        }
Example #7
0
        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();
        }
Example #8
0
 public bool HasChildFunctions(Genero4glAst ast)
 {
     return(false);
 }
Example #9
0
 public bool HasChildFunctions(Genero4glAst ast)
 {
     return(_collections.Count > 0);
 }
Example #10
0
 public IEnumerable <MemberResult> GetMembers(Genero4glAst ast, MemberType memberType, bool function)
 {
     return(new List <MemberResult>());
 }
Example #11
0
 public IAnalysisResult GetMember(string name, Genero4glAst ast, out IGeneroProject definingProject, out IProjectEntry projEntry, bool function)
 {
     definingProject = null;
     projEntry       = null;
     return(null);
 }
Example #12
0
 public IEnumerable <MemberResult> GetMembers(Genero4glAst ast, MemberType memberType, bool function)
 {
     return(_functions.Values.Select(x => new MemberResult(x.Name, x, GeneroMemberType.Method, ast)));
 }