123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- #ifndef cmFortranParser_h
- #define cmFortranParser_h
- #if !defined(cmFortranLexer_cxx) && !defined(cmFortranParser_cxx)
- #include "cmConfigure.h"
- #include <set>
- #include <string>
- #include <vector>
- #endif
- #include <stddef.h> /* size_t */
- typedef struct cmFortranParser_s cmFortranParser;
- bool cmFortranParser_FilePush(cmFortranParser* parser, const char* fname);
- bool cmFortranParser_FilePop(cmFortranParser* parser);
- int cmFortranParser_Input(cmFortranParser* parser, char* buffer,
- size_t bufferSize);
- void cmFortranParser_StringStart(cmFortranParser* parser);
- const char* cmFortranParser_StringEnd(cmFortranParser* parser);
- void cmFortranParser_StringAppend(cmFortranParser* parser, char c);
- void cmFortranParser_SetInInterface(cmFortranParser* parser, bool is_in);
- bool cmFortranParser_GetInInterface(cmFortranParser* parser);
- void cmFortranParser_SetInPPFalseBranch(cmFortranParser* parser, bool is_in);
- bool cmFortranParser_GetInPPFalseBranch(cmFortranParser* parser);
- void cmFortranParser_SetOldStartcond(cmFortranParser* parser, int arg);
- int cmFortranParser_GetOldStartcond(cmFortranParser* parser);
- void cmFortranParser_Error(cmFortranParser* parser, const char* message);
- void cmFortranParser_RuleUse(cmFortranParser* parser, const char* name);
- void cmFortranParser_RuleLineDirective(cmFortranParser* parser,
- const char* filename);
- void cmFortranParser_RuleInclude(cmFortranParser* parser, const char* name);
- void cmFortranParser_RuleModule(cmFortranParser* parser, const char* name);
- void cmFortranParser_RuleDefine(cmFortranParser* parser, const char* name);
- void cmFortranParser_RuleUndef(cmFortranParser* parser, const char* name);
- void cmFortranParser_RuleIfdef(cmFortranParser* parser, const char* name);
- void cmFortranParser_RuleIfndef(cmFortranParser* parser, const char* name);
- void cmFortranParser_RuleIf(cmFortranParser* parser);
- void cmFortranParser_RuleElif(cmFortranParser* parser);
- void cmFortranParser_RuleElse(cmFortranParser* parser);
- void cmFortranParser_RuleEndif(cmFortranParser* parser);
- struct cmFortran_yystype
- {
- char* string;
- };
- #define YY_EXTRA_TYPE cmFortranParser*
- #define YY_DECL int cmFortran_yylex(YYSTYPE* yylvalp, yyscan_t yyscanner)
- #define YYSTYPE cmFortran_yystype
- #define YYSTYPE_IS_DECLARED 1
- #if !defined(cmFortranLexer_cxx)
- #define YY_NO_UNISTD_H
- #include "cmFortranLexer.h"
- #endif
- #if !defined(cmFortranLexer_cxx)
- #if !defined(cmFortranParser_cxx)
- #undef YY_EXTRA_TYPE
- #undef YY_DECL
- #undef YYSTYPE
- #undef YYSTYPE_IS_DECLARED
- #endif
- #endif
- #if !defined(cmFortranLexer_cxx) && !defined(cmFortranParser_cxx)
- #include <stack>
- class cmFortranSourceInfo
- {
- public:
-
- std::string Source;
-
- std::set<std::string> Provides;
- std::set<std::string> Requires;
-
- std::set<std::string> Includes;
- };
- YY_BUFFER_STATE cmFortranLexer_GetCurrentBuffer(yyscan_t yyscanner);
- int cmFortran_yyparse(yyscan_t);
- struct cmFortranFile
- {
- cmFortranFile(FILE* file, YY_BUFFER_STATE buffer, const std::string& dir)
- : File(file)
- , Buffer(buffer)
- , Directory(dir)
- , LastCharWasNewline(false)
- {
- }
- FILE* File;
- YY_BUFFER_STATE Buffer;
- std::string Directory;
- bool LastCharWasNewline;
- };
- struct cmFortranParser_s
- {
- cmFortranParser_s(std::vector<std::string> const& includes,
- std::set<std::string> const& defines,
- cmFortranSourceInfo& info);
- ~cmFortranParser_s();
- bool FindIncludeFile(const char* dir, const char* includeName,
- std::string& fileName);
-
- std::vector<std::string> IncludePath;
-
- yyscan_t Scanner;
-
- std::stack<cmFortranFile> FileStack;
-
- std::string TokenString;
-
- std::string Error;
-
- bool InInterface;
- int OldStartcond;
- std::set<std::string> PPDefinitions;
- size_t InPPFalseBranch;
- std::stack<bool> SkipToEnd;
-
- cmFortranSourceInfo& Info;
- };
- #endif
- #endif
|