/*============================================================================
  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
ommitgraph'></td>
<td colspan='5'>
</td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/oss-git/cpython.git/commit/?id=3e34a25a7a5c9ea2c46f2daeeb60f072faa5aaa1'>bpo-37354: Sign Activate.ps1 for release (GH-15235)</a><span class='decoration'></span></td><td>Steve Dower</td><td><span title='2019-08-12 21:09:36 (GMT)'>2019-08-12</span></td><td>6</td><td>-4/+29</td></tr>
<tr class='nohover'><td class='commitgraph'></td>
<td colspan='5'>
</td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/oss-git/cpython.git/commit/?id=732775d6be8062e72cf4995d5a9db0170e22c233'>bpo-37354: Make Powershell Activate.ps1 script static to allow for signing (G...</a><span class='decoration'></span></td><td>Derek Keeler</td><td><span title='2019-08-12 20:06:02 (GMT)'>2019-08-12</span></td><td>2</td><td>-28/+204</td></tr>
<tr class='nohover'><td class='commitgraph'></td>
<td colspan='5'>
</td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/oss-git/cpython.git/commit/?id=44046fe4fc7f00a6eb855b33e6a3f953cf5233a5'>bpo-37804: Remove the deprecated method threading.Thread.isAlive() (GH-15225)</a><span class='decoration'></span></td><td>Dong-hee Na</td><td><span title='2019-08-12 17:41:08 (GMT)'>2019-08-12</span></td><td>4</td><td>-12/+6</td></tr>
<tr class='nohover'><td class='commitgraph'></td>
<td colspan='5'>
</td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/oss-git/cpython.git/commit/?id=f9590edfeae192ba95aadaee9460dc03a366c51a'>Fix docs for assert_called and assert_called_once (#15197)</a><span class='decoration'></span></td><td>Ismail S</td><td><span title='2019-08-12 06:57:03 (GMT)'>2019-08-12</span></td><td>1</td><td>-2/+2</td></tr>
<tr class='nohover'><td class='commitgraph'></td>
<td colspan='5'>
</td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/oss-git/cpython.git/commit/?id=f03b4c8a48f62134799d368b78da35301af466a3'>bpo-37819: Add Fraction.as_integer_ratio() (GH-15212)</a><span class='decoration'></span></td><td>Raymond Hettinger</td><td><span title='2019-08-11 21:40:59 (GMT)'>2019-08-11</span></td><td>4</td><td>-0/+23</td></tr>
<tr class='nohover'><td class='commitgraph'></td>
<td colspan='5'>
</td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/oss-git/cpython.git/commit/?id=09a1872a8007048dcdf825a476816c5e3498b8f8'>bpo-32178: Fix IndexError trying to parse 'To' header starting with ':'. (GH-...</a><span class='decoration'></span></td><td>Abhilash Raj</td><td><span title='2019-08-11 20:45:09 (GMT)'>2019-08-11</span></td><td>3</td><td>-1/+12</td></tr>
<tr class='nohover'><td class='commitgraph'></td>
<td colspan='5'>
</td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/oss-git/cpython.git/commit/?id=51aac15f6d525595e200e3580409c4b8656e8a96'>Delete leftover clinic-generated file for C zipimport. (GH-15174)</a><span class='decoration'></span></td><td>Greg Price</td><td><span title='2019-08-10 07:20:27 (GMT)'>2019-08-10</span></td><td>1</td><td>-325/+0</td></tr>
<tr class='nohover'><td class='commitgraph'></td>
<td colspan='5'>
</td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/oss-git/cpython.git/commit/?id=b4be87a04a2a8ccfd2480e19dc527589fce53555'>bpo-32912: Revert SyntaxWarning on invalid escape sequences. (GH-15195)</a><span class='decoration'></span></td><td>Gregory P. Smith</td><td><span title='2019-08-10 07:19:07 (GMT)'>2019-08-10</span></td><td>6</td><td>-18/+43</td></tr>
<tr class='nohover'><td class='commitgraph'></td>
<td colspan='5'>
</td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/oss-git/cpython.git/commit/?id=92c7e30adf5c81a54d6e5e555a6bdfaa60157a0d'>bpo-37642: Update acceptable offsets in timezone (GH-14878)</a><span class='decoration'></span></td><td>Ngalim Siregar</td><td><span title='2019-08-09 14:22:16 (GMT)'>2019-08-09</span></td><td>5</td><td>-5/+44</td></tr>
<tr class='nohover'><td class='commitgraph'></td>
<td colspan='5'>
</td></tr>
<tr><td class='commitgraph'>* </td><td><a href='/oss-git/cpython.git/commit/?id=ed70a344b5fbddea85726ebc1964ee0cfdef9c40'>bpo-36511: Fix failures in Windows ARM32 buildbot (GH-15181)</a><span class='decoration'></span></td><td>Paul Monson</td><td><span title='2019-08-08 23:12:33 (GMT)'>2019-08-08</span>