def full_qualified(pkg, symbols):
    """
    パッケージ名と、文字列表記されたシンボルのリスト(このEus_pkgクラスと対応するEuslispのパッケージ以外のシンボルが含まれていても良い)を受け取る。
    対応するパッケージ内のシンボルのみを取り出し、それぞれパッケージ接頭語(大文字)をつけ、リストにして返す。

    >>> full_qualified("TEST", ['var1', 'OTHER-PACK::var2', 'LISP::var3'])
    ['TEST::var1', 'LISP::var3']

    Args:
        pkg (str): パッケージ名。大文字表記でprefixなしのもの。
        symbols (list): 文字列表記されたシンボルのリスト。パッケージ名は小文字表記でも大文字表記で登録されていても良い。(['test::tmp']でも、['TEST::tmp']でも可)
    Returns:
        result (list): 文字列表記されたシンボルのリスト。
    """
    result = []
    for symbol in symbols:
        if '::' in symbol:
            pkg_of_symbol , suffix_of_symbol = symbol.split('::')    # ここは'user'や'test'といった小文字表記で返ってくることがほとんど
            pkg_of_symbol = pkg_of_symbol.upper()
            symbol = pkg_of_symbol + '::' + suffix_of_symbol
        elif ':' in symbol:
            pkg_of_symbol , suffix_of_symbol = symbol.split(':')    # ここは'compiler'といった小文字表記がほとんどだろう。compiler:identifierはCOMPILER:identifierなるシンボルになる
            pkg_of_symbol = pkg_of_symbol.upper()
            symbol = pkg_of_symbol + ':' + suffix_of_symbol                        
        else:
            pkg_of_symbol = pkg
            symbol = pkg_of_symbol + '::' + symbol
        
        # LISP packageの組み込み関数などはパッケージ接頭語なしに使えるようになっている。この特定のパッケージ内からもあたかもパッケージ内の関数かのように使えるようにする。
        if pkg_of_symbol == pkg or pkg_of_symbol == "LISP":
            result.append(symbol)    # cls_pkg(大文字) + '::' or ':' + cls_name
    return result