1 #include "quickfileparser.hpp"
2 
3 #include "skipparser.hpp"
4 #include "scanner.hpp"
5 
QuickFileParser(ErrorHandler & errorHandler,const Context & context,Locals & locals)6 Compiler::QuickFileParser::QuickFileParser (ErrorHandler& errorHandler, const Context& context,
7     Locals& locals)
8 : Parser (errorHandler, context), mDeclarationParser (errorHandler, context, locals)
9 {}
10 
parseName(const std::string & name,const TokenLoc & loc,Scanner & scanner)11 bool Compiler::QuickFileParser::parseName (const std::string& name, const TokenLoc& loc,
12     Scanner& scanner)
13 {
14     SkipParser skip (getErrorHandler(), getContext());
15     scanner.scan (skip);
16     return true;
17 }
18 
parseKeyword(int keyword,const TokenLoc & loc,Scanner & scanner)19 bool Compiler::QuickFileParser::parseKeyword (int keyword, const TokenLoc& loc, Scanner& scanner)
20 {
21     if (keyword==Scanner::K_end)
22         return false;
23 
24     if (keyword==Scanner::K_short || keyword==Scanner::K_long || keyword==Scanner::K_float)
25     {
26         mDeclarationParser.reset();
27         scanner.putbackKeyword (keyword, loc);
28         scanner.scan (mDeclarationParser);
29         return true;
30     }
31 
32     SkipParser skip (getErrorHandler(), getContext());
33     scanner.scan (skip);
34     return true;
35 }
36 
parseSpecial(int code,const TokenLoc & loc,Scanner & scanner)37 bool Compiler::QuickFileParser::parseSpecial (int code, const TokenLoc& loc, Scanner& scanner)
38 {
39     if (code!=Scanner::S_newline)
40     {
41         SkipParser skip (getErrorHandler(), getContext());
42         scanner.scan (skip);
43     }
44 
45     return true;
46 }
47 
parseEOF(Scanner & scanner)48 void Compiler::QuickFileParser::parseEOF (Scanner& scanner)
49 {
50 
51 }
52