1 #ifndef COMPILER_SKIPPARSER_H_INCLUDED
2 #define COMPILER_SKIPPARSER_H_INCLUDED
3 
4 #include "parser.hpp"
5 
6 namespace Compiler
7 {
8     // \brief Skip parser for skipping a line
9     //
10     // This parser is mainly intended for skipping the rest of a faulty line.
11 
12     class SkipParser : public Parser
13     {
14         public:
15 
16             SkipParser (ErrorHandler& errorHandler, const Context& context);
17 
18             bool parseInt (int value, const TokenLoc& loc, Scanner& scanner) override;
19             ///< Handle an int token.
20             /// \return fetch another token?
21 
22             bool parseFloat (float value, const TokenLoc& loc, Scanner& scanner) override;
23             ///< Handle a float token.
24             /// \return fetch another token?
25 
26             bool parseName (const std::string& name, const TokenLoc& loc,
27                 Scanner& scanner) override;
28             ///< Handle a name token.
29             /// \return fetch another token?
30 
31             bool parseKeyword (int keyword, const TokenLoc& loc, Scanner& scanner) override;
32             ///< Handle a keyword token.
33             /// \return fetch another token?
34 
35             bool parseSpecial (int code, const TokenLoc& loc, Scanner& scanner) override;
36             ///< Handle a special character token.
37             /// \return fetch another token?
38     };
39 }
40 
41 #endif
42 
43