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