PIPS
sc_gram.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 syst_parse
69 #define yylex syst_lex
70 #define yyerror syst_error
71 #define yydebug syst_debug
72 #define yynerrs syst_nerrs
73 #define yylval syst_lval
74 #define yychar syst_char
75 
76 /* First part of user prologue. */
77 #line 26 "sc_gram.y"
78 
79 
80 #include <stdlib.h>
81 #include <stdio.h>
82 #include <string.h>
83 
84 #include "boolean.h"
85 #include "arithmetique.h"
86 #include "vecteur.h"
87 #include "contrainte.h"
88 #include "sc.h"
89 
90 extern int syst_error(char*);
91 extern int syst_lex(void);
92 
94 
96 
97 Value fac; /* facteur multiplicatif suivant qu'on analyse un terme*/
98  /* introduit par un moins (-1) ou par un plus (1) */
99 
100 int sens; /* indique le sens de l'inegalite
101  sens = -1 ==> l'operateur est soit > ,soit >=,
102  sens = 1 ==> l'operateur est soit <, soit <= */
103 short int cote; /* booleen indiquant quel membre est en cours d'analyse*/
104 
105 Value b1, b2; /* element du vecteur colonne du systeme donne par l'analyse*/
106  /* d'une contrainte */
107 
108 Pcontrainte eq; /* pointeur sur l'egalite ou l'inegalite
109  courante */
110 
111 extern Pvecteur cp ; /* pointeur sur le membre courant */
112 
113 short int operat; /* dernier operateur rencontre */
114 
115 
116 /*code des operateurs de comparaison */
117 
118 #define OPINF 1
119 #define OPINFEGAL 2
120 #define OPEGAL 3
121 #define OPSUPEGAL 4
122 #define OPSUP 5
123 #define DROIT 1
124 #define GAUCHE 2
125 /* #define NULL 0 */
126 
127 #line 128 "y.tab.c"
128 
129 # ifndef YY_CAST
130 # ifdef __cplusplus
131 # define YY_CAST(Type, Val) static_cast<Type> (Val)
132 # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
133 # else
134 # define YY_CAST(Type, Val) ((Type) (Val))
135 # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
136 # endif
137 # endif
138 # ifndef YY_NULLPTR
139 # if defined __cplusplus
140 # if 201103L <= __cplusplus
141 # define YY_NULLPTR nullptr
142 # else
143 # define YY_NULLPTR 0
144 # endif
145 # else
146 # define YY_NULLPTR ((void*)0)
147 # endif
148 # endif
149 
150 /* Use api.header.include to #include this header
151  instead of duplicating it here. */
152 #ifndef YY_SYST_Y_TAB_H_INCLUDED
153 # define YY_SYST_Y_TAB_H_INCLUDED
154 /* Debug traces. */
155 #ifndef YYDEBUG
156 # define YYDEBUG 0
157 #endif
158 #if YYDEBUG
159 extern int syst_debug;
160 #endif
161 
162 /* Token kinds. */
163 #ifndef YYTOKENTYPE
164 # define YYTOKENTYPE
166  {
167  YYEMPTY = -2,
168  YYEOF = 0, /* "end of file" */
169  YYerror = 256, /* error */
170  YYUNDEF = 257, /* "invalid token" */
171  ACCFERM = 258, /* ACCFERM */
172  ACCOUVR = 259, /* ACCOUVR */
173  CONSTANTE = 260, /* CONSTANTE */
174  EGAL = 261, /* EGAL */
175  IDENT = 262, /* IDENT */
176  INF = 263, /* INF */
177  INFEGAL = 264, /* INFEGAL */
178  MOINS = 265, /* MOINS */
179  PLUS = 266, /* PLUS */
180  SUP = 267, /* SUP */
181  SUPEGAL = 268, /* SUPEGAL */
182  VAR = 269, /* VAR */
183  VIRG = 270 /* VIRG */
184  };
185  typedef enum yytokentype yytoken_kind_t;
186 #endif
187 /* Token kinds. */
188 #define YYEMPTY -2
189 #define YYEOF 0
190 #define YYerror 256
191 #define YYUNDEF 257
192 #define ACCFERM 258
193 #define ACCOUVR 259
194 #define CONSTANTE 260
195 #define EGAL 261
196 #define IDENT 262
197 #define INF 263
198 #define INFEGAL 264
199 #define MOINS 265
200 #define PLUS 266
201 #define SUP 267
202 #define SUPEGAL 268
203 #define VAR 269
204 #define VIRG 270
205 
206 /* Value type. */
207 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
208 union YYSTYPE
209 {
210 #line 76 "sc_gram.y"
211 
214 
215 #line 216 "y.tab.c"
216 
217 };
218 typedef union YYSTYPE YYSTYPE;
219 # define YYSTYPE_IS_TRIVIAL 1
220 # define YYSTYPE_IS_DECLARED 1
221 #endif
222 
223 
224 extern YYSTYPE syst_lval;
225 
226 
227 int syst_parse (void);
228 
229 
230 #endif /* !YY_SYST_Y_TAB_H_INCLUDED */
231 /* Symbol kind. */
233 {
235  YYSYMBOL_YYEOF = 0, /* "end of file" */
236  YYSYMBOL_YYerror = 1, /* error */
237  YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
238  YYSYMBOL_ACCFERM = 3, /* ACCFERM */
239  YYSYMBOL_ACCOUVR = 4, /* ACCOUVR */
240  YYSYMBOL_CONSTANTE = 5, /* CONSTANTE */
241  YYSYMBOL_EGAL = 6, /* EGAL */
242  YYSYMBOL_IDENT = 7, /* IDENT */
243  YYSYMBOL_INF = 8, /* INF */
244  YYSYMBOL_INFEGAL = 9, /* INFEGAL */
245  YYSYMBOL_MOINS = 10, /* MOINS */
246  YYSYMBOL_PLUS = 11, /* PLUS */
247  YYSYMBOL_SUP = 12, /* SUP */
248  YYSYMBOL_SUPEGAL = 13, /* SUPEGAL */
249  YYSYMBOL_VAR = 14, /* VAR */
250  YYSYMBOL_VIRG = 15, /* VIRG */
251  YYSYMBOL_YYACCEPT = 16, /* $accept */
252  YYSYMBOL_system = 17, /* system */
253  YYSYMBOL_inisys = 18, /* inisys */
254  YYSYMBOL_defvar = 19, /* defvar */
255  YYSYMBOL_l_var = 20, /* l_var */
256  YYSYMBOL_l_eq = 21, /* l_eq */
257  YYSYMBOL_eq = 22, /* eq */
258  YYSYMBOL_debeq = 23, /* debeq */
259  YYSYMBOL_feq = 24, /* feq */
260  YYSYMBOL_membre = 25, /* membre */
261  YYSYMBOL_26_1 = 26, /* $@1 */
262  YYSYMBOL_terme = 27, /* terme */
263  YYSYMBOL_ident = 28, /* ident */
264  YYSYMBOL_newid = 29, /* newid */
265  YYSYMBOL_const = 30, /* const */
266  YYSYMBOL_op = 31, /* op */
267  YYSYMBOL_addop = 32, /* addop */
268  YYSYMBOL_multi_membre = 33, /* multi_membre */
269  YYSYMBOL_fin_mult_membre = 34, /* fin_mult_membre */
270  YYSYMBOL_virg_opt = 35 /* virg_opt */
271 };
272 typedef enum yysymbol_kind_t yysymbol_kind_t;
273 
274 
275 
276 
277 #ifdef short
278 # undef short
279 #endif
280 
281 /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
282  <limits.h> and (if available) <stdint.h> are included
283  so that the code can choose integer types of a good width. */
284 
285 #ifndef __PTRDIFF_MAX__
286 # include <limits.h> /* INFRINGES ON USER NAME SPACE */
287 # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
288 # include <stdint.h> /* INFRINGES ON USER NAME SPACE */
289 # define YY_STDINT_H
290 # endif
291 #endif
292 
293 /* Narrow types that promote to a signed type and that can represent a
294  signed or unsigned integer of at least N bits. In tables they can
295  save space and decrease cache pressure. Promoting to a signed type
296  helps avoid bugs in integer arithmetic. */
297 
298 #ifdef __INT_LEAST8_MAX__
299 typedef __INT_LEAST8_TYPE__ yytype_int8;
300 #elif defined YY_STDINT_H
301 typedef int_least8_t yytype_int8;
302 #else
303 typedef signed char yytype_int8;
304 #endif
305 
306 #ifdef __INT_LEAST16_MAX__
307 typedef __INT_LEAST16_TYPE__ yytype_int16;
308 #elif defined YY_STDINT_H
310 #else
311 typedef short yytype_int16;
312 #endif
313 
314 /* Work around bug in HP-UX 11.23, which defines these macros
315  incorrectly for preprocessor constants. This workaround can likely
316  be removed in 2023, as HPE has promised support for HP-UX 11.23
317  (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
318  <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */
319 #ifdef __hpux
320 # undef UINT_LEAST8_MAX
321 # undef UINT_LEAST16_MAX
322 # define UINT_LEAST8_MAX 255
323 # define UINT_LEAST16_MAX 65535
324 #endif
325 
326 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
327 typedef __UINT_LEAST8_TYPE__ yytype_uint8;
328 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
329  && UINT_LEAST8_MAX <= INT_MAX)
331 #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
332 typedef unsigned char yytype_uint8;
333 #else
334 typedef short yytype_uint8;
335 #endif
336 
337 #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
338 typedef __UINT_LEAST16_TYPE__ yytype_uint16;
339 #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
340  && UINT_LEAST16_MAX <= INT_MAX)
342 #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
343 typedef unsigned short yytype_uint16;
344 #else
345 typedef int yytype_uint16;
346 #endif
347 
348 #ifndef YYPTRDIFF_T
349 # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
350 # define YYPTRDIFF_T __PTRDIFF_TYPE__
351 # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
352 # elif defined PTRDIFF_MAX
353 # ifndef ptrdiff_t
354 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
355 # endif
356 # define YYPTRDIFF_T ptrdiff_t
357 # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
358 # else
359 # define YYPTRDIFF_T long
360 # define YYPTRDIFF_MAXIMUM LONG_MAX
361 # endif
362 #endif
363 
364 #ifndef YYSIZE_T
365 # ifdef __SIZE_TYPE__
366 # define YYSIZE_T __SIZE_TYPE__
367 # elif defined size_t
368 # define YYSIZE_T size_t
369 # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
370 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
371 # define YYSIZE_T size_t
372 # else
373 # define YYSIZE_T unsigned
374 # endif
375 #endif
376 
377 #define YYSIZE_MAXIMUM \
378  YY_CAST (YYPTRDIFF_T, \
379  (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
380  ? YYPTRDIFF_MAXIMUM \
381  : YY_CAST (YYSIZE_T, -1)))
382 
383 #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
384 
385 
386 /* Stored state numbers (used for stacks). */
388 
389 /* State numbers in computations. */
390 typedef int yy_state_fast_t;
391 
392 #ifndef YY_
393 # if defined YYENABLE_NLS && YYENABLE_NLS
394 # if ENABLE_NLS
395 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
396 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
397 # endif
398 # endif
399 # ifndef YY_
400 # define YY_(Msgid) Msgid
401 # endif
402 #endif
403 
404 
405 #ifndef YY_ATTRIBUTE_PURE
406 # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
407 # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
408 # else
409 # define YY_ATTRIBUTE_PURE
410 # endif
411 #endif
412 
413 #ifndef YY_ATTRIBUTE_UNUSED
414 # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
415 # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
416 # else
417 # define YY_ATTRIBUTE_UNUSED
418 # endif
419 #endif
420 
421 /* Suppress unused-variable warnings by "using" E. */
422 #if ! defined lint || defined __GNUC__
423 # define YY_USE(E) ((void) (E))
424 #else
425 # define YY_USE(E) /* empty */
426 #endif
427 
428 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
429 #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
430 # if __GNUC__ * 100 + __GNUC_MINOR__ < 407
431 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
432  _Pragma ("GCC diagnostic push") \
433  _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
434 # else
435 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
436  _Pragma ("GCC diagnostic push") \
437  _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
438  _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
439 # endif
440 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
441  _Pragma ("GCC diagnostic pop")
442 #else
443 # define YY_INITIAL_VALUE(Value) Value
444 #endif
445 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
446 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
447 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
448 #endif
449 #ifndef YY_INITIAL_VALUE
450 # define YY_INITIAL_VALUE(Value) /* Nothing. */
451 #endif
452 
453 #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
454 # define YY_IGNORE_USELESS_CAST_BEGIN \
455  _Pragma ("GCC diagnostic push") \
456  _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
457 # define YY_IGNORE_USELESS_CAST_END \
458  _Pragma ("GCC diagnostic pop")
459 #endif
460 #ifndef YY_IGNORE_USELESS_CAST_BEGIN
461 # define YY_IGNORE_USELESS_CAST_BEGIN
462 # define YY_IGNORE_USELESS_CAST_END
463 #endif
464 
465 
466 #define YY_ASSERT(E) ((void) (0 && (E)))
467 
468 #if !defined yyoverflow
469 
470 /* The parser invokes alloca or malloc; define the necessary symbols. */
471 
472 # ifdef YYSTACK_USE_ALLOCA
473 # if YYSTACK_USE_ALLOCA
474 # ifdef __GNUC__
475 # define YYSTACK_ALLOC __builtin_alloca
476 # elif defined __BUILTIN_VA_ARG_INCR
477 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
478 # elif defined _AIX
479 # define YYSTACK_ALLOC __alloca
480 # elif defined _MSC_VER
481 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
482 # define alloca _alloca
483 # else
484 # define YYSTACK_ALLOC alloca
485 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
486 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
487  /* Use EXIT_SUCCESS as a witness for stdlib.h. */
488 # ifndef EXIT_SUCCESS
489 # define EXIT_SUCCESS 0
490 # endif
491 # endif
492 # endif
493 # endif
494 # endif
495 
496 # ifdef YYSTACK_ALLOC
497  /* Pacify GCC's 'empty if-body' warning. */
498 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
499 # ifndef YYSTACK_ALLOC_MAXIMUM
500  /* The OS might guarantee only one guard page at the bottom of the stack,
501  and a page size can be as small as 4096 bytes. So we cannot safely
502  invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
503  to allow for a few compiler-allocated temporary stack slots. */
504 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
505 # endif
506 # else
507 # define YYSTACK_ALLOC YYMALLOC
508 # define YYSTACK_FREE YYFREE
509 # ifndef YYSTACK_ALLOC_MAXIMUM
510 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
511 # endif
512 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
513  && ! ((defined YYMALLOC || defined malloc) \
514  && (defined YYFREE || defined free)))
515 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
516 # ifndef EXIT_SUCCESS
517 # define EXIT_SUCCESS 0
518 # endif
519 # endif
520 # ifndef YYMALLOC
521 # define YYMALLOC malloc
522 # if ! defined malloc && ! defined EXIT_SUCCESS
523 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
524 # endif
525 # endif
526 # ifndef YYFREE
527 # define YYFREE free
528 # if ! defined free && ! defined EXIT_SUCCESS
529 void free (void *); /* INFRINGES ON USER NAME SPACE */
530 # endif
531 # endif
532 # endif
533 #endif /* !defined yyoverflow */
534 
535 #if (! defined yyoverflow \
536  && (! defined __cplusplus \
537  || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
538 
539 /* A type that is properly aligned for any stack member. */
540 union yyalloc
541 {
544 };
545 
546 /* The size of the maximum gap between one aligned stack and the next. */
547 # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
548 
549 /* The size of an array large to enough to hold all stacks, each with
550  N elements. */
551 # define YYSTACK_BYTES(N) \
552  ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
553  + YYSTACK_GAP_MAXIMUM)
554 
555 # define YYCOPY_NEEDED 1
556 
557 /* Relocate STACK from its old location to the new one. The
558  local variables YYSIZE and YYSTACKSIZE give the old and new number of
559  elements in the stack, and YYPTR gives the new location of the
560  stack. Advance YYPTR to a properly aligned location for the next
561  stack. */
562 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
563  do \
564  { \
565  YYPTRDIFF_T yynewbytes; \
566  YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
567  Stack = &yyptr->Stack_alloc; \
568  yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
569  yyptr += yynewbytes / YYSIZEOF (*yyptr); \
570  } \
571  while (0)
572 
573 #endif
574 
575 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
576 /* Copy COUNT objects from SRC to DST. The source and destination do
577  not overlap. */
578 # ifndef YYCOPY
579 # if defined __GNUC__ && 1 < __GNUC__
580 # define YYCOPY(Dst, Src, Count) \
581  __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
582 # else
583 # define YYCOPY(Dst, Src, Count) \
584  do \
585  { \
586  YYPTRDIFF_T yyi; \
587  for (yyi = 0; yyi < (Count); yyi++) \
588  (Dst)[yyi] = (Src)[yyi]; \
589  } \
590  while (0)
591 # endif
592 # endif
593 #endif /* !YYCOPY_NEEDED */
594 
595 /* YYFINAL -- State number of the termination state. */
596 #define YYFINAL 3
597 /* YYLAST -- Last index in YYTABLE. */
598 #define YYLAST 33
599 
600 /* YYNTOKENS -- Number of terminals. */
601 #define YYNTOKENS 16
602 /* YYNNTS -- Number of nonterminals. */
603 #define YYNNTS 20
604 /* YYNRULES -- Number of rules. */
605 #define YYNRULES 34
606 /* YYNSTATES -- Number of states. */
607 #define YYNSTATES 44
608 
609 /* YYMAXUTOK -- Last valid token kind. */
610 #define YYMAXUTOK 270
611 
612 
613 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
614  as returned by yylex, with out-of-bounds checking. */
615 #define YYTRANSLATE(YYX) \
616  (0 <= (YYX) && (YYX) <= YYMAXUTOK \
617  ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
618  : YYSYMBOL_YYUNDEF)
619 
620 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
621  as returned by yylex. */
622 static const yytype_int8 yytranslate[] =
623 {
624  0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
625  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
626  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
627  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
628  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
629  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
630  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
631  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
632  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
633  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
634  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
635  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
636  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
637  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
638  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
639  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
640  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
641  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
642  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
643  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
644  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
645  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
646  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
647  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
648  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
649  2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
650  5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
651  15
652 };
653 
654 #if YYDEBUG
655 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
656 static const yytype_int16 yyrline[] =
657 {
658  0, 102, 102, 106, 114, 123, 124, 127, 128, 129,
659  132, 136, 148, 154, 155, 155, 156, 159, 170, 181,
660  193, 196, 202, 208, 214, 220, 227, 233, 241, 243,
661  247, 248, 252, 282, 283
662 };
663 #endif
664 
665 /** Accessing symbol of state STATE. */
666 #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
667 
668 #if YYDEBUG || 0
669 /* The user-facing name of the symbol whose (internal) number is
670  YYSYMBOL. No bounds checking. */
671 static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
672 
673 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
674  First, the terminals, then, starting at YYNTOKENS, nonterminals. */
675 static const char *const yytname[] =
676 {
677  "\"end of file\"", "error", "\"invalid token\"", "ACCFERM", "ACCOUVR",
678  "CONSTANTE", "EGAL", "IDENT", "INF", "INFEGAL", "MOINS", "PLUS", "SUP",
679  "SUPEGAL", "VAR", "VIRG", "$accept", "system", "inisys", "defvar",
680  "l_var", "l_eq", "eq", "debeq", "feq", "membre", "$@1", "terme", "ident",
681  "newid", "const", "op", "addop", "multi_membre", "fin_mult_membre",
682  "virg_opt", YY_NULLPTR
683 };
684 
685 static const char *
687 {
688  return yytname[yysymbol];
689 }
690 #endif
691 
692 #define YYPACT_NINF (-21)
693 
694 #define yypact_value_is_default(Yyn) \
695  ((Yyn) == YYPACT_NINF)
696 
697 #define YYTABLE_NINF (-35)
698 
699 #define yytable_value_is_error(Yyn) \
700  0
701 
702 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
703  STATE-NUM. */
704 static const yytype_int8 yypact[] =
705 {
706  -21, 6, -5, -21, 3, 8, -21, -4, -21, -2,
707  -21, 3, 2, -21, 14, -21, 12, 17, -21, -21,
708  14, 0, 0, 10, -21, -21, 0, -21, -21, -21,
709  -21, 19, -21, -21, -21, -21, -21, -21, 14, -21,
710  -21, 14, -1, -21
711 };
712 
713 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
714  Performed when YYTABLE does not specify something else to do. Zero
715  means the default is an error. */
716 static const yytype_int8 yydefact[] =
717 {
718  3, 0, 0, 1, 0, 0, 21, 4, 5, 11,
719  33, 0, 34, 7, 14, 6, 11, 0, 29, 28,
720  30, 0, 0, 0, 8, 2, 0, 22, 20, 15,
721  19, 18, 13, 25, 23, 24, 26, 27, 14, 16,
722  17, 32, 31, 10
723 };
724 
725 /* YYPGOTO[NTERM-NUM]. */
726 static const yytype_int8 yypgoto[] =
727 {
728  -21, -21, -21, -21, -21, -21, 11, -21, -21, -10,
729  -21, -18, 1, 18, -21, -21, -20, -21, -21, 21
730 };
731 
732 /* YYDEFGOTO[NTERM-NUM]. */
733 static const yytype_int8 yydefgoto[] =
734 {
735  0, 1, 2, 5, 7, 12, 13, 14, 43, 20,
736  21, 29, 30, 8, 31, 38, 22, 23, 42, 11
737 };
738 
739 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
740  positive, shift that token. If negative, reduce the rule whose
741  number is the opposite. If YYTABLE_NINF, syntax error. */
742 static const yytype_int8 yytable[] =
743 {
744  26, -9, -12, -34, 32, 27, 3, 28, 39, 4,
745  6, 10, 9, -9, -12, -33, 33, 16, 34, 35,
746  25, 26, 36, 37, 18, 19, 28, 24, 41, 15,
747  0, 0, 40, 17
748 };
749 
750 static const yytype_int8 yycheck[] =
751 {
752  20, 3, 3, 7, 22, 5, 0, 7, 26, 14,
753  7, 15, 4, 15, 15, 3, 6, 15, 8, 9,
754  3, 41, 12, 13, 10, 11, 7, 16, 38, 11,
755  -1, -1, 31, 12
756 };
757 
758 /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
759  state STATE-NUM. */
760 static const yytype_int8 yystos[] =
761 {
762  0, 17, 18, 0, 14, 19, 7, 20, 29, 4,
763  15, 35, 21, 22, 23, 29, 15, 35, 10, 11,
764  25, 26, 32, 33, 22, 3, 32, 5, 7, 27,
765  28, 30, 27, 6, 8, 9, 12, 13, 31, 27,
766  28, 25, 34, 24
767 };
768 
769 /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
770 static const yytype_int8 yyr1[] =
771 {
772  0, 16, 17, 18, 19, 20, 20, 21, 21, 21,
773  22, 23, 24, 25, 26, 25, 25, 27, 27, 27,
774  28, 29, 30, 31, 31, 31, 31, 31, 32, 32,
775  33, 33, 34, 35, 35
776 };
777 
778 /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
779 static const yytype_int8 yyr2[] =
780 {
781  0, 2, 6, 0, 2, 1, 3, 1, 3, 0,
782  6, 0, 0, 2, 0, 2, 3, 2, 1, 1,
783  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
784  1, 4, 0, 1, 0
785 };
786 
787 
788 enum { YYENOMEM = -2 };
789 
790 #define yyerrok (yyerrstatus = 0)
791 #define yyclearin (yychar = YYEMPTY)
792 
793 #define YYACCEPT goto yyacceptlab
794 #define YYABORT goto yyabortlab
795 #define YYERROR goto yyerrorlab
796 #define YYNOMEM goto yyexhaustedlab
797 
798 
799 #define YYRECOVERING() (!!yyerrstatus)
800 
801 #define YYBACKUP(Token, Value) \
802  do \
803  if (yychar == YYEMPTY) \
804  { \
805  yychar = (Token); \
806  yylval = (Value); \
807  YYPOPSTACK (yylen); \
808  yystate = *yyssp; \
809  goto yybackup; \
810  } \
811  else \
812  { \
813  yyerror (YY_("syntax error: cannot back up")); \
814  YYERROR; \
815  } \
816  while (0)
817 
818 /* Backward compatibility with an undocumented macro.
819  Use YYerror or YYUNDEF. */
820 #define YYERRCODE YYUNDEF
821 
822 
823 /* Enable debugging if requested. */
824 #if YYDEBUG
825 
826 # ifndef YYFPRINTF
827 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
828 # define YYFPRINTF fprintf
829 # endif
830 
831 # define YYDPRINTF(Args) \
832 do { \
833  if (yydebug) \
834  YYFPRINTF Args; \
835 } while (0)
836 
837 
838 
839 
840 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
841 do { \
842  if (yydebug) \
843  { \
844  YYFPRINTF (stderr, "%s ", Title); \
845  yy_symbol_print (stderr, \
846  Kind, Value); \
847  YYFPRINTF (stderr, "\n"); \
848  } \
849 } while (0)
850 
851 
852 /*-----------------------------------.
853 | Print this symbol's value on YYO. |
854 `-----------------------------------*/
855 
856 static void
857 yy_symbol_value_print (FILE *yyo,
858  yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
859 {
860  FILE *yyoutput = yyo;
861  YY_USE (yyoutput);
862  if (!yyvaluep)
863  return;
865  YY_USE (yykind);
867 }
868 
869 
870 /*---------------------------.
871 | Print this symbol on YYO. |
872 `---------------------------*/
873 
874 static void
875 yy_symbol_print (FILE *yyo,
876  yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep)
877 {
878  YYFPRINTF (yyo, "%s %s (",
879  yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
880 
881  yy_symbol_value_print (yyo, yykind, yyvaluep);
882  YYFPRINTF (yyo, ")");
883 }
884 
885 /*------------------------------------------------------------------.
886 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
887 | TOP (included). |
888 `------------------------------------------------------------------*/
889 
890 static void
891 yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
892 {
893  YYFPRINTF (stderr, "Stack now");
894  for (; yybottom <= yytop; yybottom++)
895  {
896  int yybot = *yybottom;
897  YYFPRINTF (stderr, " %d", yybot);
898  }
899  YYFPRINTF (stderr, "\n");
900 }
901 
902 # define YY_STACK_PRINT(Bottom, Top) \
903 do { \
904  if (yydebug) \
905  yy_stack_print ((Bottom), (Top)); \
906 } while (0)
907 
908 
909 /*------------------------------------------------.
910 | Report that the YYRULE is going to be reduced. |
911 `------------------------------------------------*/
912 
913 static void
914 yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
915  int yyrule)
916 {
917  int yylno = yyrline[yyrule];
918  int yynrhs = yyr2[yyrule];
919  int yyi;
920  YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
921  yyrule - 1, yylno);
922  /* The symbols being reduced. */
923  for (yyi = 0; yyi < yynrhs; yyi++)
924  {
925  YYFPRINTF (stderr, " $%d = ", yyi + 1);
926  yy_symbol_print (stderr,
927  YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
928  &yyvsp[(yyi + 1) - (yynrhs)]);
929  YYFPRINTF (stderr, "\n");
930  }
931 }
932 
933 # define YY_REDUCE_PRINT(Rule) \
934 do { \
935  if (yydebug) \
936  yy_reduce_print (yyssp, yyvsp, Rule); \
937 } while (0)
938 
939 /* Nonzero means print parse trace. It is left uninitialized so that
940  multiple parsers can coexist. */
941 int yydebug;
942 #else /* !YYDEBUG */
943 # define YYDPRINTF(Args) ((void) 0)
944 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
945 # define YY_STACK_PRINT(Bottom, Top)
946 # define YY_REDUCE_PRINT(Rule)
947 #endif /* !YYDEBUG */
948 
949 
950 /* YYINITDEPTH -- initial size of the parser's stacks. */
951 #ifndef YYINITDEPTH
952 # define YYINITDEPTH 200
953 #endif
954 
955 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
956  if the built-in stack extension method is used).
957 
958  Do not make this value too large; the results are undefined if
959  YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
960  evaluated with infinite-precision integer arithmetic. */
961 
962 #ifndef YYMAXDEPTH
963 # define YYMAXDEPTH 10000
964 #endif
965 
966 
967 
968 
969 
970 
971 /*-----------------------------------------------.
972 | Release the memory associated to this symbol. |
973 `-----------------------------------------------*/
974 
975 static void
976 yydestruct (const char *yymsg,
977  yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
978 {
979  YY_USE (yyvaluep);
980  if (!yymsg)
981  yymsg = "Deleting";
982  YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
983 
985  YY_USE (yykind);
987 }
988 
989 
990 /* Lookahead token kind. */
991 int yychar;
992 
993 /* The semantic value of the lookahead symbol. */
995 /* Number of syntax errors so far. */
997 
998 
999 
1000 
1001 /*----------.
1002 | yyparse. |
1003 `----------*/
1004 
1005 int
1006 yyparse (void)
1007 {
1008  yy_state_fast_t yystate = 0;
1009  /* Number of tokens to shift before error messages enabled. */
1010  int yyerrstatus = 0;
1011 
1012  /* Refer to the stacks through separate pointers, to allow yyoverflow
1013  to reallocate them elsewhere. */
1014 
1015  /* Their size. */
1016  YYPTRDIFF_T yystacksize = YYINITDEPTH;
1017 
1018  /* The state stack: array, bottom, top. */
1019  yy_state_t yyssa[YYINITDEPTH];
1020  yy_state_t *yyss = yyssa;
1021  yy_state_t *yyssp = yyss;
1022 
1023  /* The semantic value stack: array, bottom, top. */
1024  YYSTYPE yyvsa[YYINITDEPTH];
1025  YYSTYPE *yyvs = yyvsa;
1026  YYSTYPE *yyvsp = yyvs;
1027 
1028  int yyn;
1029  /* The return value of yyparse. */
1030  int yyresult;
1031  /* Lookahead symbol kind. */
1033  /* The variables used to return semantic value and location from the
1034  action routines. */
1035  YYSTYPE yyval;
1036 
1037 
1038 
1039 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1040 
1041  /* The number of symbols on the RHS of the reduced rule.
1042  Keep to zero when no symbol should be popped. */
1043  int yylen = 0;
1044 
1045  YYDPRINTF ((stderr, "Starting parse\n"));
1046 
1047  yychar = YYEMPTY; /* Cause a token to be read. */
1048 
1049  goto yysetstate;
1050 
1051 
1052 /*------------------------------------------------------------.
1053 | yynewstate -- push a new state, which is found in yystate. |
1054 `------------------------------------------------------------*/
1055 yynewstate:
1056  /* In all cases, when you get here, the value and location stacks
1057  have just been pushed. So pushing a state here evens the stacks. */
1058  yyssp++;
1059 
1060 
1061 /*--------------------------------------------------------------------.
1062 | yysetstate -- set current state (the top of the stack) to yystate. |
1063 `--------------------------------------------------------------------*/
1064 yysetstate:
1065  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1066  YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
1068  *yyssp = YY_CAST (yy_state_t, yystate);
1070  YY_STACK_PRINT (yyss, yyssp);
1071 
1072  if (yyss + yystacksize - 1 <= yyssp)
1073 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
1074  YYNOMEM;
1075 #else
1076  {
1077  /* Get the current used size of the three stacks, in elements. */
1078  YYPTRDIFF_T yysize = yyssp - yyss + 1;
1079 
1080 # if defined yyoverflow
1081  {
1082  /* Give user a chance to reallocate the stack. Use copies of
1083  these so that the &'s don't force the real ones into
1084  memory. */
1085  yy_state_t *yyss1 = yyss;
1086  YYSTYPE *yyvs1 = yyvs;
1087 
1088  /* Each stack pointer address is followed by the size of the
1089  data in use in that stack, in bytes. This used to be a
1090  conditional around just the two extra args, but that might
1091  be undefined if yyoverflow is a macro. */
1092  yyoverflow (YY_("memory exhausted"),
1093  &yyss1, yysize * YYSIZEOF (*yyssp),
1094  &yyvs1, yysize * YYSIZEOF (*yyvsp),
1095  &yystacksize);
1096  yyss = yyss1;
1097  yyvs = yyvs1;
1098  }
1099 # else /* defined YYSTACK_RELOCATE */
1100  /* Extend the stack our own way. */
1101  if (YYMAXDEPTH <= yystacksize)
1102  YYNOMEM;
1103  yystacksize *= 2;
1104  if (YYMAXDEPTH < yystacksize)
1105  yystacksize = YYMAXDEPTH;
1106 
1107  {
1108  yy_state_t *yyss1 = yyss;
1109  union yyalloc *yyptr =
1110  YY_CAST (union yyalloc *,
1111  YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
1112  if (! yyptr)
1113  YYNOMEM;
1114  YYSTACK_RELOCATE (yyss_alloc, yyss);
1115  YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1116 # undef YYSTACK_RELOCATE
1117  if (yyss1 != yyssa)
1118  YYSTACK_FREE (yyss1);
1119  }
1120 # endif
1121 
1122  yyssp = yyss + yysize - 1;
1123  yyvsp = yyvs + yysize - 1;
1124 
1126  YYDPRINTF ((stderr, "Stack size increased to %ld\n",
1127  YY_CAST (long, yystacksize)));
1129 
1130  if (yyss + yystacksize - 1 <= yyssp)
1131  YYABORT;
1132  }
1133 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
1134 
1135 
1136  if (yystate == YYFINAL)
1137  YYACCEPT;
1138 
1139  goto yybackup;
1140 
1141 
1142 /*-----------.
1143 | yybackup. |
1144 `-----------*/
1145 yybackup:
1146  /* Do appropriate processing given the current state. Read a
1147  lookahead token if we need one and don't already have one. */
1148 
1149  /* First try to decide what to do without reference to lookahead token. */
1150  yyn = yypact[yystate];
1151  if (yypact_value_is_default (yyn))
1152  goto yydefault;
1153 
1154  /* Not known => get a lookahead token if don't already have one. */
1155 
1156  /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */
1157  if (yychar == YYEMPTY)
1158  {
1159  YYDPRINTF ((stderr, "Reading a token\n"));
1160  yychar = yylex ();
1161  }
1162 
1163  if (yychar <= YYEOF)
1164  {
1165  yychar = YYEOF;
1166  yytoken = YYSYMBOL_YYEOF;
1167  YYDPRINTF ((stderr, "Now at end of input.\n"));
1168  }
1169  else if (yychar == YYerror)
1170  {
1171  /* The scanner already issued an error message, process directly
1172  to error recovery. But do not keep the error token as
1173  lookahead, it is too special and may lead us to an endless
1174  loop in error recovery. */
1175  yychar = YYUNDEF;
1176  yytoken = YYSYMBOL_YYerror;
1177  goto yyerrlab1;
1178  }
1179  else
1180  {
1181  yytoken = YYTRANSLATE (yychar);
1182  YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1183  }
1184 
1185  /* If the proper action on seeing token YYTOKEN is to reduce or to
1186  detect an error, take that action. */
1187  yyn += yytoken;
1188  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1189  goto yydefault;
1190  yyn = yytable[yyn];
1191  if (yyn <= 0)
1192  {
1193  if (yytable_value_is_error (yyn))
1194  goto yyerrlab;
1195  yyn = -yyn;
1196  goto yyreduce;
1197  }
1198 
1199  /* Count tokens shifted since error; after three, turn off error
1200  status. */
1201  if (yyerrstatus)
1202  yyerrstatus--;
1203 
1204  /* Shift the lookahead token. */
1205  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1206  yystate = yyn;
1208  *++yyvsp = yylval;
1210 
1211  /* Discard the shifted token. */
1212  yychar = YYEMPTY;
1213  goto yynewstate;
1214 
1215 
1216 /*-----------------------------------------------------------.
1217 | yydefault -- do the default action for the current state. |
1218 `-----------------------------------------------------------*/
1219 yydefault:
1220  yyn = yydefact[yystate];
1221  if (yyn == 0)
1222  goto yyerrlab;
1223  goto yyreduce;
1224 
1225 
1226 /*-----------------------------.
1227 | yyreduce -- do a reduction. |
1228 `-----------------------------*/
1229 yyreduce:
1230  /* yyn is the number of a rule to reduce with. */
1231  yylen = yyr2[yyn];
1232 
1233  /* If YYLEN is nonzero, implement the default value of the action:
1234  '$$ = $1'.
1235 
1236  Otherwise, the following line sets YYVAL to garbage.
1237  This behavior is undocumented and Bison
1238  users should not rely upon it. Assigning to YYVAL
1239  unconditionally makes the parser a bit smaller, and it avoids a
1240  GCC warning that YYVAL may be used uninitialized. */
1241  yyval = yyvsp[1-yylen];
1242 
1243 
1244  YY_REDUCE_PRINT (yyn);
1245  switch (yyn)
1246  {
1247  case 3: /* inisys: %empty */
1248 #line 106 "sc_gram.y"
1249  { /* initialisation des parametres du systeme */
1250  /* et initialisation des variables */
1251  ps_yacc = sc_new();
1252  init_globals();
1253  syst_syntax_error = false;
1254  }
1255 #line 1256 "y.tab.c"
1256  break;
1257 
1258  case 4: /* defvar: VAR l_var */
1259 #line 115 "sc_gram.y"
1260  { /* remise en ordre des vecteurs de base */
1261  Pbase b;
1262  b = ps_yacc->base;
1263  ps_yacc->base = base_reversal(b);
1264  vect_rm(b);
1265  }
1266 #line 1267 "y.tab.c"
1267  break;
1268 
1269  case 11: /* debeq: %empty */
1270 #line 136 "sc_gram.y"
1271  {
1272  fac = VALUE_ONE;
1273  sens = 1;
1274  cote = GAUCHE;
1275  b1 = 0;
1276  b2 = 0;
1277  operat = 0;
1278  cp = NULL;
1279  eq = contrainte_new();
1280  }
1281 #line 1282 "y.tab.c"
1282  break;
1283 
1284  case 12: /* feq: %empty */
1285 #line 148 "sc_gram.y"
1286  {
1287 
1288  contrainte_free(eq);
1289  }
1290 #line 1291 "y.tab.c"
1291  break;
1292 
1293  case 14: /* $@1: %empty */
1294 #line 155 "sc_gram.y"
1295  { fac = VALUE_ONE;}
1296 #line 1297 "y.tab.c"
1297  break;
1298 
1299  case 17: /* terme: const ident */
1300 #line 160 "sc_gram.y"
1301  {
1302  if (cote==DROIT) fac = value_uminus(fac);
1303  /* ajout du couple (ident,const) a la contrainte courante */
1304  vect_add_elem(&(eq->vecteur),(yyvsp[0].Variable),value_mult(fac,(yyvsp[-1].Value)));
1305  /* duplication du couple (ident,const)
1306  de la combinaison lineaire traitee */
1307  if (operat)
1308  vect_add_elem(&cp,(Variable) (yyvsp[0].Variable),
1309  value_uminus(value_mult(fac,(yyvsp[-1].Value))));
1310  }
1311 #line 1312 "y.tab.c"
1312  break;
1313 
1314  case 18: /* terme: const */
1315 #line 171 "sc_gram.y"
1316  {
1317  Value p = value_mult(fac,(yyvsp[0].Value));
1318  if (cote==DROIT) {
1319  value_addto(b1, p);
1320  value_substract(b2, p);
1321  } else {
1322  value_substract(b1, p);
1323  value_addto(b2, p);
1324  }
1325  }
1326 #line 1327 "y.tab.c"
1327  break;
1328 
1329  case 19: /* terme: ident */
1330 #line 182 "sc_gram.y"
1331  {
1332  if (cote==DROIT) fac = value_uminus(fac);
1333  /* ajout du couple (ident,1) a la contrainte courante */
1334  vect_add_elem (&(eq->vecteur),(Variable) (yyvsp[0].Variable),fac);
1335  /* duplication du couple (ident,1) de la
1336  combinaison lineaire traitee */
1337  if (operat)
1339  }
1340 #line 1341 "y.tab.c"
1341  break;
1342 
1343  case 20: /* ident: IDENT */
1344 #line 193 "sc_gram.y"
1345  { (yyval.Variable) = rec_ident(ps_yacc, (yyvsp[0].Variable)); }
1346 #line 1347 "y.tab.c"
1347  break;
1348 
1349  case 21: /* newid: IDENT */
1350 #line 196 "sc_gram.y"
1351  { new_ident(ps_yacc,(yyvsp[0].Variable)); }
1352 #line 1353 "y.tab.c"
1353  break;
1354 
1355  case 22: /* const: CONSTANTE */
1356 #line 203 "sc_gram.y"
1357  {
1358  (yyval.Value) = (yyvsp[0].Value);
1359  }
1360 #line 1361 "y.tab.c"
1361  break;
1362 
1363  case 23: /* op: INF */
1364 #line 209 "sc_gram.y"
1365  { cote = DROIT;
1366  sens = 1;
1367  operat = OPINF;
1368  cp = NULL;
1369  b2 = VALUE_ZERO; }
1370 #line 1371 "y.tab.c"
1371  break;
1372 
1373  case 24: /* op: INFEGAL */
1374 #line 215 "sc_gram.y"
1375  { cote = DROIT;
1376  sens = 1;
1377  operat = OPINFEGAL;
1378  cp = NULL;
1379  b2 = VALUE_ZERO;}
1380 #line 1381 "y.tab.c"
1381  break;
1382 
1383  case 25: /* op: EGAL */
1384 #line 221 "sc_gram.y"
1385  { cote = DROIT;
1386  sens = 1;
1387  operat = OPEGAL;
1388  cp = NULL;
1389  b2 = VALUE_ZERO;
1390  }
1391 #line 1392 "y.tab.c"
1392  break;
1393 
1394  case 26: /* op: SUP */
1395 #line 228 "sc_gram.y"
1396  { cote = DROIT;
1397  sens = -1;
1398  operat = OPSUP;
1399  cp = NULL;
1400  b2 = VALUE_ZERO;}
1401 #line 1402 "y.tab.c"
1402  break;
1403 
1404  case 27: /* op: SUPEGAL */
1405 #line 234 "sc_gram.y"
1406  { cote = DROIT;
1407  sens = -1;
1408  operat = OPSUPEGAL;
1409  cp = NULL;
1410  b2 = VALUE_ZERO;}
1411 #line 1412 "y.tab.c"
1412  break;
1413 
1414  case 28: /* addop: PLUS */
1415 #line 242 "sc_gram.y"
1416  { fac = VALUE_ONE; }
1417 #line 1418 "y.tab.c"
1418  break;
1419 
1420  case 29: /* addop: MOINS */
1421 #line 244 "sc_gram.y"
1422  { fac = VALUE_MONE; }
1423 #line 1424 "y.tab.c"
1424  break;
1425 
1426  case 32: /* fin_mult_membre: %empty */
1427 #line 252 "sc_gram.y"
1428  {
1430  switch (operat)
1431  {
1432  case OPINF:
1435  break;
1436  case OPINFEGAL:
1438  break;
1439  case OPSUPEGAL:
1441  break;
1442  case OPSUP:
1445  break;
1446  case OPEGAL:
1447  creer_eg(ps_yacc,eq);
1448  break;
1449  }
1450 
1451  eq = contrainte_new();
1452  eq->vecteur = cp;
1453  b1 = b2;
1454 
1455  }
1456 #line 1457 "y.tab.c"
1457  break;
1458 
1459 
1460 #line 1461 "y.tab.c"
1461 
1462  default: break;
1463  }
1464  /* User semantic actions sometimes alter yychar, and that requires
1465  that yytoken be updated with the new translation. We take the
1466  approach of translating immediately before every use of yytoken.
1467  One alternative is translating here after every semantic action,
1468  but that translation would be missed if the semantic action invokes
1469  YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
1470  if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
1471  incorrect destructor might then be invoked immediately. In the
1472  case of YYERROR or YYBACKUP, subsequent parser actions might lead
1473  to an incorrect destructor call or verbose syntax error message
1474  before the lookahead is translated. */
1475  YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
1476 
1477  YYPOPSTACK (yylen);
1478  yylen = 0;
1479 
1480  *++yyvsp = yyval;
1481 
1482  /* Now 'shift' the result of the reduction. Determine what state
1483  that goes to, based on the state we popped back to and the rule
1484  number reduced by. */
1485  {
1486  const int yylhs = yyr1[yyn] - YYNTOKENS;
1487  const int yyi = yypgoto[yylhs] + *yyssp;
1488  yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
1489  ? yytable[yyi]
1490  : yydefgoto[yylhs]);
1491  }
1492 
1493  goto yynewstate;
1494 
1495 
1496 /*--------------------------------------.
1497 | yyerrlab -- here on detecting error. |
1498 `--------------------------------------*/
1499 yyerrlab:
1500  /* Make sure we have latest lookahead translation. See comments at
1501  user semantic actions for why this is necessary. */
1502  yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
1503  /* If not already recovering from an error, report this error. */
1504  if (!yyerrstatus)
1505  {
1506  ++yynerrs;
1507  yyerror (YY_("syntax error"));
1508  }
1509 
1510  if (yyerrstatus == 3)
1511  {
1512  /* If just tried and failed to reuse lookahead token after an
1513  error, discard it. */
1514 
1515  if (yychar <= YYEOF)
1516  {
1517  /* Return failure if at end of input. */
1518  if (yychar == YYEOF)
1519  YYABORT;
1520  }
1521  else
1522  {
1523  yydestruct ("Error: discarding",
1524  yytoken, &yylval);
1525  yychar = YYEMPTY;
1526  }
1527  }
1528 
1529  /* Else will try to reuse lookahead token after shifting the error
1530  token. */
1531  goto yyerrlab1;
1532 
1533 
1534 /*---------------------------------------------------.
1535 | yyerrorlab -- error raised explicitly by YYERROR. |
1536 `---------------------------------------------------*/
1537 yyerrorlab:
1538  /* Pacify compilers when the user code never invokes YYERROR and the
1539  label yyerrorlab therefore never appears in user code. */
1540  if (0)
1541  YYERROR;
1542  ++yynerrs;
1543 
1544  /* Do not reclaim the symbols of the rule whose action triggered
1545  this YYERROR. */
1546  YYPOPSTACK (yylen);
1547  yylen = 0;
1548  YY_STACK_PRINT (yyss, yyssp);
1549  yystate = *yyssp;
1550  goto yyerrlab1;
1551 
1552 
1553 /*-------------------------------------------------------------.
1554 | yyerrlab1 -- common code for both syntax error and YYERROR. |
1555 `-------------------------------------------------------------*/
1556 yyerrlab1:
1557  yyerrstatus = 3; /* Each real token shifted decrements this. */
1558 
1559  /* Pop stack until we find a state that shifts the error token. */
1560  for (;;)
1561  {
1562  yyn = yypact[yystate];
1563  if (!yypact_value_is_default (yyn))
1564  {
1565  yyn += YYSYMBOL_YYerror;
1566  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
1567  {
1568  yyn = yytable[yyn];
1569  if (0 < yyn)
1570  break;
1571  }
1572  }
1573 
1574  /* Pop the current state because it cannot handle the error token. */
1575  if (yyssp == yyss)
1576  YYABORT;
1577 
1578 
1579  yydestruct ("Error: popping",
1580  YY_ACCESSING_SYMBOL (yystate), yyvsp);
1581  YYPOPSTACK (1);
1582  yystate = *yyssp;
1583  YY_STACK_PRINT (yyss, yyssp);
1584  }
1585 
1587  *++yyvsp = yylval;
1589 
1590 
1591  /* Shift the error token. */
1592  YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
1593 
1594  yystate = yyn;
1595  goto yynewstate;
1596 
1597 
1598 /*-------------------------------------.
1599 | yyacceptlab -- YYACCEPT comes here. |
1600 `-------------------------------------*/
1601 yyacceptlab:
1602  yyresult = 0;
1603  goto yyreturnlab;
1604 
1605 
1606 /*-----------------------------------.
1607 | yyabortlab -- YYABORT comes here. |
1608 `-----------------------------------*/
1609 yyabortlab:
1610  yyresult = 1;
1611  goto yyreturnlab;
1612 
1613 
1614 /*-----------------------------------------------------------.
1615 | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. |
1616 `-----------------------------------------------------------*/
1617 yyexhaustedlab:
1618  yyerror (YY_("memory exhausted"));
1619  yyresult = 2;
1620  goto yyreturnlab;
1621 
1622 
1623 /*----------------------------------------------------------.
1624 | yyreturnlab -- parsing is finished, clean up and return. |
1625 `----------------------------------------------------------*/
1626 yyreturnlab:
1627  if (yychar != YYEMPTY)
1628  {
1629  /* Make sure we have latest lookahead translation. See comments at
1630  user semantic actions for why this is necessary. */
1631  yytoken = YYTRANSLATE (yychar);
1632  yydestruct ("Cleanup: discarding lookahead",
1633  yytoken, &yylval);
1634  }
1635  /* Do not reclaim the symbols of the rule whose action triggered
1636  this YYABORT or YYACCEPT. */
1637  YYPOPSTACK (yylen);
1638  YY_STACK_PRINT (yyss, yyssp);
1639  while (yyssp != yyss)
1640  {
1641  yydestruct ("Cleanup: popping",
1642  YY_ACCESSING_SYMBOL (+*yyssp), yyvsp);
1643  YYPOPSTACK (1);
1644  }
1645 #ifndef yyoverflow
1646  if (yyss != yyssa)
1647  YYSTACK_FREE (yyss);
1648 #endif
1649 
1650  return yyresult;
1651 }
1652 
1653 #line 285 "sc_gram.y"
1654 
1655 
#define VALUE_ZERO
#define value_uminus(val)
unary operators on values
#define VALUE_MONE
int Value
#define value_addto(ref, val)
#define VALUE_ONE
#define value_substract(ref, val)
#define value_mult(v, w)
whether the default is protected or not this define makes no sense any more...
Pbase base_reversal(Pbase b_in)
Pbase base_reversal(Pbase b_in): produces a basis b_out, having the same basis vectors as b_in,...
Definition: base.c:221
Pcontrainte contrainte_free(Pcontrainte c)
Pcontrainte contrainte_free(Pcontrainte c): liberation de l'espace memoire alloue a la contrainte c a...
Definition: alloc.c:184
Pcontrainte contrainte_new(void)
package contrainte - allocations et desallocations
Definition: alloc.c:47
static const char * yysymbol_name(yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED
The user-facing name of the symbol whose (internal) number is YYSYMBOL.
Definition: cyacc.tab.c:1383
static void yy_symbol_print(FILE *yyo, yysymbol_kind_t yykind, YYSTYPE const *const yyvaluep)
-----------------------—.
Definition: cyacc.tab.c:2447
static const yytype_int16 yyrline[]
YYRLINE[YYN] – Source line where rule number YYN was defined.
Definition: cyacc.tab.c:1279
static void yy_symbol_value_print(FILE *yyo, yysymbol_kind_t yykind, YYSTYPE const *const yyvaluep)
-------------------------------—.
Definition: cyacc.tab.c:2429
static void yy_reduce_print(yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule)
--------------------------------------------—.
Definition: cyacc.tab.c:2486
static const char *const yytname[]
YYTNAME[SYMBOL-NUM] – String name of the symbol SYMBOL-NUM.
Definition: cyacc.tab.c:1327
static void yy_stack_print(yy_state_t *yybottom, yy_state_t *yytop)
--------------------------------------------------------------—.
Definition: cyacc.tab.c:2463
#define YYFPRINTF
Enable debugging if requested.
Definition: cyacc.tab.c:2400
yytokentype
Definition: genread.h:52
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
Psysteme sc_new(void)
Psysteme sc_new(): alloue un systeme vide, initialise tous les champs avec des valeurs nulles,...
Definition: sc_alloc.c:55
#define DROIT
Definition: sc_gram.c:123
#define IDENT
Definition: sc_gram.c:196
int syst_parse(void)
#define yyparse
------—.
Definition: sc_gram.c:68
#define PLUS
Definition: sc_gram.c:200
#define INF
Definition: sc_gram.c:197
#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
Definition: sc_gram.c:446
#define YYMAXDEPTH
YYMAXDEPTH – maximum size the stacks can grow to (effective only if the built-in stack extension meth...
Definition: sc_gram.c:963
#define YYSTACK_FREE
Definition: sc_gram.c:508
static const yytype_int8 yytranslate[]
YYTRANSLATE[TOKEN-NUM] – Symbol number corresponding to TOKEN-NUM as returned by yylex.
Definition: sc_gram.c:622
yysymbol_kind_t
!YY_SYST_Y_TAB_H_INCLUDED
Definition: sc_gram.c:233
@ YYSYMBOL_ident
terme
Definition: sc_gram.c:263
@ YYSYMBOL_YYUNDEF
error
Definition: sc_gram.c:237
@ YYSYMBOL_INFEGAL
INF
Definition: sc_gram.c:244
@ YYSYMBOL_SUPEGAL
SUP
Definition: sc_gram.c:248
@ YYSYMBOL_feq
debeq
Definition: sc_gram.c:259
@ YYSYMBOL_VIRG
VAR
Definition: sc_gram.c:250
@ YYSYMBOL_newid
ident
Definition: sc_gram.c:264
@ YYSYMBOL_l_eq
l_var
Definition: sc_gram.c:256
@ YYSYMBOL_system
$accept
Definition: sc_gram.c:252
@ YYSYMBOL_debeq
eq
Definition: sc_gram.c:258
@ YYSYMBOL_defvar
inisys
Definition: sc_gram.c:254
@ YYSYMBOL_INF
IDENT
Definition: sc_gram.c:243
@ YYSYMBOL_MOINS
INFEGAL
Definition: sc_gram.c:245
@ YYSYMBOL_YYerror
"end of file"
Definition: sc_gram.c:236
@ YYSYMBOL_26_1
membre
Definition: sc_gram.c:261
@ YYSYMBOL_ACCOUVR
ACCFERM
Definition: sc_gram.c:239
@ YYSYMBOL_CONSTANTE
ACCOUVR
Definition: sc_gram.c:240
@ YYSYMBOL_l_var
defvar
Definition: sc_gram.c:255
@ YYSYMBOL_op
const
Definition: sc_gram.c:266
@ YYSYMBOL_SUP
PLUS
Definition: sc_gram.c:247
@ YYSYMBOL_VAR
SUPEGAL
Definition: sc_gram.c:249
@ YYSYMBOL_membre
feq
Definition: sc_gram.c:260
@ YYSYMBOL_PLUS
MOINS
Definition: sc_gram.c:246
@ YYSYMBOL_virg_opt
fin_mult_membre
Definition: sc_gram.c:270
@ YYSYMBOL_YYACCEPT
VIRG
Definition: sc_gram.c:251
@ YYSYMBOL_inisys
system
Definition: sc_gram.c:253
@ YYSYMBOL_YYEOF
Definition: sc_gram.c:235
@ YYSYMBOL_eq
l_eq
Definition: sc_gram.c:257
@ YYSYMBOL_const
newid
Definition: sc_gram.c:265
@ YYSYMBOL_YYEMPTY
Definition: sc_gram.c:234
@ YYSYMBOL_EGAL
CONSTANTE
Definition: sc_gram.c:241
@ YYSYMBOL_IDENT
EGAL
Definition: sc_gram.c:242
@ YYSYMBOL_multi_membre
addop
Definition: sc_gram.c:268
@ YYSYMBOL_addop
op
Definition: sc_gram.c:267
@ YYSYMBOL_terme
$@1
Definition: sc_gram.c:262
@ YYSYMBOL_ACCFERM
"invalid token"
Definition: sc_gram.c:238
@ YYSYMBOL_fin_mult_membre
multi_membre
Definition: sc_gram.c:269
#define ACCOUVR
Definition: sc_gram.c:193
#define YY_ASSERT(E)
Definition: sc_gram.c:466
#define YY_(Msgid)
Definition: sc_gram.c:400
#define YYNOMEM
Definition: sc_gram.c:796
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
Definition: sc_gram.c:447
static const yytype_int8 yydefact[]
YYDEFACT[STATE-NUM] – Default reduction number in state STATE-NUM.
Definition: sc_gram.c:716
#define YYNSTATES
YYNSTATES – Number of states.
Definition: sc_gram.c:607
#define INFEGAL
Definition: sc_gram.c:198
#define YY_IGNORE_USELESS_CAST_END
Definition: sc_gram.c:462
short yytype_int16
Definition: sc_gram.c:311
#define yychar
Definition: sc_gram.c:74
#define SUPEGAL
Definition: sc_gram.c:202
#define YYEOF
Definition: sc_gram.c:189
#define YYABORT
Definition: sc_gram.c:794
#define ACCFERM
Definition: sc_gram.c:192
#define CONSTANTE
Definition: sc_gram.c:194
#define YYSTACK_BYTES(N)
The size of an array large to enough to hold all stacks, each with N elements.
Definition: sc_gram.c:551
Value b2
Definition: sc_gram.c:105
static const yytype_int8 yycheck[]
Definition: sc_gram.c:750
bool syst_syntax_error
detection des erreurs de syntaxe par sc_gram.y
Definition: sc_gram.c:93
int syst_error(char *)
First part of user prologue.
Definition: sc_lex.c:2196
#define YY_REDUCE_PRINT(Rule)
Definition: sc_gram.c:946
#define YY_CAST(Type, Val)
#define NULL 0
Definition: sc_gram.c:134
static void yydestruct(const char *yymsg, yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
-------------------------------------------—.
Definition: sc_gram.c:976
#define OPSUP
Definition: sc_gram.c:122
#define yylex
Definition: sc_gram.c:69
#define YYerror
Definition: sc_gram.c:190
#define YY_NULLPTR
Definition: sc_gram.c:146
#define YYUNDEF
Definition: sc_gram.c:191
static const yytype_int8 yypact[]
YYPACT[STATE-NUM] – Index in YYTABLE of the portion describing STATE-NUM.
Definition: sc_gram.c:704
void * malloc(YYSIZE_T)
int syst_lex(void)
#define YYFINAL
!YYCOPY_NEEDED
Definition: sc_gram.c:596
#define YY_ACCESSING_SYMBOL(State)
Accessing symbol of state STATE.
Definition: sc_gram.c:666
#define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
Definition: sc_gram.c:944
Value b1
booleen indiquant quel membre est en cours d'analyse
Definition: sc_gram.c:105
short int operat
pointeur sur le membre courant
Definition: sc_gram.c:113
#define yylval
Definition: sc_gram.c:73
#define YYNTOKENS
YYNTOKENS – Number of terminals.
Definition: sc_gram.c:601
unsigned char yytype_uint8
Work around bug in HP-UX 11.23, which defines these macros incorrectly for preprocessor constants.
Definition: sc_gram.c:332
#define YY_STACK_PRINT(Bottom, Top)
Definition: sc_gram.c:945
#define YYSIZE_T
Definition: sc_gram.c:373
#define yydebug
Definition: sc_gram.c:71
#define YY_IGNORE_USELESS_CAST_BEGIN
Definition: sc_gram.c:461
#define VIRG
Definition: sc_gram.c:204
#define EGAL
Definition: sc_gram.c:195
static const yytype_int8 yyr2[]
YYR2[RULE-NUM] – Number of symbols on the right-hand side of rule RULE-NUM.
Definition: sc_gram.c:779
#define OPINFEGAL
Definition: sc_gram.c:119
#define MOINS
Definition: sc_gram.c:199
short int cote
indique le sens de l'inegalite sens = -1 ==> l'operateur est soit > ,soit >=, sens = 1 ==> l'operateu...
Definition: sc_gram.c:103
static const yytype_int8 yytable[]
YYTABLE[YYPACT[STATE-NUM]] – What to do in state STATE-NUM.
Definition: sc_gram.c:742
int sens
facteur multiplicatif suivant qu'on analyse un terme
Definition: sc_gram.c:100
#define YYPTRDIFF_T
Definition: sc_gram.c:359
#define OPSUPEGAL
Definition: sc_gram.c:121
#define yynerrs
Definition: sc_gram.c:72
#define OPEGAL
Definition: sc_gram.c:120
Pcontrainte eq
element du vecteur colonne du systeme donne par l'analyse
Definition: sc_gram.c:108
#define YYACCEPT
Definition: sc_gram.c:793
#define yytable_value_is_error(Yyn)
Definition: sc_gram.c:699
#define SUP
Definition: sc_gram.c:201
#define YYTRANSLATE(YYX)
YYTRANSLATE(TOKEN-NUM) – Symbol number corresponding to TOKEN-NUM as returned by yylex,...
Definition: sc_gram.c:615
static const yytype_int8 yystos[]
YYSTOS[STATE-NUM] – The symbol kind of the accessing symbol of state STATE-NUM.
Definition: sc_gram.c:760
@ YYENOMEM
Definition: sc_gram.c:788
#define YY_ATTRIBUTE_UNUSED
Definition: sc_gram.c:417
YYSTYPE syst_lval
static const yytype_int8 yypgoto[]
YYPGOTO[NTERM-NUM].
Definition: sc_gram.c:726
#define VAR
Definition: sc_gram.c:203
#define OPINF
dernier operateur rencontre
Definition: sc_gram.c:118
static const yytype_int8 yyr1[]
YYR1[RULE-NUM] – Symbol kind of the left-hand side of rule RULE-NUM.
Definition: sc_gram.c:770
enum yytokentype yytoken_kind_t
Definition: sc_gram.c:185
Psysteme ps_yacc
package sc
Definition: sc_gram.c:95
#define YYPOPSTACK(N)
int yy_state_fast_t
State numbers in computations.
Definition: sc_gram.c:390
unsigned short yytype_uint16
Definition: sc_gram.c:343
static const yytype_int8 yydefgoto[]
YYDEFGOTO[NTERM-NUM].
Definition: sc_gram.c:733
Pvecteur cp
pointeur sur l'egalite ou l'inegalite courante
Definition: sc_read.c:87
#define YYEMPTY
Token kinds.
Definition: sc_gram.c:188
Value fac
Definition: sc_gram.c:97
#define YYLAST
YYLAST – Last index in YYTABLE.
Definition: sc_gram.c:598
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
Relocate STACK from its old location to the new one.
Definition: sc_gram.c:562
#define yypact_value_is_default(Yyn)
Definition: sc_gram.c:694
#define YYINITDEPTH
!YYDEBUG
Definition: sc_gram.c:952
signed char yytype_int8
On compilers that do not define PTRDIFF_MAX etc., make sure <limits.h> and (if available) <stdint....
Definition: sc_gram.c:303
void free(void *)
#define GAUCHE
Definition: sc_gram.c:124
#define YYERROR
Definition: sc_gram.c:795
#define YYSIZEOF(X)
Definition: sc_gram.c:383
#define YYSTACK_ALLOC
The parser invokes alloca or malloc; define the necessary symbols.
Definition: sc_gram.c:507
yytype_int8 yy_state_t
Stored state numbers (used for stacks).
Definition: sc_gram.c:387
#define YYDPRINTF(Args)
Enable debugging if requested.
Definition: sc_gram.c:943
#define YY_USE(E)
Suppress unused-variable warnings by "using" E.
Definition: sc_gram.c:423
#define yyerror
Definition: sc_gram.c:70
void new_ident(Psysteme ps, Variable s)
void new_ident(Psysteme ps, char s[]): fonction introduisant un nouvel identificateur dans la liste d...
Definition: sc_read.c:118
void init_globals()
void init_globals: initialisation des variables globales
Definition: sc_read.c:102
Variable rec_ident(Psysteme ps, Variable s)
int rec_ident(Psysteme ps, char * s): cette fonction recherche dans la liste des variables du systeme...
Definition: sc_read.c:136
void creer_eg(Psysteme ps, Pcontrainte peq)
void creer_eg(Psysteme ps,Pcontrainte peq): ajout de la contrainte (egalite) peq au systeme ps.
Definition: sc_read.c:159
void creer_ineg(Psysteme ps, Pcontrainte peq, int sens)
void creer_ineg(Psysteme ps, Pcontrainte peq, int sens): ajout d'une nouvelle inegalite peq dans la l...
Definition: sc_read.c:185
#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
Pvecteur vecteur
Pbase base
Definition: sc-local.h:75
le type des coefficients dans les vecteurs: Value est defini dans le package arithmetique
Definition: vecteur-local.h:89
Value type.
Definition: genread.h:115
Value Value
Definition: sc_gram.c:212
Variable Variable
Definition: sc_gram.c:213
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
#define TCST
VARIABLE REPRESENTANT LE TERME CONSTANT.
void * Variable
arithmetique is a requirement for vecteur, but I do not want to inforce it in all pips files....
Definition: vecteur-local.h:60
void vect_rm(Pvecteur v)
void vect_rm(Pvecteur v): desallocation des couples de v;
Definition: alloc.c:78
void vect_add_elem(Pvecteur *pvect, Variable var, Value val)
void vect_add_elem(Pvecteur * pvect, Variable var, Value val): addition d'un vecteur colineaire au ve...
Definition: unaires.c:72