1 /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
2 file Copyright.txt or https://cmake.org/licensing for details. */
5 #include "cmConfigure.h" // IWYU pragma: keep
10 #include <cm3p/kwiml/int.h>
12 class cmExprParserHelper
17 KWIML_INT_int64_t Number;
21 ~cmExprParserHelper();
23 int ParseString(const char* str, int verb);
25 int LexInput(char* buf, int maxlen);
26 void Error(const char* str);
28 void SetResult(KWIML_INT_int64_t value);
30 KWIML_INT_int64_t GetResult() const { return this->Result; }
32 const char* GetError() { return this->ErrorString.c_str(); }
34 void UnexpectedChar(char c);
36 std::string const& GetWarning() const { return this->WarningString; }
39 std::string::size_type InputBufferPos;
40 std::string InputBuffer;
41 std::vector<char> OutputBuffer;
45 void Print(const char* place, const char* str);
47 void SetError(std::string errorString);
49 KWIML_INT_int64_t Result;
52 std::string ErrorString;
53 std::string WarningString;
56 #define YYSTYPE cmExprParserHelper::ParserType
57 #define YYSTYPE_IS_DECLARED
58 #define YY_EXTRA_TYPE cmExprParserHelper*
59 #define YY_DECL int cmExpr_yylex(YYSTYPE* yylvalp, yyscan_t yyscanner)