//-----------------------------------------------------------------------------
// COPYRIGHT  (c)  1997 
// THE REGENTS OF THE UNIVERSITY OF MICHIGAN
// ALL RIGHTS RESERVED
// 
// PERMISSION IS GRANTED TO USE, COPY, CREATE DERIVATIVE WORKS 
// AND REDISTRIBUTE THIS SOFTWARE AND SUCH DERIVATIVE WORKS FOR 
// ANY PURPOSE, SO LONG AS NO FEE IS CHARGED, AND SO LONG AS 
// THE COPYRIGHT NOTICE ABOVE, THIS GRANT OF PERMISSION, AND 
// THE DISCLAIMER BELOW APPEAR IN ALL COPIES MADE; AND SO LONG 
// AS THE NAME OF THE UNIVERSITY OF MICHIGAN IS NOT USED IN ANY 
// ADVERTISING OR PUBLICITY PERTAINING TO THE USE OR 
// DISTRIBUTION OF THIS SOFTWARE WITHOUT SPECIFIC, WRITTEN 
// PRIOR AUTHORIZATION.
// 
// THIS SOFTWARE IS PROVIDED AS IS, WITHOUT REPRESENTATION 
// FROM THE UNIVERSITY OF MICHIGAN AS TO ITS FITNESS 
// FOR ANY PURPOSE, AND WITHOUT WARRANTY BY THE 
// UNIVERSITY OF MICHIGAN OF ANY KIND, EITHER EXPRESS OR 
// IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES 
// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE 
// REGENTS OF THE UNIVERSITY OF MICHIGAN SHALL NOT BE LIABLE 
// FOR ANY DAMAGES, INCLUDING SPECIAL, INDIRECT, INCIDENTAL, OR 
// CONSEQUENTIAL DAMAGES, WITH RESPECT TO ANY CLAIM ARISING OUT 
// HAS BEEN OR IS HEREAFTER ADVISED OF THE POSSIBILITY OF SUCH 
// DAMAGES.
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
// File: netlist_parser.hh
//
// Purpose: Base class for netlist parsers.  Has no functionality of its own.
//          Parsers for arbitrary netlist data formats should be derived from
//          this class to privide transparent parser behavior.
//
// Remarks: 
//
// History: 12/20/97 - MAR - created.
//
// RCS Version:
//     $Id: netlist_parser.hh,v 1.1.1.1 2002/05/01 14:23:27 mguthaus Exp $
//-----------------------------------------------------------------------------

#ifndef __NETLIST_PARSER__
#define __NETLIST_PARSER__

class netlist_parser;

#include <vector>
#include <map>
#include <list>
using namespace std;
#include "circuit.hh"

class netlist_parser {
public:

    //-------------------------------------------------------------------------
    // constructor
    //-------------------------------------------------------------------------

    netlist_parser(circuit &circ): _circuit(circ) {}
    virtual ~netlist_parser() {}

    //-------------------------------------------------------------------------
    // Parse function.
    //-------------------------------------------------------------------------

    virtual int parse (vector<char*> *files);

protected:
    circuit &_circuit;        // Intended to hold the circuit being parsed
    
private:
};

#endif // __NETLIST_PARSER__

/*****************************************************************************/
