Пример #1
0
def identifier_in(arg: Union[Code, Element, str], collection_of_str):
    if isinstance(arg, str):
        name, syntactic_extra, semantic_extra = Identifier.split_name(arg)
        for itm in collection_of_str:
            equal_to_name, equal_to_semantic_extra = Identifier.split_name(itm)
            if _identifier_eq(name, semantic_extra, equal_to_name, equal_to_semantic_extra ):
                return True
        return False
    else:
        if arg is None: return False
        code = get_code(arg)
        return any(is_identifier(code, name) for name in collection_of_str)
Пример #2
0
def identifier_in(arg: Union[Code, Element, str], collection_of_str):
    if isinstance(arg, str):
        name, syntactic_extra, semantic_extra = Identifier.split_name(arg)
        for itm in collection_of_str:
            equal_to_name, equal_to_semantic_extra = Identifier.split_name(itm)
            if _identifier_eq(name, semantic_extra, equal_to_name,
                              equal_to_semantic_extra):
                return True
        return False
    else:
        if arg is None: return False
        code = get_code(arg)
        return any(is_identifier(code, name) for name in collection_of_str)
Пример #3
0
def is_identifier(code_or_element: Union[Code, Element],
                  name: str = None) -> bool:
    if code_or_element is None: return False
    code = get_code(code_or_element)
    if name is None:
        return isinstance(code, Identifier)
    else:
        if not isinstance(code, Identifier): return False
        name, semantic_extra = Identifier.split_name(name)
        return _identifier_eq(code.name, code.semantic_name, name,
                              semantic_extra)
Пример #4
0
def is_identifier(
        code_or_element: Union[Code, Element],
        name:str=None
        ) -> bool:
    if code_or_element is None: return False
    code = get_code(code_or_element)
    if name is None:
        return isinstance(code, Identifier)
    else:
        if not isinstance(code, Identifier): return False
        name, semantic_extra = Identifier.split_name(name)
        return _identifier_eq(code.name, code.semantic_name, name, semantic_extra)