public Ast.AstPrefixGenericName parse_PrefixGenericName()
    {
        int at = m_current;
        if (!ok())
            {
            return null;
            }

        // PrefixGenericName : PrefixGenericSymbol Decoration

        if (peek(TozeTokenizer.TOKEN_PSETONE)
                || peek(TozeTokenizer.TOKEN_FSETONE)
                || peek(TozeTokenizer.TOKEN_ID)
                || peek(TozeTokenizer.TOKEN_SEQ)
                || peek(TozeTokenizer.TOKEN_SEQONE)
                || peek(TozeTokenizer.TOKEN_ISEQ)
                || peek(TozeTokenizer.TOKEN_BAG))
            {
            Ast.AstPrefixGenericName node = m_ast.new AstPrefixGenericName();
            node.m_token = nextToken();
            node.m_decoration = parse_Decorations();
            if (ok())
                {
                return node;
                }
            }

        return null;
    }