1 #ifndef COMPILER_JUNKPARSER_H_INCLUDED
2 #define COMPILER_JUNKPARSER_H_INCLUDED
3 
4 #include "parser.hpp"
5 
6 namespace Compiler
7 {
8     /// \brief Parse an optional single junk token
9     class JunkParser : public Parser
10     {
11             int mIgnoreKeyword;
12 
13         public:
14 
15             JunkParser (ErrorHandler& errorHandler, const Context& context,
16                 int ignoreKeyword = -1);
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