00001 /* 00002 * File: scanner_dfa_spec.hh 00003 * $Id: scanner_dfa_spec.hh,v 1.5 2002/06/26 20:50:00 alec Exp $ 00004 * 00005 * Author: Alec Panovici (alecu@email.com) 00006 * 00007 * Comments: 00008 * 00009 * Revision history: 00010 * 00011 * $Log: scanner_dfa_spec.hh,v $ 00012 * Revision 1.5 2002/06/26 20:50:00 alec 00013 * g++ 3.x happy 00014 * 00015 * Revision 1.4 2002/06/13 11:41:24 alec 00016 * added #line stuff 00017 * 00018 * Revision 1.3 2002/05/08 10:36:00 alec 00019 * added keyword tokens support 00020 * 00021 * Revision 1.2 2002/05/01 16:32:14 alec 00022 * dfa ok. huh ! 00023 * 00024 * Revision 1.1 2002/04/30 16:26:38 alec 00025 * my big endian will eat your little endian 00026 * 00027 */ 00028 00029 00030 /* 00031 Copyright (C) 2002 Alexandru Panoviciu (alecu@email.com) 00032 00033 This program is free software; you can redistribute it and/or modify 00034 it under the terms of the GNU General Public License as published by 00035 the Free Software Foundation; either version 2 of the License, or 00036 (at your option) any later version. 00037 00038 This program is distributed in the hope that it will be useful, 00039 but WITHOUT ANY WARRANTY; without even the implied warranty of 00040 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00041 GNU General Public License for more details. 00042 00043 You should have received a copy of the GNU General Public License 00044 along with this program; if not, write to the Free Software 00045 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00046 00047 */ 00048 00049 #ifndef __SCANNER_DFA_SPEC_HH__ 00050 #define __SCANNER_DFA_SPEC_HH__ 00051 00052 #include <string> 00053 #include <vector> 00054 using namespace std; 00055 00056 00057 00058 #include "debug.h" 00059 #include "parse_util.hh" 00060 00061 class BasicDfaSpec; 00062 00068 class ScannerDfaSpec 00069 { 00070 public: 00071 00075 ScannerDfaSpec (const string &className_, const CodeChunk &preambleCode_, 00076 const vector<CodeChunk> &userCode_, 00077 const CodeChunk &inheritance_) : 00078 className(className_), preambleCode(preambleCode_), 00079 userCode(userCode_), inheritance(inheritance_) 00080 {} 00081 00086 void addBasicDfa (BasicDfaSpec &dfa); 00087 00088 00092 string className; 00093 00097 CodeChunk preambleCode; 00098 00104 vector<CodeChunk> userCode; 00105 00110 CodeChunk inheritance; 00111 00115 vector<BasicDfaSpec*> states; 00116 }; 00117 00118 #endif /* #ifndef __SCANNER_DFA_SPEC_HH__ */