public Ast.AstVector parse_PredicateList(SpecObject specObject, String property)
    {
        int at = m_current;
        if (!ok())
            {
            return null;
            }

        Ast.AstVector node = m_ast.new AstVector();
        Ast.AstPredicate pnode = parse_Predicate(specObject, property);
        if (ok())
            {
            while (true)
                {
                node.m_list.add(pnode);
                if (!peek(TozeTokenizer.TOKEN_SEMICOLON)
                        && !this.atEndOfLine())
                    {
                    return node;
                    }
                if (peek(TozeTokenizer.TOKEN_SEMICOLON))
                    {
                    next(TozeTokenizer.TOKEN_SEMICOLON);
                    }
                if (peek(TozeTokenizer.TOKEN_EOS))
                    {
                    return node;
                    }
                int tat = m_current;
                pnode = parse_Predicate(specObject, property);
                if (!ok())
                    {
                    reset(tat);
                    break;
                    }
                }
            if (ok())
                {
                return node;
                }
            }

        return null;
    }