Exemple #1
0
 def relName(self, environment):
     """relName(id.Name, id.Environment): string list
        Returns a list of the name components essential to making
        the name unambiguous"""
     rscope = idlutil.relativeScope(environment.scope(), self._scopedName)
     if rscope and rscope[0] is None:
         return None
     else:
         return rscope
Exemple #2
0
def relativeScope(fromScope, destScope):
    """relativeScope variant that handles invented fromScopes"""
    rs = idlutil.relativeScope(fromScope, destScope)

    if rs[0] is None:
        try:
            rd = idlast.findDecl(destScope)

        except idlast.DeclNotFound:
            return rs

        new_rs = rs
        while new_rs[0] is None and len(fromScope) > 1:
            fromScope = fromScope[:-1]
            new_rs = idlutil.relativeScope(fromScope, destScope)

        if new_rs[0] is not None:
            return new_rs

    return rs
Exemple #3
0
def relativeScope(fromScope, destScope):
    """relativeScope variant that handles invented fromScopes"""
    rs = idlutil.relativeScope(fromScope, destScope)

    if rs[0] is None:
        try:
            rd = idlast.findDecl(destScope)

        except idlast.DeclNotFound:
            return rs

        new_rs = rs
        while new_rs[0] is None and len(fromScope) > 1:
            fromScope = fromScope[:-1]
            new_rs = idlutil.relativeScope(fromScope, destScope)

        if new_rs[0] is not None:
            return new_rs

    return rs
Exemple #4
0
 def needFlatName(self, environment):
     # does the name have scope :: qualifiers?
     rscope = idlutil.relativeScope(environment.scope(), self._scopedName)
     return len(rscope) > 1