protected static String[] readPinNames(HDLTokenizer input)
     throws HDLException {
        Vector list = new Vector();
        boolean exit = false;
        input.advance();

        while (!exit) {
            // check ';' symbol
            if (input.getTokenType() == HDLTokenizer.TYPE_SYMBOL && input.getSymbol() == ';')
                exit = true;
            else {
                // read pin name
                if (input.getTokenType() != HDLTokenizer.TYPE_IDENTIFIER)
                    input.HDLError("Pin name expected");

                String pinName = input.getIdentifier();
                list.addElement(pinName);

                // check seperator
                input.advance();
                if (!(input.getTokenType() == HDLTokenizer.TYPE_SYMBOL
                      && (input.getSymbol() == ',' || input.getSymbol() == ';')))
                    input.HDLError("',' or ';' expected");
                if (input.getTokenType() == HDLTokenizer.TYPE_SYMBOL && input.getSymbol() == ',')
                    input.advance();
            }
        }

        String[] result = new String[list.size()];
        list.toArray(result);
        return result;
    }