mirror of
https://github.com/reactos/CMake.git
synced 2024-12-13 22:58:41 +00:00
b5ac8b8aa7
Fortran 2008 [1] adds support for a new syntax related to modules: submodule ( ParentModule ) SubModule submodule ( ParentModule : SubModule ) NestedSubModule Both of these mean that the current source file requires the module `ParentModule` to be available if it is not provided in the current file. Teach our Fortran dependency scanner to parse this syntax to extract this relationship. For now simply tolerate the nested submodule case and extract only the dependency it expresses on the main module. Further work will be needed to extract dependencies among nested submodules. [1] http://fortranwiki.org/fortran/show/Fortran+2008 Closes: #16234
150 lines
3.8 KiB
C
150 lines
3.8 KiB
C
/* A Bison parser, made by GNU Bison 3.0.4. */
|
|
|
|
/* Bison interface for Yacc-like parsers in C
|
|
|
|
Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
|
|
|
/* As a special exception, you may create a larger work that contains
|
|
part or all of the Bison parser skeleton and distribute that work
|
|
under terms of your choice, so long as that work isn't itself a
|
|
parser generator using the skeleton or a modified version thereof
|
|
as a parser skeleton. Alternatively, if you modify or redistribute
|
|
the parser skeleton itself, you may (at your option) remove this
|
|
special exception, which will cause the skeleton and the resulting
|
|
Bison output files to be licensed under the GNU General Public
|
|
License without this special exception.
|
|
|
|
This special exception was added by the Free Software Foundation in
|
|
version 2.2 of Bison. */
|
|
|
|
#ifndef YY_CMFORTRAN_YY_CMFORTRANPARSERTOKENS_H_INCLUDED
|
|
# define YY_CMFORTRAN_YY_CMFORTRANPARSERTOKENS_H_INCLUDED
|
|
/* Debug traces. */
|
|
#ifndef YYDEBUG
|
|
# define YYDEBUG 0
|
|
#endif
|
|
#if YYDEBUG
|
|
extern int cmFortran_yydebug;
|
|
#endif
|
|
|
|
/* Token type. */
|
|
#ifndef YYTOKENTYPE
|
|
# define YYTOKENTYPE
|
|
enum yytokentype
|
|
{
|
|
EOSTMT = 258,
|
|
ASSIGNMENT_OP = 259,
|
|
GARBAGE = 260,
|
|
CPP_LINE_DIRECTIVE = 261,
|
|
CPP_INCLUDE = 262,
|
|
F90PPR_INCLUDE = 263,
|
|
COCO_INCLUDE = 264,
|
|
F90PPR_DEFINE = 265,
|
|
CPP_DEFINE = 266,
|
|
F90PPR_UNDEF = 267,
|
|
CPP_UNDEF = 268,
|
|
CPP_IFDEF = 269,
|
|
CPP_IFNDEF = 270,
|
|
CPP_IF = 271,
|
|
CPP_ELSE = 272,
|
|
CPP_ELIF = 273,
|
|
CPP_ENDIF = 274,
|
|
F90PPR_IFDEF = 275,
|
|
F90PPR_IFNDEF = 276,
|
|
F90PPR_IF = 277,
|
|
F90PPR_ELSE = 278,
|
|
F90PPR_ELIF = 279,
|
|
F90PPR_ENDIF = 280,
|
|
COMMA = 281,
|
|
COLON = 282,
|
|
DCOLON = 283,
|
|
LPAREN = 284,
|
|
RPAREN = 285,
|
|
UNTERMINATED_STRING = 286,
|
|
STRING = 287,
|
|
WORD = 288,
|
|
CPP_INCLUDE_ANGLE = 289,
|
|
END = 290,
|
|
INCLUDE = 291,
|
|
INTERFACE = 292,
|
|
MODULE = 293,
|
|
SUBMODULE = 294,
|
|
USE = 295
|
|
};
|
|
#endif
|
|
/* Tokens. */
|
|
#define EOSTMT 258
|
|
#define ASSIGNMENT_OP 259
|
|
#define GARBAGE 260
|
|
#define CPP_LINE_DIRECTIVE 261
|
|
#define CPP_INCLUDE 262
|
|
#define F90PPR_INCLUDE 263
|
|
#define COCO_INCLUDE 264
|
|
#define F90PPR_DEFINE 265
|
|
#define CPP_DEFINE 266
|
|
#define F90PPR_UNDEF 267
|
|
#define CPP_UNDEF 268
|
|
#define CPP_IFDEF 269
|
|
#define CPP_IFNDEF 270
|
|
#define CPP_IF 271
|
|
#define CPP_ELSE 272
|
|
#define CPP_ELIF 273
|
|
#define CPP_ENDIF 274
|
|
#define F90PPR_IFDEF 275
|
|
#define F90PPR_IFNDEF 276
|
|
#define F90PPR_IF 277
|
|
#define F90PPR_ELSE 278
|
|
#define F90PPR_ELIF 279
|
|
#define F90PPR_ENDIF 280
|
|
#define COMMA 281
|
|
#define COLON 282
|
|
#define DCOLON 283
|
|
#define LPAREN 284
|
|
#define RPAREN 285
|
|
#define UNTERMINATED_STRING 286
|
|
#define STRING 287
|
|
#define WORD 288
|
|
#define CPP_INCLUDE_ANGLE 289
|
|
#define END 290
|
|
#define INCLUDE 291
|
|
#define INTERFACE 292
|
|
#define MODULE 293
|
|
#define SUBMODULE 294
|
|
#define USE 295
|
|
|
|
/* Value type. */
|
|
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
|
|
|
union YYSTYPE
|
|
{
|
|
#line 75 "cmFortranParser.y" /* yacc.c:1909 */
|
|
|
|
char* string;
|
|
|
|
#line 138 "cmFortranParserTokens.h" /* yacc.c:1909 */
|
|
};
|
|
|
|
typedef union YYSTYPE YYSTYPE;
|
|
# define YYSTYPE_IS_TRIVIAL 1
|
|
# define YYSTYPE_IS_DECLARED 1
|
|
#endif
|
|
|
|
|
|
|
|
int cmFortran_yyparse (yyscan_t yyscanner);
|
|
|
|
#endif /* !YY_CMFORTRAN_YY_CMFORTRANPARSERTOKENS_H_INCLUDED */
|