PIPS
step_bison_parser.c
Go to the documentation of this file.
1 /* A Bison parser, made by GNU Bison 3.8.2. */
2 
3 /* Bison implementation for Yacc-like parsers in C
4 
5  Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
6  Inc.
7 
8  This program is free software: you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation, either version 3 of the License, or
11  (at your option) any later version.
12 
13  This program is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with this program. If not, see <https://www.gnu.org/licenses/>. */
20 
21 /* As a special exception, you may create a larger work that contains
22  part or all of the Bison parser skeleton and distribute that work
23  under terms of your choice, so long as that work isn't itself a
24  parser generator using the skeleton or a modified version thereof
25  as a parser skeleton. Alternatively, if you modify or redistribute
26  the parser skeleton itself, you may (at your option) remove this
27  special exception, which will cause the skeleton and the resulting
28  Bison output files to be licensed under the GNU General Public
29  License without this special exception.
30 
31  This special exception was added by the Free Software Foundation in
32  version 2.2 of Bison. */
33 
34 /* C LALR(1) parser skeleton written by Richard Stallman, by
35  simplifying the original so-called "semantic" parser. */
36 
37 /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
38  especially those whose name start with YY_ or yy_. They are
39  private implementation details that can be changed or removed. */
40 
41 /* All symbols defined below should begin with yy or YY, to avoid
42  infringing on user name space. This should be done even for local
43  variables, as they might otherwise be expanded by user macros.
44  There are some unavoidable exceptions within include files to
45  define necessary library symbols; they are noted "INFRINGES ON
46  USER NAME SPACE" below. */
47 
48 /* Identify Bison output, and Bison version. */
49 #define YYBISON 30802
50 
51 /* Bison version string. */
52 #define YYBISON_VERSION "3.8.2"
53 
54 /* Skeleton name. */
55 #define YYSKELETON_NAME "yacc.c"
56 
57 /* Pure parsers. */
58 #define YYPURE 0
59 
60 /* Push parsers. */
61 #define YYPUSH 0
62 
63 /* Pull parsers. */
64 #define YYPULL 1
65 
66 
67 /* Substitute the variable and function names. */
68 #define yyparse step_lexerparse
69 #define yylex step_lexerlex
70 #define yyerror step_lexererror
71 #define yydebug step_lexerdebug
72 #define yynerrs step_lexernerrs
73 #define yylval step_lexerlval
74 #define yychar step_lexerchar
75 
76 /* First part of user prologue. */
77 #line 1 "step_bison_parser.y"
78 
79 #ifdef HAVE_CONFIG_H
80  #include "pips_config.h"
81 extern char *step_lexertext;
82 extern int step_lexerlex();
83 extern int step_lexer_scan_string(char*);
84 extern int step_parse();
85 #else
86  #include "step_lexer.h"
87 #endif
88 
89 #include "defines-local.h"
90 
91 
92 extern void set_current_transform(int transform);
93 
94 extern entity entity_from_user_name(string name);
95 extern void remove_old_pragma(void);
96 extern step_directive begin_omp_construct(int type, string s);
98 
99 static step_directive concat_drt_clauses(step_directive drt, cons *liste_clauses);
100 static step_clause step_handle_reduction_clause(cons *ident_liste, int op);
101 static cons * step_add_to_ident_list(string name, cons * list);
102 
103 static string pragma_str_original=NULL;
104 
105 void step_lexererror(const char *s)
106 {
107  pips_user_error("\nParsing :\n%s\n%s at '%s'\n", pragma_str_original, s, step_lexertext);
108 }
109 
110 
111 #line 112 "step_bison_parser.c"
112 
113 # ifndef YY_CAST
114 # ifdef __cplusplus
115 # define YY_CAST(Type, Val) static_cast<Type> (Val)
116 # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
117 # else
118 # define YY_CAST(Type, Val) ((Type) (Val))
119 # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
120 # endif
121 # endif
122 # ifndef YY_NULLPTR
123 # if defined __cplusplus
124 # if 201103L <= __cplusplus
125 # define YY_NULLPTR nullptr
126 # else
127 # define YY_NULLPTR 0
128 # endif
129 # else
130 # define YY_NULLPTR ((void*)0)
131 # endif
132 # endif
133 
134 #include "step_bison_parser.h"
135 /* Symbol kind. */
137 {
139  YYSYMBOL_YYEOF = 0, /* "end of file" */
140  YYSYMBOL_YYerror = 1, /* error */
141  YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
142  YYSYMBOL_TK_EOL = 3, /* TK_EOL */
143  YYSYMBOL_TK_ERROR = 4, /* TK_ERROR */
144  YYSYMBOL_TK_LPAREN = 5, /* TK_LPAREN */
145  YYSYMBOL_TK_RPAREN = 6, /* TK_RPAREN */
146  YYSYMBOL_TK_COLON = 7, /* TK_COLON */
147  YYSYMBOL_TK_COMMA = 8, /* TK_COMMA */
148  YYSYMBOL_TK_IDENT = 9, /* TK_IDENT */
149  YYSYMBOL_TK_COMMENT = 10, /* TK_COMMENT */
150  YYSYMBOL_TK_OPERATOR = 11, /* TK_OPERATOR */
151  YYSYMBOL_TK_RAW = 12, /* TK_RAW */
152  YYSYMBOL_TK_OMP_PRAGMA = 13, /* TK_OMP_PRAGMA */
153  YYSYMBOL_TK_OMP_PARALLEL = 14, /* TK_OMP_PARALLEL */
154  YYSYMBOL_TK_OMP_LOOP = 15, /* TK_OMP_LOOP */
155  YYSYMBOL_TK_OMP_END = 16, /* TK_OMP_END */
156  YYSYMBOL_TK_OMP_BARRIER = 17, /* TK_OMP_BARRIER */
157  YYSYMBOL_TK_OMP_MASTER = 18, /* TK_OMP_MASTER */
158  YYSYMBOL_TK_OMP_SINGLE = 19, /* TK_OMP_SINGLE */
159  YYSYMBOL_TK_OMP_THREADPRIVATE = 20, /* TK_OMP_THREADPRIVATE */
160  YYSYMBOL_TK_OMP_SHARED = 21, /* TK_OMP_SHARED */
161  YYSYMBOL_TK_OMP_PRIVATE = 22, /* TK_OMP_PRIVATE */
162  YYSYMBOL_TK_OMP_NOWAIT = 23, /* TK_OMP_NOWAIT */
163  YYSYMBOL_TK_OMP_REDUCTION = 24, /* TK_OMP_REDUCTION */
164  YYSYMBOL_TK_OMP_DEFAULT = 25, /* TK_OMP_DEFAULT */
165  YYSYMBOL_TK_OMP_COPYIN = 26, /* TK_OMP_COPYIN */
166  YYSYMBOL_TK_OMP_FIRSTPRIVATE = 27, /* TK_OMP_FIRSTPRIVATE */
167  YYSYMBOL_TK_OMP_SCHEDULE = 28, /* TK_OMP_SCHEDULE */
168  YYSYMBOL_TK_STEP_PRAGMA = 29, /* TK_STEP_PRAGMA */
169  YYSYMBOL_TK_STEP_TRANSFORMATION = 30, /* TK_STEP_TRANSFORMATION */
170  YYSYMBOL_YYACCEPT = 31, /* $accept */
171  YYSYMBOL_pragma = 32, /* pragma */
172  YYSYMBOL_33_1 = 33, /* $@1 */
173  YYSYMBOL_34_2 = 34, /* $@2 */
174  YYSYMBOL_step_transformation = 35, /* step_transformation */
175  YYSYMBOL_omp_comment = 36, /* omp_comment */
176  YYSYMBOL_omp_directive = 37, /* omp_directive */
177  YYSYMBOL_38_3 = 38, /* @3 */
178  YYSYMBOL_39_4 = 39, /* @4 */
179  YYSYMBOL_40_5 = 40, /* @5 */
180  YYSYMBOL_41_6 = 41, /* @6 */
181  YYSYMBOL_omp_parallel_clauses = 42, /* omp_parallel_clauses */
182  YYSYMBOL_omp_loop_clauses = 43, /* omp_loop_clauses */
183  YYSYMBOL_omp_end_loop_clauses = 44, /* omp_end_loop_clauses */
184  YYSYMBOL_omp_parallel_loop_clauses = 45, /* omp_parallel_loop_clauses */
185  YYSYMBOL_omp_shared = 46, /* omp_shared */
186  YYSYMBOL_47_7 = 47, /* $@7 */
187  YYSYMBOL_omp_private = 48, /* omp_private */
188  YYSYMBOL_49_8 = 49, /* $@8 */
189  YYSYMBOL_omp_copyin = 50, /* omp_copyin */
190  YYSYMBOL_51_9 = 51, /* $@9 */
191  YYSYMBOL_omp_threadprivate_listvar = 52, /* omp_threadprivate_listvar */
192  YYSYMBOL_53_10 = 53, /* $@10 */
193  YYSYMBOL_omp_firstprivate = 54, /* omp_firstprivate */
194  YYSYMBOL_55_11 = 55, /* $@11 */
195  YYSYMBOL_omp_schedule = 56, /* omp_schedule */
196  YYSYMBOL_57_12 = 57, /* $@12 */
197  YYSYMBOL_omp_reduction = 58, /* omp_reduction */
198  YYSYMBOL_59_13 = 59, /* $@13 */
199  YYSYMBOL_60_14 = 60, /* $@14 */
200  YYSYMBOL_omp_default = 61, /* omp_default */
201  YYSYMBOL_62_15 = 62, /* $@15 */
202  YYSYMBOL_string_list = 63, /* string_list */
203  YYSYMBOL_ident_list = 64 /* ident_list */
204 };
205 typedef enum yysymbol_kind_t yysymbol_kind_t;
206 
207 
208 
209 
210 #ifdef short
211 # undef short
212 #endif
213 
214 /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
215  <limits.h> and (if available) <stdint.h> are included
216  so that the code can choose integer types of a good width. */
217 
218 #ifndef __PTRDIFF_MAX__
219 # include <limits.h> /* INFRINGES ON USER NAME SPACE */
220 # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
221 # include <stdint.h> /* INFRINGES ON USER NAME SPACE */
222 # define YY_STDINT_H
223 # endif
224 #endif
225 
226 /* Narrow types that promote to a signed type and that can represent a
227  signed or unsigned integer of at least N bits. In tables they can
228  save space and decrease cache pressure. Promoting to a signed type
229  helps avoid bugs in integer arithmetic. */
230 
231 #ifdef __INT_LEAST8_MAX__
232 typedef __INT_LEAST8_TYPE__ yytype_int8;
233 #elif defined YY_STDINT_H
234 typedef int_least8_t yytype_int8;
235 #else
236 typedef signed char yytype_int8;
237 #endif
238 
239 #ifdef __INT_LEAST16_MAX__
240 typedef __INT_LEAST16_TYPE__ yytype_int16;
241 #elif defined YY_STDINT_H
243 #else
244 typedef short yytype_int16;
245 #endif
246 
247 /* Work around bug in HP-UX 11.23, which defines these macros
248  incorrectly for preprocessor constants. This workaround can likely
249  be removed in 2023, as HPE has promised support for HP-UX 11.23
250  (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
251  <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */
252 #ifdef __hpux
253 # undef UINT_LEAST8_MAX
254 # undef UINT_LEAST16_MAX
255 # define UINT_LEAST8_MAX 255
256 # define UINT_LEAST16_MAX 65535
257 #endif
258 
259 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
260 typedef __UINT_LEAST8_TYPE__ yytype_uint8;
261 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
262  && UINT_LEAST8_MAX <= INT_MAX)
264 #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
265 typedef unsigned char yytype_uint8;
266 #else
267 typedef short yytype_uint8;
268 #endif
269 
270 #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
271 typedef __UINT_LEAST16_TYPE__ yytype_uint16;
272 #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
273  && UINT_LEAST16_MAX <= INT_MAX)
275 #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
276 typedef unsigned short yytype_uint16;
277 #else
278 typedef int yytype_uint16;
279 #endif
280 
281 #ifndef YYPTRDIFF_T
282 # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
283 # define YYPTRDIFF_T __PTRDIFF_TYPE__
284 # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
285 # elif defined PTRDIFF_MAX
286 # ifndef ptrdiff_t
287 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
288 # endif
289 # define YYPTRDIFF_T ptrdiff_t
290 # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
291 # else
292 # define YYPTRDIFF_T long
293 # define YYPTRDIFF_MAXIMUM LONG_MAX
294 # endif
295 #endif
296 
297 #ifndef YYSIZE_T
298 # ifdef __SIZE_TYPE__
299 # define YYSIZE_T __SIZE_TYPE__
300 # elif defined size_t
301 # define YYSIZE_T size_t
302 # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
303 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
304 # define YYSIZE_T size_t
305 # else
306 # define YYSIZE_T unsigned
307 # endif
308 #endif
309 
310 #define YYSIZE_MAXIMUM \
311  YY_CAST (YYPTRDIFF_T, \
312  (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
313  ? YYPTRDIFF_MAXIMUM \
314  : YY_CAST (YYSIZE_T, -1)))
315 
316 #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
317 
318 
319 /* Stored state numbers (used for stacks). */
321 
322 /* State numbers in computations. */
323 typedef int yy_state_fast_t;
324 
325 #ifndef YY_
326 # if defined YYENABLE_NLS && YYENABLE_NLS
327 # if ENABLE_NLS
328 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
329 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
330 # endif
331 # endif
332 # ifndef YY_
333 # define YY_(Msgid) Msgid
334 # endif
335 #endif
336 
337 
338 #ifndef YY_ATTRIBUTE_PURE
339 # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
340 # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
341 # else
342 # define YY_ATTRIBUTE_PURE
343 # endif
344 #endif
345 
346 #ifndef YY_ATTRIBUTE_UNUSED
347 # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
348 # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
349 # else
350 # define YY_ATTRIBUTE_UNUSED
351 # endif
352 #endif
353 
354 /* Suppress unused-variable warnings by "using" E. */
355 #if ! defined lint || defined __GNUC__
356 # define YY_USE(E) ((void) (E))
357 #else
358 # define YY_USE(E) /* empty */
359 #endif
360 
361 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
362 #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
363 # if __GNUC__ * 100 + __GNUC_MINOR__ < 407
364 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
365  _Pragma ("GCC diagnostic push") \
366  _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
367 # else
368 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
369  _Pragma ("GCC diagnostic push") \
370  _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
371  _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
372 # endif
373 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
374  _Pragma ("GCC diagnostic pop")
375 #else
376 # define YY_INITIAL_VALUE(Value) Value
377 #endif
378 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
379 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
380 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
381 #endif
382 #ifndef YY_INITIAL_VALUE
383 # define YY_INITIAL_VALUE(Value) /* Nothing. */
384 #endif
385 
386 #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
387 # define YY_IGNORE_USELESS_CAST_BEGIN \
388  _Pragma ("GCC diagnostic push") \
389  _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
390 # define YY_IGNORE_USELESS_CAST_END \
391  _Pragma ("GCC diagnostic pop")
392 #endif
393 #ifndef YY_IGNORE_USELESS_CAST_BEGIN
394 # define YY_IGNORE_USELESS_CAST_BEGIN
395 # define YY_IGNORE_USELESS_CAST_END
396 #endif
397 
398 
399 #define YY_ASSERT(E) ((void) (0 && (E)))
400 
401 #if !defined yyoverflow
402 
403 /* The parser invokes alloca or malloc; define the necessary symbols. */
404 
405 # ifdef YYSTACK_USE_ALLOCA
406 # if YYSTACK_USE_ALLOCA
407 # ifdef __GNUC__
408 # define YYSTACK_ALLOC __builtin_alloca
409 # elif defined __BUILTIN_VA_ARG_INCR
410 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
411 # elif defined _AIX
412 # define YYSTACK_ALLOC __alloca
413 # elif defined _MSC_VER
414 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
415 # define alloca _alloca
416 # else
417 # define YYSTACK_ALLOC alloca
418 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
419 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
420  /* Use EXIT_SUCCESS as a witness for stdlib.h. */
421 # ifndef EXIT_SUCCESS
422 # define EXIT_SUCCESS 0
423 # endif
424 # endif
425 # endif
426 # endif
427 # endif
428 
429 # ifdef YYSTACK_ALLOC
430  /* Pacify GCC's 'empty if-body' warning. */
431 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
432 # ifndef YYSTACK_ALLOC_MAXIMUM
433  /* The OS might guarantee only one guard page at the bottom of the stack,
434  and a page size can be as small as 4096 bytes. So we cannot safely
435  invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
436  to allow for a few compiler-allocated temporary stack slots. */
437 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
438 # endif
439 # else
440 # define YYSTACK_ALLOC YYMALLOC
441 # define YYSTACK_FREE YYFREE
442 # ifndef YYSTACK_ALLOC_MAXIMUM
443 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
444 # endif
445 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
446  && ! ((defined YYMALLOC || defined malloc) \
447  && (defined YYFREE || defined free)))
448 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
449 # ifndef EXIT_SUCCESS
450 # define EXIT_SUCCESS 0
451 # endif
452 # endif
453 # ifndef YYMALLOC
454 # define YYMALLOC malloc
455 # if ! defined malloc && ! defined EXIT_SUCCESS
456 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
457 # endif
458 # endif
459 # ifndef YYFREE
460 # define YYFREE free
461 # if ! defined free && ! defined EXIT_SUCCESS
462 void free (void *); /* INFRINGES ON USER NAME SPACE */
463 # endif
464 # endif
465 # endif
466 #endif /* !defined yyoverflow */
467 
468 #if (! defined yyoverflow \
469  && (! defined __cplusplus \
470  || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
471 
472 /* A type that is properly aligned for any stack member. */
473 union yyalloc
474 {
477 };
478 
479 /* The size of the maximum gap between one aligned stack and the next. */
480 # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
481 
482 /* The size of an array large to enough to hold all stacks, each with
483  N elements. */
484 # define YYSTACK_BYTES(N) \
485  ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
486  + YYSTACK_GAP_MAXIMUM)
487 
488 # define YYCOPY_NEEDED 1
489 
490 /* Relocate STACK from its old location to the new one. The
491  local variables YYSIZE and YYSTACKSIZE give the old and new number of
492  elements in the stack, and YYPTR gives the new location of the
493  stack. Advance YYPTR to a properly aligned location for the next
494  stack. */
495 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
496  do \
497  { \
498  YYPTRDIFF_T yynewbytes; \
499  YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
500  Stack = &yyptr->Stack_alloc; \
501  yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
502  yyptr += yynewbytes / YYSIZEOF (*yyptr); \
503  } \
504  while (0)
505 
506 #endif
507 
508 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
509 /* Copy COUNT objects from SRC to DST. The source and destination do
510  not overlap. */
511 # ifndef YYCOPY
512 # if defined __GNUC__ && 1 < __GNUC__
513 # define YYCOPY(Dst, Src, Count) \
514  __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
515 # else
516 # define YYCOPY(Dst, Src, Count) \
517  do \
518  { \
519  YYPTRDIFF_T yyi; \
520  for (yyi = 0; yyi < (Count); yyi++) \
521  (Dst)[yyi] = (Src)[yyi]; \
522  } \
523  while (0)
524 # endif
525 # endif
526 #endif /* !YYCOPY_NEEDED */
527 
528 /* YYFINAL -- State number of the termination state. */
529 #define YYFINAL 7
530 /* YYLAST -- Last index in YYTABLE. */
531 #define YYLAST 94
532 
533 /* YYNTOKENS -- Number of terminals. */
534 #define YYNTOKENS 31
535 /* YYNNTS -- Number of nonterminals. */
536 #define YYNNTS 34
537 /* YYNRULES -- Number of rules. */
538 #define YYNRULES 69
539 /* YYNSTATES -- Number of states. */
540 #define YYNSTATES 105
541 
542 /* YYMAXUTOK -- Last valid token kind. */
543 #define YYMAXUTOK 285
544 
545 
546 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
547  as returned by yylex, with out-of-bounds checking. */
548 #define YYTRANSLATE(YYX) \
549  (0 <= (YYX) && (YYX) <= YYMAXUTOK \
550  ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
551  : YYSYMBOL_YYUNDEF)
552 
553 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
554  as returned by yylex. */
555 static const yytype_int8 yytranslate[] =
556 {
557  0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
558  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
559  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
560  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
561  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
562  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
563  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
564  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
565  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
566  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
567  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
568  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
569  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
570  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
571  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
572  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
573  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
574  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
575  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
576  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
577  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
578  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
579  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
580  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
581  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
582  2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
583  5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
584  15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
585  25, 26, 27, 28, 29, 30
586 };
587 
588 #if YYDEBUG
589 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
590 static const yytype_int16 yyrline[] =
591 {
592  0, 72, 72, 75, 74, 80, 79, 86, 89, 90,
593  95, 94, 99, 98, 103, 102, 106, 108, 110, 115,
594  114, 119, 121, 123, 125, 127, 131, 132, 135, 138,
595  141, 144, 147, 153, 154, 157, 160, 163, 166, 171,
596  172, 176, 177, 180, 183, 186, 189, 192, 195, 200,
597  200, 207, 206, 215, 214, 222, 222, 230, 229, 238,
598  237, 246, 248, 245, 256, 255, 262, 266, 273, 277
599 };
600 #endif
601 
602 /** Accessing symbol of state STATE. */
603 #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
604 
605 #if YYDEBUG || 0
606 /* The user-facing name of the symbol whose (internal) number is
607  YYSYMBOL. No bounds checking. */
608 static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
609 
610 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
611  First, the terminals, then, starting at YYNTOKENS, nonterminals. */
612 static const char *const yytname[] =
613 {
614  "\"end of file\"", "error", "\"invalid token\"", "TK_EOL", "TK_ERROR",
615  "TK_LPAREN", "TK_RPAREN", "TK_COLON", "TK_COMMA", "TK_IDENT",
616  "TK_COMMENT", "TK_OPERATOR", "TK_RAW", "TK_OMP_PRAGMA",
617  "TK_OMP_PARALLEL", "TK_OMP_LOOP", "TK_OMP_END", "TK_OMP_BARRIER",
618  "TK_OMP_MASTER", "TK_OMP_SINGLE", "TK_OMP_THREADPRIVATE",
619  "TK_OMP_SHARED", "TK_OMP_PRIVATE", "TK_OMP_NOWAIT", "TK_OMP_REDUCTION",
620  "TK_OMP_DEFAULT", "TK_OMP_COPYIN", "TK_OMP_FIRSTPRIVATE",
621  "TK_OMP_SCHEDULE", "TK_STEP_PRAGMA", "TK_STEP_TRANSFORMATION", "$accept",
622  "pragma", "$@1", "$@2", "step_transformation", "omp_comment",
623  "omp_directive", "@3", "@4", "@5", "@6", "omp_parallel_clauses",
624  "omp_loop_clauses", "omp_end_loop_clauses", "omp_parallel_loop_clauses",
625  "omp_shared", "$@7", "omp_private", "$@8", "omp_copyin", "$@9",
626  "omp_threadprivate_listvar", "$@10", "omp_firstprivate", "$@11",
627  "omp_schedule", "$@12", "omp_reduction", "$@13", "$@14", "omp_default",
628  "$@15", "string_list", "ident_list", YY_NULLPTR
629 };
630 
631 static const char *
633 {
634  return yytname[yysymbol];
635 }
636 #endif
637 
638 #define YYPACT_NINF (-76)
639 
640 #define yypact_value_is_default(Yyn) \
641  ((Yyn) == YYPACT_NINF)
642 
643 #define YYTABLE_NINF (-41)
644 
645 #define yytable_value_is_error(Yyn) \
646  0
647 
648 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
649  STATE-NUM. */
650 static const yytype_int8 yypact[] =
651 {
652  -10, -76, -76, -76, 13, 21, -2, -76, 14, -76,
653  47, -76, -76, -76, -76, 20, -76, 39, -76, -76,
654  -76, 28, 22, -76, -76, -76, -76, 43, -76, -76,
655  23, 29, -76, 36, -76, -76, 49, -76, -4, -76,
656  -76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
657  -76, -76, -76, -76, -76, -76, -76, 24, 46, -76,
658  -76, -76, -76, -76, -76, -76, 70, 71, 72, 73,
659  74, 75, 76, -76, 3, 46, 46, 77, 78, 46,
660  46, 80, -76, 81, 4, 25, -76, 79, 61, 62,
661  -76, 65, -76, -76, -76, 84, -76, -76, -76, -76,
662  83, 46, -76, 66, -76
663 };
664 
665 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
666  Performed when YYTABLE does not specify something else to do. Zero
667  means the default is an error. */
668 static const yytype_int8 yydefact[] =
669 {
670  0, 2, 3, 5, 0, 0, 0, 1, 10, 12,
671  0, 18, 16, 17, 19, 8, 7, 0, 14, 26,
672  33, 21, 33, 24, 25, 55, 9, 0, 6, 41,
673  11, 13, 23, 0, 22, 20, 0, 4, 15, 49,
674  51, 61, 64, 53, 57, 27, 28, 29, 30, 31,
675  32, 38, 59, 34, 35, 37, 36, 38, 0, 42,
676  43, 44, 45, 47, 46, 48, 0, 0, 0, 0,
677  0, 0, 0, 68, 0, 0, 0, 0, 0, 0,
678  0, 0, 56, 0, 0, 0, 62, 0, 0, 0,
679  66, 0, 69, 50, 52, 0, 65, 54, 58, 60,
680  0, 0, 67, 0, 63
681 };
682 
683 /* YYPGOTO[NTERM-NUM]. */
684 static const yytype_int8 yypgoto[] =
685 {
686  -76, -76, -76, -76, -76, -76, -76, -76, -76, -76,
687  -76, -76, 60, -76, -76, 45, -76, -24, -76, 48,
688  -76, -76, -76, -23, -76, 55, -76, -22, -76, -76,
689  56, -76, -76, -75
690 };
691 
692 /* YYDEFGOTO[NTERM-NUM]. */
693 static const yytype_int8 yydefgoto[] =
694 {
695  0, 4, 5, 6, 17, 27, 15, 19, 20, 29,
696  25, 30, 31, 34, 38, 45, 66, 53, 67, 47,
697  70, 35, 36, 54, 71, 55, 72, 56, 68, 95,
698  50, 69, 91, 74
699 };
700 
701 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
702  positive, shift that token. If negative, reduce the rule whose
703  number is the opposite. If YYTABLE_NINF, syntax error. */
704 static const yytype_int8 yytable[] =
705 {
706  84, 85, 1, 2, 88, 89, 46, 48, 49, 82,
707  93, 83, 83, 7, 60, 62, 64, 39, 40, 3,
708  41, 42, 43, 44, 52, -39, 103, -40, 16, 18,
709  26, 94, -39, 83, -40, 8, 9, 10, 11, 12,
710  13, 14, 28, 32, 39, 40, 37, 41, 42, 43,
711  44, 40, 51, 41, 58, 73, 44, 52, 40, 57,
712  41, 21, 22, 44, 52, 23, 24, 97, 98, 83,
713  83, 99, 104, 100, 83, 75, 76, 77, 78, 79,
714  80, 81, 33, 59, 0, 96, 61, 87, 86, 90,
715  92, 101, 102, 63, 65
716 };
717 
718 static const yytype_int8 yycheck[] =
719 {
720  75, 76, 12, 13, 79, 80, 30, 30, 30, 6,
721  6, 8, 8, 0, 38, 38, 38, 21, 22, 29,
722  24, 25, 26, 27, 28, 3, 101, 3, 30, 15,
723  10, 6, 10, 8, 10, 14, 15, 16, 17, 18,
724  19, 20, 3, 15, 21, 22, 3, 24, 25, 26,
725  27, 22, 23, 24, 5, 9, 27, 28, 22, 23,
726  24, 14, 15, 27, 28, 18, 19, 6, 6, 8,
727  8, 6, 6, 8, 8, 5, 5, 5, 5, 5,
728  5, 5, 22, 38, -1, 6, 38, 9, 11, 9,
729  9, 7, 9, 38, 38
730 };
731 
732 /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
733  state STATE-NUM. */
734 static const yytype_int8 yystos[] =
735 {
736  0, 12, 13, 29, 32, 33, 34, 0, 14, 15,
737  16, 17, 18, 19, 20, 37, 30, 35, 15, 38,
738  39, 14, 15, 18, 19, 41, 10, 36, 3, 40,
739  42, 43, 15, 43, 44, 52, 53, 3, 45, 21,
740  22, 24, 25, 26, 27, 46, 48, 50, 54, 58,
741  61, 23, 28, 48, 54, 56, 58, 23, 5, 46,
742  48, 50, 54, 56, 58, 61, 47, 49, 59, 62,
743  51, 55, 57, 9, 64, 5, 5, 5, 5, 5,
744  5, 5, 6, 8, 64, 64, 11, 9, 64, 64,
745  9, 63, 9, 6, 6, 60, 6, 6, 6, 6,
746  8, 7, 9, 64, 6
747 };
748 
749 /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
750 static const yytype_int8 yyr1[] =
751 {
752  0, 31, 32, 33, 32, 34, 32, 35, 36, 36,
753  38, 37, 39, 37, 40, 37, 37, 37, 37, 41,
754  37, 37, 37, 37, 37, 37, 42, 42, 42, 42,
755  42, 42, 42, 43, 43, 43, 43, 43, 43, 44,
756  44, 45, 45, 45, 45, 45, 45, 45, 45, 47,
757  46, 49, 48, 51, 50, 53, 52, 55, 54, 57,
758  56, 59, 60, 58, 62, 61, 63, 63, 64, 64
759 };
760 
761 /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
762 static const yytype_int8 yyr2[] =
763 {
764  0, 2, 1, 0, 5, 0, 4, 1, 0, 1,
765  0, 3, 0, 3, 0, 4, 1, 1, 1, 0,
766  3, 2, 3, 3, 2, 2, 0, 2, 2, 2,
767  2, 2, 2, 0, 2, 2, 2, 2, 2, 0,
768  2, 0, 2, 2, 2, 2, 2, 2, 2, 0,
769  5, 0, 5, 0, 5, 0, 4, 0, 5, 0,
770  5, 0, 0, 8, 0, 5, 1, 3, 1, 3
771 };
772 
773 
774 enum { YYENOMEM = -2 };
775 
776 #define yyerrok (yyerrstatus = 0)
777 #define yyclearin (yychar = YYEMPTY)
778 
779 #define YYACCEPT goto yyacceptlab
780 #define YYABORT goto yyabortlab
781 #define YYERROR goto yyerrorlab
782 #define YYNOMEM goto yyexhaustedlab
783 
784 
785 #define YYRECOVERING() (!!yyerrstatus)
786 
787 #define YYBACKUP(Token, Value) \
788  do \
789  if (yychar == YYEMPTY) \
790  { \
791  yychar = (Token); \
792  yylval = (Value); \
793  YYPOPSTACK (yylen); \
794  yystate = *yyssp; \
795  goto yybackup; \
796  } \
797  else \
798  { \
799  yyerror (YY_("syntax error: cannot back up")); \
800  YYERROR; \
801  } \
802  while (0)
803 
804 /* Backward compatibility with an undocumented macro.
805  Use YYerror or YYUNDEF. */
806 #define YYERRCODE YYUNDEF
807 
808 
809 /* Enable debugging if requested. */
810 #if YYDEBUG
811 
812 # ifndef YYFPRINTF
813 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
814 # define YYFPRINTF fprintf
815 # endif
816 
817 # define YYDPRINTF(Args) \
818 do { \
819  if (yydebug) \
820  YYFPRINTF Args; \
821 } while (0)
822 
823 
824 
825 
826 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
827 do { \
828  if (yydebug) \
829  { \
830  YYFPRINTF (stderr, "%s ", Title); \
831  yy_symbol_print (stderr, \
832  Kind, Value); \
833  YYFPRINTF (stderr, "\n"); \
834  } \
835 } while (0)
836 
837 
838 /*-----------------------------------.
839 | Print this symbol's value on YYO. |
840 `-----------------------------------*/
841 
842 static void
844  yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
845 {
846  FILE *yyoutput = yyo;
847  YY_USE (yyoutput);
848  if (!yyvaluep)
849  return;
851  YY_USE (yykind);
853 }
854 
855 
856 /*---------------------------.
857 | Print this symbol on YYO. |
858 `---------------------------*/
859 
860 static void
861 yy_symbol_print (FILE *yyo,
862  yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
863 {
864  YYFPRINTF (yyo, "%s %s (",
865  yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
866 
867  yy_symbol_value_print (yyo, yykind, yyvaluep);
868  YYFPRINTF (yyo, ")");
869 }
870 
871 /*------------------------------------------------------------------.
872 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
873 | TOP (included). |
874 `------------------------------------------------------------------*/
875 
876 static void
878 {
879  YYFPRINTF (stderr, "Stack now");
880  for (; yybottom <= yytop; yybottom++)
881  {
882  int yybot = *yybottom;
883  YYFPRINTF (stderr, " %d", yybot);
884  }
885  YYFPRINTF (stderr, "\n");
886 }
887 
888 # define YY_STACK_PRINT(Bottom, Top) \
889 do { \
890  if (yydebug) \
891  yy_stack_print ((Bottom), (Top)); \
892 } while (0)
893 
894 
895 /*------------------------------------------------.
896 | Report that the YYRULE is going to be reduced. |
897 `------------------------------------------------*/
898 
899 static void
901  int yyrule)
902 {
903  int yylno = yyrline[yyrule];
904  int yynrhs = yyr2[yyrule];
905  int yyi;
906  YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
907  yyrule - 1, yylno);
908  /* The symbols being reduced. */
909  for (yyi = 0; yyi < yynrhs; yyi++)
910  {
911  YYFPRINTF (stderr, " $%d = ", yyi + 1);
912  yy_symbol_print (stderr,
913  YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
914  &yyvsp[(yyi + 1) - (yynrhs)]);
915  YYFPRINTF (stderr, "\n");
916  }
917 }
918 
919 # define YY_REDUCE_PRINT(Rule) \
920 do { \
921  if (yydebug) \
922  yy_reduce_print (yyssp, yyvsp, Rule); \
923 } while (0)
924 
925 /* Nonzero means print parse trace. It is left uninitialized so that
926  multiple parsers can coexist. */
928 #else /* !YYDEBUG */
929 # define YYDPRINTF(Args) ((void) 0)
930 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
931 # define YY_STACK_PRINT(Bottom, Top)
932 # define YY_REDUCE_PRINT(Rule)
933 #endif /* !YYDEBUG */
934 
935 
936 /* YYINITDEPTH -- initial size of the parser's stacks. */
937 #ifndef YYINITDEPTH
938 # define YYINITDEPTH 200
939 #endif
940 
941 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
942  if the built-in stack extension method is used).
943 
944  Do not make this value too large; the results are undefined if
945  YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
946  evaluated with infinite-precision integer arithmetic. */
947 
948 #ifndef YYMAXDEPTH
949 # define YYMAXDEPTH 10000
950 #endif
951 
952 
953 
954 
955 
956 
957 /*-----------------------------------------------.
958 | Release the memory associated to this symbol. |
959 `-----------------------------------------------*/
960 
961 static void
962 yydestruct (const char *yymsg,
963  yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
964 {
965  YY_USE (yyvaluep);
966  if (!yymsg)
967  yymsg = "Deleting";
968  YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
969 
971  YY_USE (yykind);
973 }
974 
975 
976 /* Lookahead token kind. */
977 int yychar;
978 
979 /* The semantic value of the lookahead symbol. */
981 /* Number of syntax errors so far. */
983 
984 
985 
986 
987 /*----------.
988 | yyparse. |
989 `----------*/
990 
991 int
992 yyparse (void)
993 {
994  yy_state_fast_t yystate = 0;
995  /* Number of tokens to shift before error messages enabled. */
996  int yyerrstatus = 0;
997 
998  /* Refer to the stacks through separate pointers, to allow yyoverflow
999  to reallocate them elsewhere. */
1000 
1001  /* Their size. */
1002  YYPTRDIFF_T yystacksize = YYINITDEPTH;
1003 
1004  /* The state stack: array, bottom, top. */
1005  yy_state_t yyssa[YYINITDEPTH];
1006  yy_state_t *yyss = yyssa;
1007  yy_state_t *yyssp = yyss;
1008 
1009  /* The semantic value stack: array, bottom, top. */
1010  YYSTYPE yyvsa[YYINITDEPTH];
1011  YYSTYPE *yyvs = yyvsa;
1012  YYSTYPE *yyvsp = yyvs;
1013 
1014  int yyn;
1015  /* The return value of yyparse. */
1016  int yyresult;
1017  /* Lookahead symbol kind. */
1019  /* The variables used to return semantic value and location from the
1020  action routines. */
1021  YYSTYPE yyval;
1022 
1023 
1024 
1025 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1026 
1027  /* The number of symbols on the RHS of the reduced rule.
1028  Keep to zero when no symbol should be popped. */
1029  int yylen = 0;
1030 
1031  YYDPRINTF ((stderr, "Starting parse\n"));
1032 
1033  yychar = YYEMPTY; /* Cause a token to be read. */
1034 
1035  goto yysetstate;
1036 
1037 
1038 /*------------------------------------------------------------.
1039 | yynewstate -- push a new state, which is found in yystate. |
1040 `------------------------------------------------------------*/
1041 yynewstate:
1042  /* In all cases, when you get here, the value and location stacks
1043  have just been pushed. So pushing a state here evens the stacks. */
1044  yyssp++;
1045 
1046 
1047 /*--------------------------------------------------------------------.
1048 | yysetstate -- set current state (the top of the stack) to yystate. |
1049 `--------------------------------------------------------------------*/
1050 yysetstate:
1051  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1052  YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
1054  *yyssp = YY_CAST (yy_state_t, yystate);
1056  YY_STACK_PRINT (yyss, yyssp);
1057 
1058  if (yyss + yystacksize - 1 <= yyssp)
1059 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
1060  YYNOMEM;
1061 #else
1062  {
1063  /* Get the current used size of the three stacks, in elements. */
1064  YYPTRDIFF_T yysize = yyssp - yyss + 1;
1065 
1066 # if defined yyoverflow
1067  {
1068  /* Give user a chance to reallocate the stack. Use copies of
1069  these so that the &'s don't force the real ones into
1070  memory. */
1071  yy_state_t *yyss1 = yyss;
1072  YYSTYPE *yyvs1 = yyvs;
1073 
1074  /* Each stack pointer address is followed by the size of the
1075  data in use in that stack, in bytes. This used to be a
1076  conditional around just the two extra args, but that might
1077  be undefined if yyoverflow is a macro. */
1078  yyoverflow (YY_("memory exhausted"),
1079  &yyss1, yysize * YYSIZEOF (*yyssp),
1080  &yyvs1, yysize * YYSIZEOF (*yyvsp),
1081  &yystacksize);
1082  yyss = yyss1;
1083  yyvs = yyvs1;
1084  }
1085 # else /* defined YYSTACK_RELOCATE */
1086  /* Extend the stack our own way. */
1087  if (YYMAXDEPTH <= yystacksize)
1088  YYNOMEM;
1089  yystacksize *= 2;
1090  if (YYMAXDEPTH < yystacksize)
1091  yystacksize = YYMAXDEPTH;
1092 
1093  {
1094  yy_state_t *yyss1 = yyss;
1095  union yyalloc *yyptr =
1096  YY_CAST (union yyalloc *,
1097  YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
1098  if (! yyptr)
1099  YYNOMEM;
1100  YYSTACK_RELOCATE (yyss_alloc, yyss);
1101  YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1102 # undef YYSTACK_RELOCATE
1103  if (yyss1 != yyssa)
1104  YYSTACK_FREE (yyss1);
1105  }
1106 # endif
1107 
1108  yyssp = yyss + yysize - 1;
1109  yyvsp = yyvs + yysize - 1;
1110 
1112  YYDPRINTF ((stderr, "Stack size increased to %ld\n",
1113  YY_CAST (long, yystacksize)));
1115 
1116  if (yyss + yystacksize - 1 <= yyssp)
1117  YYABORT;
1118  }
1119 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
1120 
1121 
1122  if (yystate == YYFINAL)
1123  YYACCEPT;
1124 
1125  goto yybackup;
1126 
1127 
1128 /*-----------.
1129 | yybackup. |
1130 `-----------*/
1131 yybackup:
1132  /* Do appropriate processing given the current state. Read a
1133  lookahead token if we need one and don't already have one. */
1134 
1135  /* First try to decide what to do without reference to lookahead token. */
1136  yyn = yypact[yystate];
1137  if (yypact_value_is_default (yyn))
1138  goto yydefault;
1139 
1140  /* Not known => get a lookahead token if don't already have one. */
1141 
1142  /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */
1143  if (yychar == YYEMPTY)
1144  {
1145  YYDPRINTF ((stderr, "Reading a token\n"));
1146  yychar = yylex ();
1147  }
1148 
1149  if (yychar <= YYEOF)
1150  {
1151  yychar = YYEOF;
1152  yytoken = YYSYMBOL_YYEOF;
1153  YYDPRINTF ((stderr, "Now at end of input.\n"));
1154  }
1155  else if (yychar == YYerror)
1156  {
1157  /* The scanner already issued an error message, process directly
1158  to error recovery. But do not keep the error token as
1159  lookahead, it is too special and may lead us to an endless
1160  loop in error recovery. */
1161  yychar = YYUNDEF;
1162  yytoken = YYSYMBOL_YYerror;
1163  goto yyerrlab1;
1164  }
1165  else
1166  {
1167  yytoken = YYTRANSLATE (yychar);
1168  YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1169  }
1170 
1171  /* If the proper action on seeing token YYTOKEN is to reduce or to
1172  detect an error, take that action. */
1173  yyn += yytoken;
1174  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1175  goto yydefault;
1176  yyn = yytable[yyn];
1177  if (yyn <= 0)
1178  {
1179  if (yytable_value_is_error (yyn))
1180  goto yyerrlab;
1181  yyn = -yyn;
1182  goto yyreduce;
1183  }
1184 
1185  /* Count tokens shifted since error; after three, turn off error
1186  status. */
1187  if (yyerrstatus)
1188  yyerrstatus--;
1189 
1190  /* Shift the lookahead token. */
1191  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1192  yystate = yyn;
1194  *++yyvsp = yylval;
1196 
1197  /* Discard the shifted token. */
1198  yychar = YYEMPTY;
1199  goto yynewstate;
1200 
1201 
1202 /*-----------------------------------------------------------.
1203 | yydefault -- do the default action for the current state. |
1204 `-----------------------------------------------------------*/
1205 yydefault:
1206  yyn = yydefact[yystate];
1207  if (yyn == 0)
1208  goto yyerrlab;
1209  goto yyreduce;
1210 
1211 
1212 /*-----------------------------.
1213 | yyreduce -- do a reduction. |
1214 `-----------------------------*/
1215 yyreduce:
1216  /* yyn is the number of a rule to reduce with. */
1217  yylen = yyr2[yyn];
1218 
1219  /* If YYLEN is nonzero, implement the default value of the action:
1220  '$$ = $1'.
1221 
1222  Otherwise, the following line sets YYVAL to garbage.
1223  This behavior is undocumented and Bison
1224  users should not rely upon it. Assigning to YYVAL
1225  unconditionally makes the parser a bit smaller, and it avoids a
1226  GCC warning that YYVAL may be used uninitialized. */
1227  yyval = yyvsp[1-yylen];
1228 
1229 
1230  YY_REDUCE_PRINT (yyn);
1231  switch (yyn)
1232  {
1233  case 2: /* pragma: TK_RAW */
1234 #line 72 "step_bison_parser.y"
1235  { pips_user_warning("unknown pragma : %s\n", (yyvsp[0].string));}
1236 #line 1237 "step_bison_parser.c"
1237  break;
1238 
1239  case 3: /* $@1: %empty */
1240 #line 75 "step_bison_parser.y"
1241  { pips_debug(1,"OMP pragma begin\n"); remove_old_pragma(); }
1242 #line 1243 "step_bison_parser.c"
1243  break;
1244 
1245  case 4: /* pragma: TK_OMP_PRAGMA $@1 omp_directive omp_comment TK_EOL */
1246 #line 77 "step_bison_parser.y"
1247  { pips_debug(1,"OMP pragma end\n"); step_directive_print((yyvsp[-2].step_directive)); }
1248 #line 1249 "step_bison_parser.c"
1249  break;
1250 
1251  case 5: /* $@2: %empty */
1252 #line 80 "step_bison_parser.y"
1253  { pips_debug(1,"STEP pragma begin\n"); remove_old_pragma(); }
1254 #line 1255 "step_bison_parser.c"
1255  break;
1256 
1257  case 6: /* pragma: TK_STEP_PRAGMA $@2 step_transformation TK_EOL */
1258 #line 82 "step_bison_parser.y"
1259  { pips_debug(1,"STEP pragma end\n"); }
1260 #line 1261 "step_bison_parser.c"
1261  break;
1262 
1263  case 7: /* step_transformation: TK_STEP_TRANSFORMATION */
1264 #line 86 "step_bison_parser.y"
1265  { pips_debug(1, "STEP transform : %d\n", (yyvsp[0].integer)); set_current_transform((yyvsp[0].integer));}
1266 #line 1267 "step_bison_parser.c"
1267  break;
1268 
1269  case 9: /* omp_comment: TK_COMMENT */
1270 #line 90 "step_bison_parser.y"
1271  { pips_debug(1,"COMMENT : %s\n", (yyvsp[0].string));}
1272 #line 1273 "step_bison_parser.c"
1273  break;
1274 
1275  case 10: /* @3: %empty */
1276 #line 95 "step_bison_parser.y"
1277  { (yyval.step_directive) = begin_omp_construct((yyvsp[0].integer), "PARALLEL"); }
1278 #line 1279 "step_bison_parser.c"
1279  break;
1280 
1281  case 11: /* omp_directive: TK_OMP_PARALLEL @3 omp_parallel_clauses */
1282 #line 97 "step_bison_parser.y"
1283  { (yyval.step_directive) = concat_drt_clauses((yyvsp[-1].step_directive), (yyvsp[0].liste)); }
1284 #line 1285 "step_bison_parser.c"
1285  break;
1286 
1287  case 12: /* @4: %empty */
1288 #line 99 "step_bison_parser.y"
1289  { (yyval.step_directive) = begin_omp_construct((yyvsp[0].integer), "LOOP"); }
1290 #line 1291 "step_bison_parser.c"
1291  break;
1292 
1293  case 13: /* omp_directive: TK_OMP_LOOP @4 omp_loop_clauses */
1294 #line 101 "step_bison_parser.y"
1295  { (yyval.step_directive) = concat_drt_clauses((yyvsp[-1].step_directive), (yyvsp[0].liste)); }
1296 #line 1297 "step_bison_parser.c"
1297  break;
1298 
1299  case 14: /* @5: %empty */
1300 #line 103 "step_bison_parser.y"
1301  { (yyval.step_directive)=begin_omp_construct(STEP_PARALLEL_DO, "PARALLEL LOOP");}
1302 #line 1303 "step_bison_parser.c"
1303  break;
1304 
1305  case 15: /* omp_directive: TK_OMP_PARALLEL TK_OMP_LOOP @5 omp_parallel_loop_clauses */
1306 #line 105 "step_bison_parser.y"
1307  { (yyval.step_directive) = concat_drt_clauses((yyvsp[-1].step_directive), (yyvsp[0].liste)); }
1308 #line 1309 "step_bison_parser.c"
1309  break;
1310 
1311  case 16: /* omp_directive: TK_OMP_MASTER */
1312 #line 107 "step_bison_parser.y"
1313  { (yyval.step_directive) = begin_omp_construct((yyvsp[0].integer), "MASTER");}
1314 #line 1315 "step_bison_parser.c"
1315  break;
1316 
1317  case 17: /* omp_directive: TK_OMP_SINGLE */
1318 #line 109 "step_bison_parser.y"
1319  { (yyval.step_directive) = begin_omp_construct((yyvsp[0].integer), "SINGLE");}
1320 #line 1321 "step_bison_parser.c"
1321  break;
1322 
1323  case 18: /* omp_directive: TK_OMP_BARRIER */
1324 #line 111 "step_bison_parser.y"
1325  { step_directive drt = begin_omp_construct((yyvsp[0].integer), "BARRIER");
1326  end_omp_construct((yyvsp[0].integer));
1327  (yyval.step_directive) = drt; }
1328 #line 1329 "step_bison_parser.c"
1329  break;
1330 
1331  case 19: /* @6: %empty */
1332 #line 115 "step_bison_parser.y"
1333  { (yyval.step_directive) = begin_omp_construct((yyvsp[0].integer), "THREADPRIVATE");}
1334 #line 1335 "step_bison_parser.c"
1335  break;
1336 
1337  case 20: /* omp_directive: TK_OMP_THREADPRIVATE @6 omp_threadprivate_listvar */
1338 #line 117 "step_bison_parser.y"
1339  { (yyval.step_directive) = concat_drt_clauses((yyvsp[-1].step_directive), (yyvsp[0].liste));
1340  end_omp_construct((yyvsp[-2].integer));}
1341 #line 1342 "step_bison_parser.c"
1342  break;
1343 
1344  case 21: /* omp_directive: TK_OMP_END TK_OMP_PARALLEL */
1345 #line 120 "step_bison_parser.y"
1346  { (yyval.step_directive) = end_omp_construct((yyvsp[0].integer));}
1347 #line 1348 "step_bison_parser.c"
1348  break;
1349 
1350  case 22: /* omp_directive: TK_OMP_END TK_OMP_LOOP omp_end_loop_clauses */
1351 #line 122 "step_bison_parser.y"
1352  { (yyval.step_directive) = concat_drt_clauses(end_omp_construct((yyvsp[-1].integer)), (yyvsp[0].liste)); }
1353 #line 1354 "step_bison_parser.c"
1354  break;
1355 
1356  case 23: /* omp_directive: TK_OMP_END TK_OMP_PARALLEL TK_OMP_LOOP */
1357 #line 124 "step_bison_parser.y"
1359 #line 1360 "step_bison_parser.c"
1360  break;
1361 
1362  case 24: /* omp_directive: TK_OMP_END TK_OMP_MASTER */
1363 #line 126 "step_bison_parser.y"
1364  { (yyval.step_directive) = end_omp_construct((yyvsp[0].integer));}
1365 #line 1366 "step_bison_parser.c"
1366  break;
1367 
1368  case 25: /* omp_directive: TK_OMP_END TK_OMP_SINGLE */
1369 #line 128 "step_bison_parser.y"
1370  { (yyval.step_directive) = end_omp_construct((yyvsp[0].integer));}
1371 #line 1372 "step_bison_parser.c"
1372  break;
1373 
1374  case 26: /* omp_parallel_clauses: %empty */
1375 #line 131 "step_bison_parser.y"
1376  {(yyval.liste)=NIL;}
1377 #line 1378 "step_bison_parser.c"
1378  break;
1379 
1380  case 27: /* omp_parallel_clauses: omp_parallel_clauses omp_shared */
1381 #line 133 "step_bison_parser.y"
1382  { pips_debug(1, "clause SHARED\n");
1383  (yyval.liste) = CONS(STEP_CLAUSE, (yyvsp[0].step_clause), (yyvsp[-1].liste)); }
1384 #line 1385 "step_bison_parser.c"
1385  break;
1386 
1387  case 28: /* omp_parallel_clauses: omp_parallel_clauses omp_private */
1388 #line 136 "step_bison_parser.y"
1389  { pips_debug(1, "clause PRIVATE\n");
1390  (yyval.liste) = CONS(STEP_CLAUSE, (yyvsp[0].step_clause), (yyvsp[-1].liste)); }
1391 #line 1392 "step_bison_parser.c"
1392  break;
1393 
1394  case 29: /* omp_parallel_clauses: omp_parallel_clauses omp_copyin */
1395 #line 139 "step_bison_parser.y"
1396  { pips_debug(1, "clause COPYIN\n");
1397  (yyval.liste) = CONS(STEP_CLAUSE, (yyvsp[0].step_clause), (yyvsp[-1].liste)); }
1398 #line 1399 "step_bison_parser.c"
1399  break;
1400 
1401  case 30: /* omp_parallel_clauses: omp_parallel_clauses omp_firstprivate */
1402 #line 142 "step_bison_parser.y"
1403  { pips_debug(1, "clause FIRSTPRIVATE\n");
1404  (yyval.liste) = CONS(STEP_CLAUSE, (yyvsp[0].step_clause), (yyvsp[-1].liste)); }
1405 #line 1406 "step_bison_parser.c"
1406  break;
1407 
1408  case 31: /* omp_parallel_clauses: omp_parallel_clauses omp_reduction */
1409 #line 145 "step_bison_parser.y"
1410  { pips_debug(1, "clause REDUCTION\n");
1411  (yyval.liste) = CONS(STEP_CLAUSE, (yyvsp[0].step_clause), (yyvsp[-1].liste)); }
1412 #line 1413 "step_bison_parser.c"
1413  break;
1414 
1415  case 32: /* omp_parallel_clauses: omp_parallel_clauses omp_default */
1416 #line 148 "step_bison_parser.y"
1417  { pips_debug(1, "clause DEFAULT SKIPPED\n");
1418  (yyval.liste) = (yyvsp[-1].liste); }
1419 #line 1420 "step_bison_parser.c"
1420  break;
1421 
1422  case 33: /* omp_loop_clauses: %empty */
1423 #line 153 "step_bison_parser.y"
1424  {(yyval.liste)=NIL;}
1425 #line 1426 "step_bison_parser.c"
1426  break;
1427 
1428  case 34: /* omp_loop_clauses: omp_loop_clauses omp_private */
1429 #line 155 "step_bison_parser.y"
1430  { pips_debug(1, "clause PRIVATE\n");
1431  (yyval.liste) = CONS(STEP_CLAUSE, (yyvsp[0].step_clause), (yyvsp[-1].liste));}
1432 #line 1433 "step_bison_parser.c"
1433  break;
1434 
1435  case 35: /* omp_loop_clauses: omp_loop_clauses omp_firstprivate */
1436 #line 158 "step_bison_parser.y"
1437  { pips_debug(1, "clause FIRSTPRIVATE\n");
1438  (yyval.liste) = CONS(STEP_CLAUSE, (yyvsp[0].step_clause), (yyvsp[-1].liste));}
1439 #line 1440 "step_bison_parser.c"
1440  break;
1441 
1442  case 36: /* omp_loop_clauses: omp_loop_clauses omp_reduction */
1443 #line 161 "step_bison_parser.y"
1444  { pips_debug(1, "clause REDUCTION\n");
1445  (yyval.liste) = CONS(STEP_CLAUSE, (yyvsp[0].step_clause), (yyvsp[-1].liste));}
1446 #line 1447 "step_bison_parser.c"
1447  break;
1448 
1449  case 37: /* omp_loop_clauses: omp_loop_clauses omp_schedule */
1450 #line 164 "step_bison_parser.y"
1451  { pips_debug(1, "clause SCHEDULE\n");
1452  (yyval.liste) = CONS(STEP_CLAUSE, (yyvsp[0].step_clause), (yyvsp[-1].liste));}
1453 #line 1454 "step_bison_parser.c"
1454  break;
1455 
1456  case 38: /* omp_loop_clauses: omp_loop_clauses TK_OMP_NOWAIT */
1457 #line 167 "step_bison_parser.y"
1458  { pips_debug(1, "clause NOWAIT\n");
1459  (yyval.liste) = CONS(STEP_CLAUSE, make_step_clause_nowait(), (yyvsp[-1].liste));}
1460 #line 1461 "step_bison_parser.c"
1461  break;
1462 
1463  case 39: /* omp_end_loop_clauses: %empty */
1464 #line 171 "step_bison_parser.y"
1465  {(yyval.liste)=NIL;}
1466 #line 1467 "step_bison_parser.c"
1467  break;
1468 
1469  case 40: /* omp_end_loop_clauses: omp_loop_clauses TK_OMP_NOWAIT */
1470 #line 172 "step_bison_parser.y"
1471  {pips_debug(1, "clause NOWAIT\n");
1472  (yyval.liste) = CONS(STEP_CLAUSE, make_step_clause_nowait(), (yyvsp[-1].liste));}
1473 #line 1474 "step_bison_parser.c"
1474  break;
1475 
1476  case 41: /* omp_parallel_loop_clauses: %empty */
1477 #line 176 "step_bison_parser.y"
1478  { (yyval.liste)=NIL; }
1479 #line 1480 "step_bison_parser.c"
1480  break;
1481 
1482  case 42: /* omp_parallel_loop_clauses: omp_parallel_loop_clauses omp_shared */
1483 #line 178 "step_bison_parser.y"
1484  { pips_debug(1, "clause SHARED\n");
1485  (yyval.liste) = CONS(STEP_CLAUSE, (yyvsp[0].step_clause), (yyvsp[-1].liste)); }
1486 #line 1487 "step_bison_parser.c"
1487  break;
1488 
1489  case 43: /* omp_parallel_loop_clauses: omp_parallel_loop_clauses omp_private */
1490 #line 181 "step_bison_parser.y"
1491  { pips_debug(1, "clause PRIVATE\n");
1492  (yyval.liste) = CONS(STEP_CLAUSE, (yyvsp[0].step_clause), (yyvsp[-1].liste)); }
1493 #line 1494 "step_bison_parser.c"
1494  break;
1495 
1496  case 44: /* omp_parallel_loop_clauses: omp_parallel_loop_clauses omp_copyin */
1497 #line 184 "step_bison_parser.y"
1498  { pips_debug(1, "clause COPYIN\n");
1499  (yyval.liste) = CONS(STEP_CLAUSE, (yyvsp[0].step_clause), (yyvsp[-1].liste)); }
1500 #line 1501 "step_bison_parser.c"
1501  break;
1502 
1503  case 45: /* omp_parallel_loop_clauses: omp_parallel_loop_clauses omp_firstprivate */
1504 #line 187 "step_bison_parser.y"
1505  { pips_debug(1, "clause FIRSTPRIVATE\n");
1506  (yyval.liste) = CONS(STEP_CLAUSE, (yyvsp[0].step_clause), (yyvsp[-1].liste)); }
1507 #line 1508 "step_bison_parser.c"
1508  break;
1509 
1510  case 46: /* omp_parallel_loop_clauses: omp_parallel_loop_clauses omp_reduction */
1511 #line 190 "step_bison_parser.y"
1512  { pips_debug(1, "clause REDUCTION\n");
1513  (yyval.liste) = CONS(STEP_CLAUSE, (yyvsp[0].step_clause), (yyvsp[-1].liste)); }
1514 #line 1515 "step_bison_parser.c"
1515  break;
1516 
1517  case 47: /* omp_parallel_loop_clauses: omp_parallel_loop_clauses omp_schedule */
1518 #line 193 "step_bison_parser.y"
1519  { pips_debug(1, "clause SCHEDULE\n");
1520  (yyval.liste) = CONS(STEP_CLAUSE, (yyvsp[0].step_clause), (yyvsp[-1].liste)); }
1521 #line 1522 "step_bison_parser.c"
1522  break;
1523 
1524  case 48: /* omp_parallel_loop_clauses: omp_parallel_loop_clauses omp_default */
1525 #line 196 "step_bison_parser.y"
1526  { pips_debug(1, "clause DEFAULT SKIPPED\n");
1527  (yyval.liste) = (yyvsp[-1].liste); }
1528 #line 1529 "step_bison_parser.c"
1529  break;
1530 
1531  case 49: /* $@7: %empty */
1532 #line 200 "step_bison_parser.y"
1533  {pips_debug(2, "SHARED begin \n");}
1534 #line 1535 "step_bison_parser.c"
1535  break;
1536 
1537  case 50: /* omp_shared: TK_OMP_SHARED $@7 TK_LPAREN ident_list TK_RPAREN */
1538 #line 201 "step_bison_parser.y"
1539  {pips_debug(2, "SHARED end\n");
1540  (yyval.step_clause) = make_step_clause_shared((yyvsp[-1].liste));}
1541 #line 1542 "step_bison_parser.c"
1542  break;
1543 
1544  case 51: /* $@8: %empty */
1545 #line 207 "step_bison_parser.y"
1546  { pips_debug(2, "PRIVATE begin \n");}
1547 #line 1548 "step_bison_parser.c"
1548  break;
1549 
1550  case 52: /* omp_private: TK_OMP_PRIVATE $@8 TK_LPAREN ident_list TK_RPAREN */
1551 #line 209 "step_bison_parser.y"
1552  { pips_debug(2, "PRIVATE end\n");
1553  (yyval.step_clause) = make_step_clause_private((yyvsp[-1].liste));}
1554 #line 1555 "step_bison_parser.c"
1555  break;
1556 
1557  case 53: /* $@9: %empty */
1558 #line 215 "step_bison_parser.y"
1559  { pips_debug(2, "COPYIN begin \n");}
1560 #line 1561 "step_bison_parser.c"
1561  break;
1562 
1563  case 54: /* omp_copyin: TK_OMP_COPYIN $@9 TK_LPAREN ident_list TK_RPAREN */
1564 #line 217 "step_bison_parser.y"
1565  { pips_debug(2, "COPYIN end\n");
1566  (yyval.step_clause) = make_step_clause_copyin((yyvsp[-1].liste));}
1567 #line 1568 "step_bison_parser.c"
1568  break;
1569 
1570  case 55: /* $@10: %empty */
1571 #line 222 "step_bison_parser.y"
1572  { pips_debug(2, "THREADPRIVATE begin \n");}
1573 #line 1574 "step_bison_parser.c"
1574  break;
1575 
1576  case 56: /* omp_threadprivate_listvar: $@10 TK_LPAREN ident_list TK_RPAREN */
1577 #line 224 "step_bison_parser.y"
1578  { pips_debug(2, "THREADPRIVATE end\n");
1579  (yyval.liste) = CONS(STEP_CLAUSE, make_step_clause_threadprivate((yyvsp[-1].liste)),NIL);}
1580 #line 1581 "step_bison_parser.c"
1581  break;
1582 
1583  case 57: /* $@11: %empty */
1584 #line 230 "step_bison_parser.y"
1585  { pips_debug(2, "FIRSTPRIVATE begin \n");}
1586 #line 1587 "step_bison_parser.c"
1587  break;
1588 
1589  case 58: /* omp_firstprivate: TK_OMP_FIRSTPRIVATE $@11 TK_LPAREN ident_list TK_RPAREN */
1590 #line 232 "step_bison_parser.y"
1591  { pips_debug(2, "FIRSTPRIVATE end\n");
1592  (yyval.step_clause) = make_step_clause_firstprivate((yyvsp[-1].liste));}
1593 #line 1594 "step_bison_parser.c"
1594  break;
1595 
1596  case 59: /* $@12: %empty */
1597 #line 238 "step_bison_parser.y"
1598  { pips_debug(2, "SCHEDULE begin \n");}
1599 #line 1600 "step_bison_parser.c"
1600  break;
1601 
1602  case 60: /* omp_schedule: TK_OMP_SCHEDULE $@12 TK_LPAREN string_list TK_RPAREN */
1603 #line 240 "step_bison_parser.y"
1604  { pips_debug(2, "SCHEDULE end\n");
1605  (yyval.step_clause) = make_step_clause_schedule(gen_nreverse((yyvsp[-1].liste))); }
1606 #line 1607 "step_bison_parser.c"
1607  break;
1608 
1609  case 61: /* $@13: %empty */
1610 #line 246 "step_bison_parser.y"
1611  { pips_debug(2, "REDUCTION begin\n"); }
1612 #line 1613 "step_bison_parser.c"
1613  break;
1614 
1615  case 62: /* $@14: %empty */
1616 #line 248 "step_bison_parser.y"
1617  { pips_debug(2, "OPERATOR %d\n", (yyvsp[0].integer)); }
1618 #line 1619 "step_bison_parser.c"
1619  break;
1620 
1621  case 63: /* omp_reduction: TK_OMP_REDUCTION $@13 TK_LPAREN TK_OPERATOR $@14 TK_COLON ident_list TK_RPAREN */
1622 #line 250 "step_bison_parser.y"
1623  { pips_debug(2, "REDUCTION end\n");
1624  (yyval.step_clause) = step_handle_reduction_clause((yyvsp[-1].liste), (yyvsp[-4].integer)); }
1625 #line 1626 "step_bison_parser.c"
1626  break;
1627 
1628  case 64: /* $@15: %empty */
1629 #line 256 "step_bison_parser.y"
1630  { pips_debug(2, "DEFAULT begin\n"); }
1631 #line 1632 "step_bison_parser.c"
1632  break;
1633 
1634  case 65: /* omp_default: TK_OMP_DEFAULT $@15 TK_LPAREN TK_IDENT TK_RPAREN */
1635 #line 258 "step_bison_parser.y"
1636  { pips_debug(2, "DEFAULT %s end\n", (yyvsp[-1].string)); }
1637 #line 1638 "step_bison_parser.c"
1638  break;
1639 
1640  case 66: /* string_list: TK_IDENT */
1641 #line 263 "step_bison_parser.y"
1642  { pips_debug(2, "first string %s\n", (yyvsp[0].string));
1643  (yyval.liste) = CONS(STRING, (yyvsp[0].string), NIL);
1644  }
1645 #line 1646 "step_bison_parser.c"
1646  break;
1647 
1648  case 67: /* string_list: string_list TK_COMMA TK_IDENT */
1649 #line 267 "step_bison_parser.y"
1650  { pips_debug(2, "next IDENT %s\n", (yyvsp[0].string));
1651  (yyval.liste) = CONS(STRING, (yyvsp[0].string), (yyvsp[-2].liste));
1652  }
1653 #line 1654 "step_bison_parser.c"
1654  break;
1655 
1656  case 68: /* ident_list: TK_IDENT */
1657 #line 274 "step_bison_parser.y"
1658  { pips_debug(2, "first IDENT %s\n", (yyvsp[0].string));
1659  (yyval.liste) = step_add_to_ident_list((yyvsp[0].string), NIL);
1660  }
1661 #line 1662 "step_bison_parser.c"
1662  break;
1663 
1664  case 69: /* ident_list: ident_list TK_COMMA TK_IDENT */
1665 #line 278 "step_bison_parser.y"
1666  { pips_debug(2, "next IDENT %s\n", (yyvsp[0].string));
1667  (yyval.liste) = step_add_to_ident_list((yyvsp[0].string), (yyvsp[-2].liste));
1668  }
1669 #line 1670 "step_bison_parser.c"
1670  break;
1671 
1672 
1673 #line 1674 "step_bison_parser.c"
1674 
1675  default: break;
1676  }
1677  /* User semantic actions sometimes alter yychar, and that requires
1678  that yytoken be updated with the new translation. We take the
1679  approach of translating immediately before every use of yytoken.
1680  One alternative is translating here after every semantic action,
1681  but that translation would be missed if the semantic action invokes
1682  YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
1683  if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
1684  incorrect destructor might then be invoked immediately. In the
1685  case of YYERROR or YYBACKUP, subsequent parser actions might lead
1686  to an incorrect destructor call or verbose syntax error message
1687  before the lookahead is translated. */
1688  YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
1689 
1690  YYPOPSTACK (yylen);
1691  yylen = 0;
1692 
1693  *++yyvsp = yyval;
1694 
1695  /* Now 'shift' the result of the reduction. Determine what state
1696  that goes to, based on the state we popped back to and the rule
1697  number reduced by. */
1698  {
1699  const int yylhs = yyr1[yyn] - YYNTOKENS;
1700  const int yyi = yypgoto[yylhs] + *yyssp;
1701  yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
1702  ? yytable[yyi]
1703  : yydefgoto[yylhs]);
1704  }
1705 
1706  goto yynewstate;
1707 
1708 
1709 /*--------------------------------------.
1710 | yyerrlab -- here on detecting error. |
1711 `--------------------------------------*/
1712 yyerrlab:
1713  /* Make sure we have latest lookahead translation. See comments at
1714  user semantic actions for why this is necessary. */
1715  yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
1716  /* If not already recovering from an error, report this error. */
1717  if (!yyerrstatus)
1718  {
1719  ++yynerrs;
1720  yyerror (YY_("syntax error"));
1721  }
1722 
1723  if (yyerrstatus == 3)
1724  {
1725  /* If just tried and failed to reuse lookahead token after an
1726  error, discard it. */
1727 
1728  if (yychar <= YYEOF)
1729  {
1730  /* Return failure if at end of input. */
1731  if (yychar == YYEOF)
1732  YYABORT;
1733  }
1734  else
1735  {
1736  yydestruct ("Error: discarding",
1737  yytoken, &yylval);
1738  yychar = YYEMPTY;
1739  }
1740  }
1741 
1742  /* Else will try to reuse lookahead token after shifting the error
1743  token. */
1744  goto yyerrlab1;
1745 
1746 
1747 /*---------------------------------------------------.
1748 | yyerrorlab -- error raised explicitly by YYERROR. |
1749 `---------------------------------------------------*/
1750 yyerrorlab:
1751  /* Pacify compilers when the user code never invokes YYERROR and the
1752  label yyerrorlab therefore never appears in user code. */
1753  if (0)
1754  YYERROR;
1755  ++yynerrs;
1756 
1757  /* Do not reclaim the symbols of the rule whose action triggered
1758  this YYERROR. */
1759  YYPOPSTACK (yylen);
1760  yylen = 0;
1761  YY_STACK_PRINT (yyss, yyssp);
1762  yystate = *yyssp;
1763  goto yyerrlab1;
1764 
1765 
1766 /*-------------------------------------------------------------.
1767 | yyerrlab1 -- common code for both syntax error and YYERROR. |
1768 `-------------------------------------------------------------*/
1769 yyerrlab1:
1770  yyerrstatus = 3; /* Each real token shifted decrements this. */
1771 
1772  /* Pop stack until we find a state that shifts the error token. */
1773  for (;;)
1774  {
1775  yyn = yypact[yystate];
1776  if (!yypact_value_is_default (yyn))
1777  {
1778  yyn += YYSYMBOL_YYerror;
1779  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
1780  {
1781  yyn = yytable[yyn];
1782  if (0 < yyn)
1783  break;
1784  }
1785  }
1786 
1787  /* Pop the current state because it cannot handle the error token. */
1788  if (yyssp == yyss)
1789  YYABORT;
1790 
1791 
1792  yydestruct ("Error: popping",
1793  YY_ACCESSING_SYMBOL (yystate), yyvsp);
1794  YYPOPSTACK (1);
1795  yystate = *yyssp;
1796  YY_STACK_PRINT (yyss, yyssp);
1797  }
1798 
1800  *++yyvsp = yylval;
1802 
1803 
1804  /* Shift the error token. */
1805  YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
1806 
1807  yystate = yyn;
1808  goto yynewstate;
1809 
1810 
1811 /*-------------------------------------.
1812 | yyacceptlab -- YYACCEPT comes here. |
1813 `-------------------------------------*/
1814 yyacceptlab:
1815  yyresult = 0;
1816  goto yyreturnlab;
1817 
1818 
1819 /*-----------------------------------.
1820 | yyabortlab -- YYABORT comes here. |
1821 `-----------------------------------*/
1822 yyabortlab:
1823  yyresult = 1;
1824  goto yyreturnlab;
1825 
1826 
1827 /*-----------------------------------------------------------.
1828 | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. |
1829 `-----------------------------------------------------------*/
1830 yyexhaustedlab:
1831  yyerror (YY_("memory exhausted"));
1832  yyresult = 2;
1833  goto yyreturnlab;
1834 
1835 
1836 /*----------------------------------------------------------.
1837 | yyreturnlab -- parsing is finished, clean up and return. |
1838 `----------------------------------------------------------*/
1839 yyreturnlab:
1840  if (yychar != YYEMPTY)
1841  {
1842  /* Make sure we have latest lookahead translation. See comments at
1843  user semantic actions for why this is necessary. */
1844  yytoken = YYTRANSLATE (yychar);
1845  yydestruct ("Cleanup: discarding lookahead",
1846  yytoken, &yylval);
1847  }
1848  /* Do not reclaim the symbols of the rule whose action triggered
1849  this YYABORT or YYACCEPT. */
1850  YYPOPSTACK (yylen);
1851  YY_STACK_PRINT (yyss, yyssp);
1852  while (yyssp != yyss)
1853  {
1854  yydestruct ("Cleanup: popping",
1855  YY_ACCESSING_SYMBOL (+*yyssp), yyvsp);
1856  YYPOPSTACK (1);
1857  }
1858 #ifndef yyoverflow
1859  if (yyss != yyssa)
1860  YYSTACK_FREE (yyss);
1861 #endif
1862 
1863  return yyresult;
1864 }
1865 
1866 #line 283 "step_bison_parser.y"
1867 
1868 
1869 static cons * step_add_to_ident_list(string name, cons * list)
1870 {
1871  pips_debug(2, "begin\n");
1872  entity e = entity_from_user_name(name);
1873  pips_assert("entity", !entity_undefined_p(e));
1874  pips_debug(2, "end\n");
1875  return CONS(ENTITY, e, list);
1876 }
1877 
1878 static step_clause step_handle_reduction_clause(cons *ident_liste, int op)
1879 {
1880  pips_debug(2, "begin\n");
1882  FOREACH(ENTITY, e, ident_liste)
1883  {
1884  pips_assert("first reduction", !bound_map_entity_int_p(reductions, e));
1885  pips_debug(2,"add reduction %d variable : %s)\n", op, entity_name(e));
1887  }
1888  gen_free_list(ident_liste);
1889  pips_debug(2, "end\n");
1891 }
1892 
1894 {
1895  pips_debug(2, "begin\n");
1896  step_directive_clauses(drt)= gen_nconc(liste_clauses, step_directive_clauses(drt));
1897  pips_debug(2, "end\n");
1898  return drt;
1899 }
1900 
1902 {
1903  string pragma_str = pragma_string(pgm);
1904 
1905  if(pragma_str[strlen(pragma_str)-1]!= '\n')
1906  pragma_str = strdup(concatenate(pragma_string(pgm),"\n",NULL));
1907  else
1908  pragma_str = strdup(pragma_string(pgm));
1909 
1910  pips_debug(1, "############### PARSER BEGIN ################\nwith :\n%s\non stmt : %p\n", pragma_str, stmt);
1911  ifdebug(4)
1912  yydebug=1;
1913  pragma_str_original = strdup(pragma_str);
1914  step_lexer_scan_string(pragma_str);
1915  step_lexerparse();
1917  pips_debug(1, "############### PARSER END ################\n");
1918 
1919  free(pragma_str);
1920 }
step_clause make_step_clause_schedule(list _field_)
Definition: step_private.c:264
void extend_map_entity_int(map_entity_int f, entity k, intptr_t v)
Definition: step_private.c:175
step_clause make_step_clause_private(list _field_)
Definition: step_private.c:243
step_clause make_step_clause_reduction(map_entity_int _field_)
Definition: step_private.c:240
step_clause make_step_clause_shared(list _field_)
Definition: step_private.c:246
step_clause make_step_clause_firstprivate(list _field_)
Definition: step_private.c:261
step_clause make_step_clause_nowait(void)
Definition: step_private.c:252
step_clause make_step_clause_copyin(list _field_)
Definition: step_private.c:258
step_clause make_step_clause_threadprivate(list _field_)
Definition: step_private.c:255
bool bound_map_entity_int_p(map_entity_int f, entity k)
Definition: step_private.c:181
map_entity_int make_map_entity_int(void)
Definition: step_private.c:166
#define STRING(x)
Definition: genC.h:87
#define YYEOF
Definition: genread.h:85
#define YYerror
Definition: genread.h:86
#define YYUNDEF
Definition: genread.h:87
#define YYEMPTY
Token kinds.
Definition: genread.h:84
yysymbol_kind_t
!YY_GENREAD_Y_TAB_H_INCLUDED
Definition: genread_yacc.c:294
short yytype_int16
Definition: genread_yacc.c:378
int yy_state_fast_t
State numbers in computations.
Definition: genread_yacc.c:457
signed char yytype_int8
On compilers that do not define PTRDIFF_MAX etc., make sure <limits.h> and (if available) <stdint....
Definition: genread_yacc.c:370
yytype_int8 yy_state_t
Stored state numbers (used for stacks).
Definition: genread_yacc.c:454
list gen_nreverse(list cp)
reverse a list in place
Definition: list.c:304
#define NIL
The empty list (nil in Lisp)
Definition: newgen_list.h:47
#define CONS(_t_, _i_, _l_)
List element cell constructor (insert an element at the beginning of a list)
Definition: newgen_list.h:150
list gen_nconc(list cp1, list cp2)
physically concatenates CP1 and CP2 but do not duplicates the elements
Definition: list.c:344
void gen_free_list(list l)
free the spine of the list
Definition: list.c:327
#define FOREACH(_fe_CASTER, _fe_item, _fe_list)
Apply/map an instruction block on all the elements of a list.
Definition: newgen_list.h:179
#define pips_debug
these macros use the GNU extensions that allow variadic macros, including with an empty list.
Definition: misc-local.h:145
#define pips_user_warning
Definition: misc-local.h:146
#define pips_assert(what, predicate)
common macros, two flavors depending on NDEBUG
Definition: misc-local.h:172
#define pips_user_error
Definition: misc-local.h:147
string concatenate(const char *,...)
Return the concatenation of the given strings.
Definition: string.c:183
#define pragma_string(x)
Definition: ri.h:2033
#define ENTITY(x)
ENTITY.
Definition: ri.h:2755
#define entity_undefined_p(x)
Definition: ri.h:2762
#define entity_name(x)
Definition: ri.h:2790
char * strdup()
#define ifdebug(n)
Definition: sg.c:47
#define uint_least8_t
Definition: stdint.in.h:229
#define int_least16_t
Definition: stdint.in.h:230
#define int_least8_t
7.18.1.2.
Definition: stdint.in.h:228
#define uint_least16_t
Definition: stdint.in.h:231
void step_directive_print(step_directive d)
Definition: directives.c:362
int step_lexerparse(void)
char * step_lexertext
int step_lexerlex(void)
static const char * yysymbol_name(yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED
The user-facing name of the symbol whose (internal) number is YYSYMBOL.
#define yyparse
------—.
#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
#define YYMAXDEPTH
YYMAXDEPTH – maximum size the stacks can grow to (effective only if the built-in stack extension meth...
#define YYSTACK_FREE
static const yytype_int8 yytranslate[]
YYTRANSLATE[TOKEN-NUM] – Symbol number corresponding to TOKEN-NUM as returned by yylex.
yysymbol_kind_t
Symbol kind.
@ YYSYMBOL_39_4
@3
@ YYSYMBOL_TK_OMP_PRAGMA
TK_RAW
@ YYSYMBOL_TK_OPERATOR
TK_COMMENT
@ YYSYMBOL_omp_schedule
$@11
@ YYSYMBOL_34_2
$@1
@ YYSYMBOL_YYUNDEF
error
@ YYSYMBOL_TK_OMP_MASTER
TK_OMP_BARRIER
@ YYSYMBOL_TK_ERROR
TK_EOL
@ YYSYMBOL_TK_OMP_COPYIN
TK_OMP_DEFAULT
@ YYSYMBOL_TK_OMP_END
TK_OMP_LOOP
@ YYSYMBOL_TK_OMP_SINGLE
TK_OMP_MASTER
@ YYSYMBOL_TK_STEP_TRANSFORMATION
TK_STEP_PRAGMA
@ YYSYMBOL_62_15
omp_default
@ YYSYMBOL_omp_loop_clauses
omp_parallel_clauses
@ YYSYMBOL_60_14
$@13
@ YYSYMBOL_TK_COLON
TK_RPAREN
@ YYSYMBOL_33_1
pragma
@ YYSYMBOL_YYerror
"end of file"
@ YYSYMBOL_38_3
omp_directive
@ YYSYMBOL_omp_reduction
$@12
@ YYSYMBOL_TK_OMP_SHARED
TK_OMP_THREADPRIVATE
@ YYSYMBOL_49_8
omp_private
@ YYSYMBOL_TK_RPAREN
TK_LPAREN
@ YYSYMBOL_omp_directive
omp_comment
@ YYSYMBOL_TK_OMP_REDUCTION
TK_OMP_NOWAIT
@ YYSYMBOL_string_list
$@15
@ YYSYMBOL_ident_list
string_list
@ YYSYMBOL_omp_firstprivate
$@10
@ YYSYMBOL_57_12
omp_schedule
@ YYSYMBOL_TK_EOL
"invalid token"
@ YYSYMBOL_TK_RAW
TK_OPERATOR
@ YYSYMBOL_omp_copyin
$@8
@ YYSYMBOL_59_13
omp_reduction
@ YYSYMBOL_47_7
omp_shared
@ YYSYMBOL_omp_default
$@14
@ YYSYMBOL_omp_comment
step_transformation
@ YYSYMBOL_TK_OMP_SCHEDULE
TK_OMP_FIRSTPRIVATE
@ YYSYMBOL_TK_OMP_PRIVATE
TK_OMP_SHARED
@ YYSYMBOL_TK_STEP_PRAGMA
TK_OMP_SCHEDULE
@ YYSYMBOL_omp_end_loop_clauses
omp_loop_clauses
@ YYSYMBOL_TK_OMP_LOOP
TK_OMP_PARALLEL
@ YYSYMBOL_YYACCEPT
TK_STEP_TRANSFORMATION
@ YYSYMBOL_omp_private
$@7
@ YYSYMBOL_55_11
omp_firstprivate
@ YYSYMBOL_TK_OMP_BARRIER
TK_OMP_END
@ YYSYMBOL_51_9
omp_copyin
@ YYSYMBOL_omp_shared
omp_parallel_loop_clauses
@ YYSYMBOL_TK_OMP_PARALLEL
TK_OMP_PRAGMA
@ YYSYMBOL_40_5
@4
@ YYSYMBOL_YYEOF
@ YYSYMBOL_pragma
$accept
@ YYSYMBOL_omp_parallel_loop_clauses
omp_end_loop_clauses
@ YYSYMBOL_41_6
@5
@ YYSYMBOL_TK_COMMENT
TK_IDENT
@ YYSYMBOL_TK_COMMA
TK_COLON
@ YYSYMBOL_YYEMPTY
@ YYSYMBOL_TK_OMP_FIRSTPRIVATE
TK_OMP_COPYIN
@ YYSYMBOL_TK_OMP_THREADPRIVATE
TK_OMP_SINGLE
@ YYSYMBOL_TK_LPAREN
TK_ERROR
@ YYSYMBOL_TK_OMP_DEFAULT
TK_OMP_REDUCTION
@ YYSYMBOL_TK_IDENT
TK_COMMA
@ YYSYMBOL_TK_OMP_NOWAIT
TK_OMP_PRIVATE
@ YYSYMBOL_step_transformation
$@2
@ YYSYMBOL_53_10
omp_threadprivate_listvar
@ YYSYMBOL_omp_parallel_clauses
@6
@ YYSYMBOL_omp_threadprivate_listvar
$@9
static void yy_symbol_print(FILE *yyo, yysymbol_kind_t yykind, YYSTYPE const *const yyvaluep)
-----------------------—.
#define YY_ASSERT(E)
#define YY_(Msgid)
#define YYNOMEM
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
static const yytype_int8 yydefact[]
YYDEFACT[STATE-NUM] – Default reduction number in state STATE-NUM.
#define YYNSTATES
YYNSTATES – Number of states.
static string pragma_str_original
#define YY_IGNORE_USELESS_CAST_END
short yytype_int16
#define yychar
@ YYENOMEM
#define YYABORT
static const yytype_int16 yyrline[]
YYRLINE[YYN] – Source line where rule number YYN was defined.
#define YYSTACK_BYTES(N)
The size of an array large to enough to hold all stacks, each with N elements.
static const yytype_int8 yycheck[]
#define YY_REDUCE_PRINT(Rule)
#define YY_CAST(Type, Val)
static void yydestruct(const char *yymsg, yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
-------------------------------------------—.
void remove_old_pragma(void)
Definition: parser.c:139
#define yylex
void step_bison_parse(pragma pgm, statement stmt)
#define YY_NULLPTR
static const yytype_int8 yypact[]
YYPACT[STATE-NUM] – Index in YYTABLE of the portion describing STATE-NUM.
void * malloc(YYSIZE_T)
#define YYFINAL
!YYCOPY_NEEDED
#define YY_ACCESSING_SYMBOL(State)
Accessing symbol of state STATE.
#define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
static cons * step_add_to_ident_list(string name, cons *list)
#define yylval
#define YYNTOKENS
YYNTOKENS – Number of terminals.
unsigned char yytype_uint8
Work around bug in HP-UX 11.23, which defines these macros incorrectly for preprocessor constants.
#define YY_STACK_PRINT(Bottom, Top)
static void yy_symbol_value_print(FILE *yyo, yysymbol_kind_t yykind, YYSTYPE const *const yyvaluep)
-------------------------------—.
#define YYSIZE_T
#define yydebug
#define YY_IGNORE_USELESS_CAST_BEGIN
static const yytype_int8 yyr2[]
YYR2[RULE-NUM] – Number of symbols on the right-hand side of rule RULE-NUM.
static const yytype_int8 yytable[]
YYTABLE[YYPACT[STATE-NUM]] – What to do in state STATE-NUM.
#define YYPTRDIFF_T
#define yynerrs
void set_current_transform(int transform)
First part of user prologue.
Definition: parser.c:41
static void yy_reduce_print(yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule)
--------------------------------------------—.
#define YYACCEPT
#define yytable_value_is_error(Yyn)
#define YYTRANSLATE(YYX)
YYTRANSLATE(TOKEN-NUM) – Symbol number corresponding to TOKEN-NUM as returned by yylex,...
static const yytype_int8 yystos[]
YYSTOS[STATE-NUM] – The symbol kind of the accessing symbol of state STATE-NUM.
#define YY_ATTRIBUTE_UNUSED
static step_directive concat_drt_clauses(step_directive drt, cons *liste_clauses)
static const char *const yytname[]
YYTNAME[SYMBOL-NUM] – String name of the symbol SYMBOL-NUM.
static step_clause step_handle_reduction_clause(cons *ident_liste, int op)
static const yytype_int8 yypgoto[]
YYPGOTO[NTERM-NUM].
static const yytype_int8 yyr1[]
YYR1[RULE-NUM] – Symbol kind of the left-hand side of rule RULE-NUM.
#define YYPOPSTACK(N)
int yy_state_fast_t
State numbers in computations.
void step_lexererror(const char *s)
step_bison_parser.c
unsigned short yytype_uint16
static const yytype_int8 yydefgoto[]
YYDEFGOTO[NTERM-NUM].
#define YYLAST
YYLAST – Last index in YYTABLE.
entity entity_from_user_name(string name)
Definition: parser.c:67
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
Relocate STACK from its old location to the new one.
#define yypact_value_is_default(Yyn)
#define YYINITDEPTH
!YYDEBUG
signed char yytype_int8
On compilers that do not define PTRDIFF_MAX etc., make sure <limits.h> and (if available) <stdint....
void free(void *)
#define YYERROR
static void yy_stack_print(yy_state_t *yybottom, yy_state_t *yytop)
--------------------------------------------------------------—.
#define YYSIZEOF(X)
#define YYFPRINTF
Enable debugging if requested.
#define YYSTACK_ALLOC
The parser invokes alloca or malloc; define the necessary symbols.
yytype_int8 yy_state_t
Stored state numbers (used for stacks).
#define YYDPRINTF(Args)
step_directive begin_omp_construct(int type, string s)
Definition: parser.c:159
#define YY_USE(E)
Suppress unused-variable warnings by "using" E.
#define yyerror
step_directive end_omp_construct(int type)
Definition: parser.c:248
#define STEP_PARALLEL_DO
Definition: step_common.h:45
#define step_directive_clauses(x)
Definition: step_private.h:433
#define STEP_CLAUSE(x)
STEP_CLAUSE.
Definition: step_private.h:227
The structure used to build lists in NewGen.
Definition: newgen_list.h:41
Definition: statement.c:54
Value type.
Definition: genread.h:115
step_clause step_clause
cons * liste
Definition: cyacc.h:183
step_directive step_directive
int integer
Definition: cyacc.h:190
INFRINGES ON USER NAME SPACE.
Definition: genread_yacc.c:608
YYSTYPE yyvs_alloc
Definition: genread_yacc.c:610
yy_state_t yyss_alloc
Definition: genread_yacc.c:609