ENH: add submit via cp mode
[cmake.git] / Source / cmExprParserHelper.h
blob5679e1e125cf25c7e1a5835f586ea4c56153c137
1 /*=========================================================================
3 Program: CMake - Cross-Platform Makefile Generator
4 Module: $RCSfile: cmExprParserHelper.h,v $
5 Language: C++
6 Date: $Date: 2006-03-15 16:02:01 $
7 Version: $Revision: 1.2 $
9 Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
10 See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
12 This software is distributed WITHOUT ANY WARRANTY; without even
13 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14 PURPOSE. See the above copyright notices for more information.
16 =========================================================================*/
17 #ifndef cmExprParserHelper_h
18 #define cmExprParserHelper_h
20 #include "cmStandardIncludes.h"
22 #define YYSTYPE cmExprParserHelper::ParserType
23 #define YYSTYPE_IS_DECLARED
24 #define YY_EXTRA_TYPE cmExprParserHelper*
25 #define YY_DECL int cmExpr_yylex(YYSTYPE* yylvalp, yyscan_t yyscanner)
27 /** \class cmExprParserHelper
28 * \brief Helper class for parsing java source files
30 * Finds dependencies for java file and list of outputs
33 class cmMakefile;
35 class cmExprParserHelper
37 public:
38 typedef struct {
39 int Number;
40 } ParserType;
42 cmExprParserHelper();
43 ~cmExprParserHelper();
45 int ParseString(const char* str, int verb);
47 int LexInput(char* buf, int maxlen);
48 void Error(const char* str);
50 void SetResult(int value);
52 int GetResult() { return this->Result; }
54 void SetLineFile(long line, const char* file);
56 const char* GetError() { return this->ErrorString.c_str(); }
58 private:
59 cmStdString::size_type InputBufferPos;
60 cmStdString InputBuffer;
61 std::vector<char> OutputBuffer;
62 int CurrentLine;
63 int UnionsAvailable;
64 int Verbose;
66 void Print(const char* place, const char* str);
68 void CleanupParser();
70 int Result;
71 const char* FileName;
72 long FileLine;
73 std::string ErrorString;
76 #endif