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