lr_parser_simple.H

00001 /*
00002  * This file is part of the "Archon" framework.
00003  * (http://files3d.sourceforge.net)
00004  *
00005  * Copyright © 2002 by Kristian Spangsege and Brian Kristiansen.
00006  *
00007  * Permission to use, copy, modify, and distribute this software and
00008  * its documentation under the terms of the GNU General Public License is
00009  * hereby granted. No representations are made about the suitability of
00010  * this software for any purpose. It is provided "as is" without express
00011  * or implied warranty. See the GNU General Public License
00012  * (http://www.gnu.org/copyleft/gpl.html) for more details.
00013  *
00014  * The characters in this file are ISO8859-1 encoded.
00015  *
00016  * The documentation in this file is in "Doxygen" style
00017  * (http://www.doxygen.org).
00018  */
00019 
00020 #ifndef ARCHON_UTILITIES_LR_PARSER_SIMPLE_H
00021 #define ARCHON_UTILITIES_LR_PARSER_SIMPLE_H
00022 
00023 #include <vector>
00024 
00025 #include <archon/util/cfg.H>
00026 #include <archon/util/lr_parser_base.H>
00027 
00028 namespace Archon
00029 {
00030   namespace Utilities
00031   {
00032     using namespace std;
00033 
00034     class SlrParser: public LrParserBase
00035     {
00036       vector<int> actionTable;
00037       vector<int> gotoTable;
00038       int numberOfStates;
00039 
00040       int getAction(int state, int terminal) const;
00041       int getGoto(int state, int nonterminal) const;
00042 
00043       string printItemSets(const vector<pair<int, int> > &,
00044                            const vector<set<int> > &, int width);
00045 
00046     public:
00047       SlrParser(CFG &, const ActorBase * =0, const Printer * =0);
00048       ~SlrParser();
00049     };
00050   }
00051 }
00052 
00053 #endif // ARCHON_UTILITIES_LR_PARSER_SIMPLE_H

Generated on Sun Jul 30 22:55:44 2006 for Archon by  doxygen 1.4.4