index
1 /**************************************************
2 * file: Parser.h
3 * date: 2006-04-12
4 * author: ideawu
5 * describe: none; parser
6 **************************************************/
7
8 #include "common.h"
9 #include "Lexer.h"
10 #include "SyntaxTree.h"
11
12
13 class Parser{
14 private:
15 Lexer *lexer;
16 Token currentToken;
17
18 Token nextToken();
19
20 SyntaxTree* Statement();
21 SyntaxTree* Assign();
22 SyntaxTree* Expression();
23 SyntaxTree* T();
24 SyntaxTree* F();
25 SyntaxTree* Condition();
26 SyntaxTree* Boolean();
27 SyntaxTree* T2();
28 SyntaxTree* F2();
29 SyntaxTree* While();
30 SyntaxTree* Begin();
31 SyntaxTree* Block();
32
33 void printError(const char *error);
34
35 public:
36 Parser(char* sourcefile);
37
38 Parser();
39
40 ~Parser();
41
42 void reset();
43
44 void printError();
45
46 SyntaxTree* parse();
47
48 void setLexer(Lexer *srclexer);
49
50 };
51
52
53
54