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