| /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying | |
| file Copyright.txt or https://cmake.org/licensing for details. */ | |
| #pragma once | |
| #include "cmConfigure.h" // IWYU pragma: keep | |
| #include <string> | |
| #include <vector> | |
| #include <cm3p/kwiml/int.h> | |
| class cmExprParserHelper | |
| { | |
| public: | |
| struct ParserType | |
| { | |
| KWIML_INT_int64_t Number; | |
| }; | |
| cmExprParserHelper(); | |
| ~cmExprParserHelper(); | |
| int ParseString(const char* str, int verb); | |
| int LexInput(char* buf, int maxlen); | |
| void Error(const char* str); | |
| void SetResult(KWIML_INT_int64_t value); | |
| KWIML_INT_int64_t GetResult() const { return this->Result; } | |
| const char* GetError() { return this->ErrorString.c_str(); } | |
| void UnexpectedChar(char c); | |
| std::string const& GetWarning() const { return this->WarningString; } | |
| private: | |
| std::string::size_type InputBufferPos; | |
| std::string InputBuffer; | |
| std::vector<char> OutputBuffer; | |
| int CurrentLine; | |
| int Verbose; | |
| void Print(const char* place, const char* str); | |
| void SetError(std::string errorString); | |
| KWIML_INT_int64_t Result; | |
| const char* FileName; | |
| long FileLine; | |
| std::string ErrorString; | |
| std::string WarningString; | |
| }; | |
| #define YYSTYPE cmExprParserHelper::ParserType | |
| #define YYSTYPE_IS_DECLARED | |
| #define YY_EXTRA_TYPE cmExprParserHelper* | |
| #define YY_DECL int cmExpr_yylex(YYSTYPE* yylvalp, yyscan_t yyscanner) |