diff options
Diffstat (limited to 'Source/cmDependsFortranParser.h')
-rw-r--r-- | Source/cmDependsFortranParser.h | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/Source/cmDependsFortranParser.h b/Source/cmDependsFortranParser.h new file mode 100644 index 0000000..399c3c8 --- /dev/null +++ b/Source/cmDependsFortranParser.h @@ -0,0 +1,96 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2000-2009 Kitware, Inc., Insight Software Consortium + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ +#ifndef cmDependsFortranParser_h +#define cmDependsFortranParser_h + +#include <stddef.h> /* size_t */ + +/* Forward declare parser object type. */ +typedef struct cmDependsFortranParser_s cmDependsFortranParser; + +/* Functions to enter/exit #include'd files in order. */ +bool cmDependsFortranParser_FilePush(cmDependsFortranParser* parser, + const char* fname); +bool cmDependsFortranParser_FilePop(cmDependsFortranParser* parser); + +/* Callbacks for lexer. */ +int cmDependsFortranParser_Input(cmDependsFortranParser* parser, + char* buffer, size_t bufferSize); + + +void cmDependsFortranParser_StringStart(cmDependsFortranParser* parser); +const char* cmDependsFortranParser_StringEnd(cmDependsFortranParser* parser); +void cmDependsFortranParser_StringAppend(cmDependsFortranParser* parser, + char c); + +void cmDependsFortranParser_SetInInterface(cmDependsFortranParser* parser, + bool is_in); +bool cmDependsFortranParser_GetInInterface(cmDependsFortranParser* parser); + + +void cmDependsFortranParser_SetInPPFalseBranch(cmDependsFortranParser* parser, + bool is_in); +bool cmDependsFortranParser_GetInPPFalseBranch(cmDependsFortranParser* parser); + + +void cmDependsFortranParser_SetOldStartcond(cmDependsFortranParser* parser, + int arg); +int cmDependsFortranParser_GetOldStartcond(cmDependsFortranParser* parser); + +/* Callbacks for parser. */ +void cmDependsFortranParser_Error(cmDependsFortranParser* parser, + const char* message); +void cmDependsFortranParser_RuleUse(cmDependsFortranParser* parser, + const char* name); +void cmDependsFortranParser_RuleInclude(cmDependsFortranParser* parser, + const char* name); +void cmDependsFortranParser_RuleModule(cmDependsFortranParser* parser, + const char* name); +void cmDependsFortranParser_RuleDefine(cmDependsFortranParser* parser, + const char* name); +void cmDependsFortranParser_RuleUndef(cmDependsFortranParser* parser, + const char* name); +void cmDependsFortranParser_RuleIfdef(cmDependsFortranParser* parser, + const char* name); +void cmDependsFortranParser_RuleIfndef(cmDependsFortranParser* parser, + const char* name); +void cmDependsFortranParser_RuleIf(cmDependsFortranParser* parser); +void cmDependsFortranParser_RuleElif(cmDependsFortranParser* parser); +void cmDependsFortranParser_RuleElse(cmDependsFortranParser* parser); +void cmDependsFortranParser_RuleEndif(cmDependsFortranParser* parser); + +/* Define the parser stack element type. */ +typedef union cmDependsFortran_yystype_u cmDependsFortran_yystype; +union cmDependsFortran_yystype_u +{ + char* string; +}; + +/* Setup the proper yylex interface. */ +#define YY_EXTRA_TYPE cmDependsFortranParser* +#define YY_DECL \ +int cmDependsFortran_yylex(YYSTYPE* yylvalp, yyscan_t yyscanner) +#define YYSTYPE cmDependsFortran_yystype +#define YYSTYPE_IS_DECLARED 1 +#if !defined(cmDependsFortranLexer_cxx) +# include "cmDependsFortranLexer.h" +#endif +#if !defined(cmDependsFortranLexer_cxx) +#if !defined(cmDependsFortranParser_cxx) +# undef YY_EXTRA_TYPE +# undef YY_DECL +# undef YYSTYPE +# undef YYSTYPE_IS_DECLARED +#endif +#endif + +#endif |