File: globals.py

package info (click to toggle)
gnat-gps 18-5
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 45,716 kB
  • sloc: ada: 362,679; python: 31,031; xml: 9,597; makefile: 1,030; ansic: 917; sh: 264; java: 17
file content (24 lines) | stat: -rw-r--r-- 818 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
"""This script shows how to compute the list of global entities in a whole
   application, in a project or in a source file"""

from GPS import Project, File


def global_entities(where=None):
    """Return all global entities in where, which should either be an instance
       of GPS.File, GPS.Project, or None. In the latter case, all global
       entities in the application are returned"""
    result = []
    if not where:
        for p in Project.root().dependencies(recursive=True):
            result.extend(global_entities(p))

    elif isinstance(where, Project):
        for s in where.sources():
            result.extend(global_entities(s))

    elif isinstance(where, File):
        for e in where.entities():
            if e.attributes()["global"]:
                result.append(e)
    return result