1 /* 2 * The contents of this file are subject to the Mozilla Public License 3 * Version 1.0 (the "License"); you may not use this file except in 4 * compliance with the License. You may obtain a copy of the License at 5 * http://www.mozilla.org/MPL/ 6 * 7 * Software distributed under the License is distributed on an "AS IS" 8 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the 9 * License for the specific language governing rights and limitations 10 * under the License. 11 * 12 * The Initial Developer of this code is David Baum. 13 * Portions created by David Baum are Copyright (C) 1998 David Baum. 14 * All Rights Reserved. 15 * 16 * Portions created by John Hansen are Copyright (C) 2005 John Hansen. 17 * All Rights Reserved. 18 * 19 */ 20 21 #ifndef __parser_h 22 #define __parser_h 23 24 // forward class declarations for YYSTYPE 25 class Fragment; 26 class Resource; 27 class Stmt; 28 class BlockStmt; 29 class Symbol; 30 class Condition; 31 class Expr; 32 class Buffer; 33 class FunctionDef; 34 class CallStmt; 35 class AsmStmt; 36 class Field; 37 class CaseStmt; 38 class DeclareStmt; 39 class LocationNode; 40 41 // get definition of YYSTYPE, yylval, etc 42 #ifndef __PARSE_TAB_H 43 #include "parse.tab.h" 44 int yylex(YYSTYPE &tokenVal); 45 #endif 46 47 #ifndef _STDIO_H 48 #include <cstdio> 49 #endif 50 51 // from parse.tab.c 52 int yyparse(void); 53 54 #ifndef __LexLocation_h 55 #include "LexLocation.h" 56 #endif 57 58 void LexCurrentLocation(LexLocation &loc); 59 int LexFindAndPushFile(const char *name); 60 int LexPush(Buffer *buf); 61 void LexReturnWhitespace(int mode); 62 void LexReset(); 63 64 #endif 65