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