|
@@ -99,36 +99,37 @@ extern int yydebug;
|
99
|
99
|
enum yytokentype
|
100
|
100
|
{
|
101
|
101
|
tENTIER = 258,
|
102
|
|
- tADD = 259,
|
103
|
|
- tSUB = 260,
|
104
|
|
- tMUL = 261,
|
105
|
|
- tDIV = 262,
|
106
|
|
- tPO = 263,
|
107
|
|
- tPF = 264,
|
108
|
|
- tAO = 265,
|
109
|
|
- tAF = 266,
|
110
|
|
- tERROR = 267,
|
111
|
|
- tPV = 268,
|
112
|
|
- tVIRGULE = 269,
|
113
|
|
- tAFFECTATION = 270,
|
114
|
|
- tEGAL = 271,
|
115
|
|
- tDIFF = 272,
|
116
|
|
- tLT = 273,
|
117
|
|
- tGT = 274,
|
118
|
|
- tGTE = 275,
|
119
|
|
- tLTE = 276,
|
120
|
|
- tMAIN = 277,
|
121
|
|
- tINT = 278,
|
122
|
|
- tPRINT = 279,
|
123
|
|
- tRETURN = 280,
|
124
|
|
- tOR = 281,
|
125
|
|
- tAND = 282,
|
126
|
|
- tIF = 283,
|
127
|
|
- tELSE = 284,
|
128
|
|
- tWHILE = 285,
|
129
|
|
- tCONST = 286,
|
130
|
|
- tVAR = 287,
|
131
|
|
- tNOT = 288
|
|
102
|
+ tENTIEREXP = 259,
|
|
103
|
+ tADD = 260,
|
|
104
|
+ tSUB = 261,
|
|
105
|
+ tMUL = 262,
|
|
106
|
+ tDIV = 263,
|
|
107
|
+ tPO = 264,
|
|
108
|
+ tPF = 265,
|
|
109
|
+ tAO = 266,
|
|
110
|
+ tAF = 267,
|
|
111
|
+ tERROR = 268,
|
|
112
|
+ tPV = 269,
|
|
113
|
+ tVIRGULE = 270,
|
|
114
|
+ tAFFECTATION = 271,
|
|
115
|
+ tEGAL = 272,
|
|
116
|
+ tDIFF = 273,
|
|
117
|
+ tLT = 274,
|
|
118
|
+ tGT = 275,
|
|
119
|
+ tGTE = 276,
|
|
120
|
+ tLTE = 277,
|
|
121
|
+ tMAIN = 278,
|
|
122
|
+ tINT = 279,
|
|
123
|
+ tPRINT = 280,
|
|
124
|
+ tRETURN = 281,
|
|
125
|
+ tOR = 282,
|
|
126
|
+ tAND = 283,
|
|
127
|
+ tIF = 284,
|
|
128
|
+ tELSE = 285,
|
|
129
|
+ tWHILE = 286,
|
|
130
|
+ tCONST = 287,
|
|
131
|
+ tVAR = 288,
|
|
132
|
+ tNOT = 289
|
132
|
133
|
};
|
133
|
134
|
#endif
|
134
|
135
|
|
|
@@ -140,8 +141,9 @@ union YYSTYPE
|
140
|
141
|
#line 1 "analyse_syntaxique.y" /* yacc.c:355 */
|
141
|
142
|
|
142
|
143
|
int nombre;
|
|
144
|
+char id[30];
|
143
|
145
|
|
144
|
|
-#line 145 "analyse_syntaxique.tab.c" /* yacc.c:355 */
|
|
146
|
+#line 147 "analyse_syntaxique.tab.c" /* yacc.c:355 */
|
145
|
147
|
};
|
146
|
148
|
|
147
|
149
|
typedef union YYSTYPE YYSTYPE;
|
|
@@ -157,8 +159,11 @@ int yyparse (void);
|
157
|
159
|
#endif /* !YY_YY_ANALYSE_SYNTAXIQUE_TAB_H_INCLUDED */
|
158
|
160
|
|
159
|
161
|
/* Copy the second part of user declarations. */
|
|
162
|
+#line 6 "analyse_syntaxique.y" /* yacc.c:358 */
|
160
|
163
|
|
161
|
|
-#line 162 "analyse_syntaxique.tab.c" /* yacc.c:358 */
|
|
164
|
+#include <stdio.h>
|
|
165
|
+
|
|
166
|
+#line 167 "analyse_syntaxique.tab.c" /* yacc.c:358 */
|
162
|
167
|
|
163
|
168
|
#ifdef short
|
164
|
169
|
# undef short
|
|
@@ -398,23 +403,23 @@ union yyalloc
|
398
|
403
|
#endif /* !YYCOPY_NEEDED */
|
399
|
404
|
|
400
|
405
|
/* YYFINAL -- State number of the termination state. */
|
401
|
|
-#define YYFINAL 6
|
|
406
|
+#define YYFINAL 4
|
402
|
407
|
/* YYLAST -- Last index in YYTABLE. */
|
403
|
|
-#define YYLAST 130
|
|
408
|
+#define YYLAST 132
|
404
|
409
|
|
405
|
410
|
/* YYNTOKENS -- Number of terminals. */
|
406
|
|
-#define YYNTOKENS 34
|
|
411
|
+#define YYNTOKENS 35
|
407
|
412
|
/* YYNNTS -- Number of nonterminals. */
|
408
|
|
-#define YYNNTS 25
|
|
413
|
+#define YYNNTS 24
|
409
|
414
|
/* YYNRULES -- Number of rules. */
|
410
|
|
-#define YYNRULES 57
|
|
415
|
+#define YYNRULES 54
|
411
|
416
|
/* YYNSTATES -- Number of states. */
|
412
|
|
-#define YYNSTATES 117
|
|
417
|
+#define YYNSTATES 125
|
413
|
418
|
|
414
|
419
|
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
|
415
|
420
|
by yylex, with out-of-bounds checking. */
|
416
|
421
|
#define YYUNDEFTOK 2
|
417
|
|
-#define YYMAXUTOK 288
|
|
422
|
+#define YYMAXUTOK 289
|
418
|
423
|
|
419
|
424
|
#define YYTRANSLATE(YYX) \
|
420
|
425
|
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
|
|
@@ -451,19 +456,19 @@ static const yytype_uint8 yytranslate[] =
|
451
|
456
|
2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
|
452
|
457
|
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
|
453
|
458
|
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
|
454
|
|
- 25, 26, 27, 28, 29, 30, 31, 32, 33
|
|
459
|
+ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34
|
455
|
460
|
};
|
456
|
461
|
|
457
|
462
|
#if YYDEBUG
|
458
|
463
|
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
|
459
|
464
|
static const yytype_uint8 yyrline[] =
|
460
|
465
|
{
|
461
|
|
- 0, 47, 47, 48, 48, 48, 50, 52, 54, 54,
|
462
|
|
- 55, 63, 63, 65, 67, 67, 69, 69, 69, 69,
|
463
|
|
- 69, 69, 69, 71, 73, 73, 75, 75, 77, 77,
|
464
|
|
- 79, 81, 83, 83, 83, 83, 83, 83, 83, 83,
|
465
|
|
- 83, 87, 89, 89, 89, 91, 93, 93, 93, 93,
|
466
|
|
- 93, 93, 93, 93, 93, 95, 97, 99
|
|
466
|
+ 0, 63, 63, 65, 66, 68, 71, 72, 75, 77,
|
|
467
|
+ 78, 80, 81, 82, 83, 84, 85, 87, 89, 90,
|
|
468
|
+ 92, 93, 95, 96, 98, 100, 102, 103, 104, 105,
|
|
469
|
+ 106, 107, 108, 109, 110, 112, 113, 115, 116, 118,
|
|
470
|
+ 120, 121, 123, 125, 126, 127, 128, 129, 130, 131,
|
|
471
|
+ 132, 133, 135, 137, 139
|
467
|
472
|
};
|
468
|
473
|
#endif
|
469
|
474
|
|
|
@@ -472,14 +477,14 @@ static const yytype_uint8 yyrline[] =
|
472
|
477
|
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
|
473
|
478
|
static const char *const yytname[] =
|
474
|
479
|
{
|
475
|
|
- "$end", "error", "$undefined", "tENTIER", "tADD", "tSUB", "tMUL",
|
476
|
|
- "tDIV", "tPO", "tPF", "tAO", "tAF", "tERROR", "tPV", "tVIRGULE",
|
|
480
|
+ "$end", "error", "$undefined", "tENTIER", "tENTIEREXP", "tADD", "tSUB",
|
|
481
|
+ "tMUL", "tDIV", "tPO", "tPF", "tAO", "tAF", "tERROR", "tPV", "tVIRGULE",
|
477
|
482
|
"tAFFECTATION", "tEGAL", "tDIFF", "tLT", "tGT", "tGTE", "tLTE", "tMAIN",
|
478
|
483
|
"tINT", "tPRINT", "tRETURN", "tOR", "tAND", "tIF", "tELSE", "tWHILE",
|
479
|
|
- "tCONST", "tVAR", "tNOT", "$accept", "C", "Fonctions", "Fonction",
|
480
|
|
- "Main", "Params", "Param", "SuiteParams", "Body", "Instructions",
|
481
|
|
- "Instruction", "Decl", "SuiteDecl", "Type", "Valeur", "Affbis", "Aff",
|
482
|
|
- "E", "If", "Else", "While", "Cond", "Print", "Invocation", "Args", YY_NULLPTR
|
|
484
|
+ "tCONST", "tVAR", "tNOT", "$accept", "Main", "Params", "Param",
|
|
485
|
+ "SuiteParams", "Body", "Instructions", "Instruction", "Decl",
|
|
486
|
+ "SuiteDecl", "Type", "Valeur", "Affbis", "Aff", "E", "Args", "SuiteArgs",
|
|
487
|
+ "If", "Else", "While", "Cond", "Invocation", "Print", "Return", YY_NULLPTR
|
483
|
488
|
};
|
484
|
489
|
#endif
|
485
|
490
|
|
|
@@ -491,14 +496,14 @@ static const yytype_uint16 yytoknum[] =
|
491
|
496
|
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
|
492
|
497
|
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
|
493
|
498
|
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
|
494
|
|
- 285, 286, 287, 288
|
|
499
|
+ 285, 286, 287, 288, 289
|
495
|
500
|
};
|
496
|
501
|
# endif
|
497
|
502
|
|
498
|
|
-#define YYPACT_NINF -47
|
|
503
|
+#define YYPACT_NINF -36
|
499
|
504
|
|
500
|
505
|
#define yypact_value_is_default(Yystate) \
|
501
|
|
- (!!((Yystate) == (-47)))
|
|
506
|
+ (!!((Yystate) == (-36)))
|
502
|
507
|
|
503
|
508
|
#define YYTABLE_NINF -1
|
504
|
509
|
|
|
@@ -509,18 +514,19 @@ static const yytype_uint16 yytoknum[] =
|
509
|
514
|
STATE-NUM. */
|
510
|
515
|
static const yytype_int8 yypact[] =
|
511
|
516
|
{
|
512
|
|
- -17, -24, 40, 23, -17, 57, -47, 47, -47, -47,
|
513
|
|
- 43, 71, 48, 73, 72, 78, -47, 83, 43, -47,
|
514
|
|
- 83, 53, -47, 72, -47, -47, 87, -47, 88, 89,
|
515
|
|
- 75, 37, 90, 53, -47, 67, 91, -47, -47, -47,
|
516
|
|
- -47, 92, -47, 68, 11, 11, -47, -47, 15, -47,
|
517
|
|
- -47, 93, 95, -47, -47, -47, 94, -47, 15, 15,
|
518
|
|
- 98, 11, 54, -5, -47, -2, 101, 85, 67, 99,
|
519
|
|
- 100, 4, 44, 36, 15, 15, 15, 15, 15, 15,
|
520
|
|
- 15, 15, 15, 15, 83, 11, 11, 83, -47, 95,
|
521
|
|
- -47, -47, -47, 49, 4, 85, 85, 85, 85, 85,
|
522
|
|
- 85, 85, 85, 82, 36, 36, -47, -47, 29, -47,
|
523
|
|
- 106, -47, 11, 0, 83, 82, -47
|
|
517
|
+ -7, -4, 26, 18, -36, 9, 12, 40, 36, -36,
|
|
518
|
+ 50, 9, -36, 54, -36, 36, -36, 55, 68, 79,
|
|
519
|
+ 39, -2, 63, 54, -36, 60, 80, -36, -36, -36,
|
|
520
|
+ 81, -36, 82, 64, 15, 15, -36, 65, 19, 19,
|
|
521
|
+ 88, -36, 86, 89, -36, -36, -36, -36, 93, -36,
|
|
522
|
+ 19, 19, 96, 15, 48, 97, -36, 99, 91, 100,
|
|
523
|
+ 24, 66, -36, 60, 98, 101, 1, 52, -36, 19,
|
|
524
|
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 15,
|
|
525
|
+ 15, 102, 103, 78, -36, -36, -36, 89, -36, -36,
|
|
526
|
+ -36, 5, 1, 108, -36, 24, 24, 24, 24, 24,
|
|
527
|
+ 24, -36, -36, 54, 54, 91, -36, 105, 106, -36,
|
|
528
|
+ 90, -36, -6, -36, 54, 110, 109, 15, -36, 112,
|
|
529
|
+ 113, 54, 111, 90, -36
|
524
|
530
|
};
|
525
|
531
|
|
526
|
532
|
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
|
|
@@ -528,34 +534,35 @@ static const yytype_int8 yypact[] =
|
528
|
534
|
means the default is an error. */
|
529
|
535
|
static const yytype_uint8 yydefact[] =
|
530
|
536
|
{
|
531
|
|
- 0, 0, 0, 0, 0, 0, 1, 0, 2, 3,
|
532
|
|
- 8, 0, 0, 0, 12, 0, 10, 0, 0, 9,
|
533
|
|
- 0, 15, 6, 12, 7, 26, 0, 19, 0, 0,
|
534
|
|
- 0, 0, 0, 15, 21, 0, 0, 16, 17, 18,
|
535
|
|
- 20, 0, 11, 0, 0, 0, 27, 57, 0, 13,
|
536
|
|
- 14, 28, 25, 29, 31, 22, 0, 32, 0, 0,
|
537
|
|
- 33, 0, 0, 0, 38, 0, 0, 30, 0, 0,
|
538
|
|
- 0, 40, 0, 54, 0, 0, 0, 0, 0, 0,
|
539
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 56, 25,
|
540
|
|
- 23, 55, 39, 34, 36, 35, 37, 48, 49, 50,
|
541
|
|
- 51, 53, 52, 42, 47, 46, 45, 24, 0, 41,
|
542
|
|
- 0, 43, 0, 0, 0, 42, 44
|
|
537
|
+ 0, 0, 0, 0, 1, 3, 0, 0, 7, 5,
|
|
538
|
+ 0, 0, 4, 10, 2, 7, 20, 0, 0, 0,
|
|
539
|
+ 0, 0, 0, 10, 15, 0, 0, 11, 12, 13,
|
|
540
|
+ 0, 14, 0, 0, 0, 0, 21, 36, 0, 0,
|
|
541
|
+ 0, 9, 22, 19, 23, 25, 16, 6, 0, 26,
|
|
542
|
+ 0, 0, 27, 0, 0, 0, 32, 0, 38, 0,
|
|
543
|
+ 24, 0, 8, 0, 0, 0, 34, 0, 51, 0,
|
|
544
|
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
545
|
+ 0, 0, 0, 0, 35, 52, 54, 19, 17, 53,
|
|
546
|
+ 33, 28, 30, 29, 31, 43, 44, 45, 46, 48,
|
|
547
|
+ 47, 50, 49, 10, 10, 38, 18, 0, 0, 37,
|
|
548
|
+ 0, 42, 0, 39, 10, 0, 0, 0, 40, 0,
|
|
549
|
+ 0, 10, 0, 0, 41
|
543
|
550
|
};
|
544
|
551
|
|
545
|
552
|
/* YYPGOTO[NTERM-NUM]. */
|
546
|
553
|
static const yytype_int8 yypgoto[] =
|
547
|
554
|
{
|
548
|
|
- -47, -47, 103, -47, -47, -47, 84, 96, -20, 97,
|
549
|
|
- -47, -47, 26, -47, 50, -30, -47, -46, -47, 1,
|
550
|
|
- -47, -44, -47, -18, -47
|
|
555
|
+ -36, -36, -36, 114, 115, -36, -22, -36, -36, 41,
|
|
556
|
+ -36, 69, -19, -36, -35, -36, 21, -36, 4, -36,
|
|
557
|
+ -33, -13, -36, -36
|
551
|
558
|
};
|
552
|
559
|
|
553
|
560
|
/* YYDEFGOTO[NTERM-NUM]. */
|
554
|
561
|
static const yytype_int8 yydefgoto[] =
|
555
|
562
|
{
|
556
|
|
- -1, 2, 3, 4, 8, 13, 14, 19, 22, 32,
|
557
|
|
- 33, 34, 69, 35, 52, 36, 37, 62, 38, 109,
|
558
|
|
- 39, 63, 40, 64, 66
|
|
563
|
+ -1, 2, 7, 8, 12, 14, 22, 23, 24, 64,
|
|
564
|
+ 25, 43, 26, 27, 54, 59, 84, 28, 113, 29,
|
|
565
|
+ 55, 56, 31, 40
|
559
|
566
|
};
|
560
|
567
|
|
561
|
568
|
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
|
|
@@ -563,78 +570,79 @@ static const yytype_int8 yydefgoto[] =
|
563
|
570
|
number is the opposite. If YYTABLE_NINF, syntax error. */
|
564
|
571
|
static const yytype_uint8 yytable[] =
|
565
|
572
|
{
|
566
|
|
- 24, 65, 67, 41, 84, 53, 1, 87, 5, 114,
|
567
|
|
- 76, 77, 71, 72, 57, 41, 58, 73, 57, 59,
|
568
|
|
- 58, 85, 86, 59, 85, 86, 85, 86, 93, 94,
|
569
|
|
- 95, 96, 97, 98, 99, 100, 101, 102, 53, 21,
|
570
|
|
- 6, 104, 105, 60, 61, 47, 7, 60, 74, 75,
|
571
|
|
- 76, 77, 48, 92, 75, 76, 77, 110, 74, 75,
|
572
|
|
- 76, 77, 85, 86, 103, 10, 12, 106, 113, 11,
|
573
|
|
- 78, 79, 80, 81, 82, 83, 25, 26, 27, 15,
|
574
|
|
- 16, 28, 17, 29, 30, 31, 18, 20, 111, 74,
|
575
|
|
- 75, 76, 77, 21, 115, 43, 44, 45, 46, 51,
|
576
|
|
- 56, 49, 23, 70, 54, 55, 47, 9, 48, 68,
|
577
|
|
- 88, 108, 90, 91, 112, 107, 116, 0, 89, 42,
|
578
|
|
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
579
|
|
- 50
|
|
573
|
+ 30, 41, 57, 60, 61, 114, 44, 37, 71, 72,
|
|
574
|
+ 30, 70, 71, 72, 38, 66, 67, 1, 49, 3,
|
|
575
|
+ 68, 50, 49, 115, 51, 50, 4, 5, 51, 69,
|
|
576
|
+ 70, 71, 72, 6, 91, 92, 93, 94, 95, 96,
|
|
577
|
+ 97, 98, 99, 100, 44, 9, 101, 102, 52, 53,
|
|
578
|
+ 10, 11, 52, 69, 70, 71, 72, 69, 70, 71,
|
|
579
|
+ 72, 13, 90, 36, 33, 73, 74, 75, 76, 77,
|
|
580
|
+ 78, 69, 70, 71, 72, 79, 80, 34, 16, 17,
|
|
581
|
+ 86, 107, 108, 18, 119, 19, 20, 21, 35, 39,
|
|
582
|
+ 30, 30, 116, 42, 45, 46, 47, 48, 58, 122,
|
|
583
|
+ 62, 30, 38, 65, 63, 37, 83, 81, 30, 82,
|
|
584
|
+ 85, 105, 88, 103, 104, 89, 72, 110, 111, 117,
|
|
585
|
+ 112, 118, 120, 123, 121, 15, 109, 124, 106, 0,
|
|
586
|
+ 32, 0, 87
|
580
|
587
|
};
|
581
|
588
|
|
582
|
589
|
static const yytype_int8 yycheck[] =
|
583
|
590
|
{
|
584
|
|
- 20, 45, 48, 21, 9, 35, 23, 9, 32, 9,
|
585
|
|
- 6, 7, 58, 59, 3, 33, 5, 61, 3, 8,
|
586
|
|
- 5, 26, 27, 8, 26, 27, 26, 27, 74, 75,
|
587
|
|
- 76, 77, 78, 79, 80, 81, 82, 83, 68, 10,
|
588
|
|
- 0, 85, 86, 32, 33, 8, 23, 32, 4, 5,
|
589
|
|
- 6, 7, 15, 9, 5, 6, 7, 28, 4, 5,
|
590
|
|
- 6, 7, 26, 27, 84, 8, 23, 87, 112, 22,
|
591
|
|
- 16, 17, 18, 19, 20, 21, 23, 24, 25, 8,
|
592
|
|
- 32, 28, 9, 30, 31, 32, 14, 9, 108, 4,
|
593
|
|
- 5, 6, 7, 10, 114, 8, 8, 8, 23, 32,
|
594
|
|
- 32, 11, 18, 9, 13, 13, 8, 4, 15, 14,
|
595
|
|
- 9, 29, 13, 13, 8, 89, 115, -1, 68, 23,
|
596
|
|
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
|
597
|
|
- 33
|
|
591
|
+ 13, 23, 35, 38, 39, 11, 25, 9, 7, 8,
|
|
592
|
+ 23, 6, 7, 8, 16, 50, 51, 24, 3, 23,
|
|
593
|
+ 53, 6, 3, 29, 9, 6, 0, 9, 9, 5,
|
|
594
|
+ 6, 7, 8, 24, 69, 70, 71, 72, 73, 74,
|
|
595
|
+ 75, 76, 77, 78, 63, 33, 79, 80, 33, 34,
|
|
596
|
+ 10, 15, 33, 5, 6, 7, 8, 5, 6, 7,
|
|
597
|
+ 8, 11, 10, 24, 9, 17, 18, 19, 20, 21,
|
|
598
|
+ 22, 5, 6, 7, 8, 27, 28, 9, 24, 25,
|
|
599
|
+ 14, 103, 104, 29, 117, 31, 32, 33, 9, 26,
|
|
600
|
+ 103, 104, 114, 33, 14, 14, 14, 33, 33, 121,
|
|
601
|
+ 12, 114, 16, 10, 15, 9, 15, 10, 121, 10,
|
|
602
|
+ 10, 33, 14, 11, 11, 14, 8, 12, 12, 9,
|
|
603
|
+ 30, 12, 10, 12, 11, 11, 105, 123, 87, -1,
|
|
604
|
+ 15, -1, 63
|
598
|
605
|
};
|
599
|
606
|
|
600
|
607
|
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
|
601
|
608
|
symbol of state STATE-NUM. */
|
602
|
609
|
static const yytype_uint8 yystos[] =
|
603
|
610
|
{
|
604
|
|
- 0, 23, 35, 36, 37, 32, 0, 23, 38, 36,
|
605
|
|
- 8, 22, 23, 39, 40, 8, 32, 9, 14, 41,
|
606
|
|
- 9, 10, 42, 40, 42, 23, 24, 25, 28, 30,
|
607
|
|
- 31, 32, 43, 44, 45, 47, 49, 50, 52, 54,
|
608
|
|
- 56, 57, 41, 8, 8, 8, 23, 8, 15, 11,
|
609
|
|
- 43, 32, 48, 49, 13, 13, 32, 3, 5, 8,
|
610
|
|
- 32, 33, 51, 55, 57, 55, 58, 51, 14, 46,
|
611
|
|
- 9, 51, 51, 55, 4, 5, 6, 7, 16, 17,
|
612
|
|
- 18, 19, 20, 21, 9, 26, 27, 9, 9, 48,
|
613
|
|
- 13, 13, 9, 51, 51, 51, 51, 51, 51, 51,
|
614
|
|
- 51, 51, 51, 42, 55, 55, 42, 46, 29, 53,
|
615
|
|
- 28, 42, 8, 55, 9, 42, 53
|
|
611
|
+ 0, 24, 36, 23, 0, 9, 24, 37, 38, 33,
|
|
612
|
+ 10, 15, 39, 11, 40, 38, 24, 25, 29, 31,
|
|
613
|
+ 32, 33, 41, 42, 43, 45, 47, 48, 52, 54,
|
|
614
|
+ 56, 57, 39, 9, 9, 9, 24, 9, 16, 26,
|
|
615
|
+ 58, 41, 33, 46, 47, 14, 14, 14, 33, 3,
|
|
616
|
+ 6, 9, 33, 34, 49, 55, 56, 55, 33, 50,
|
|
617
|
+ 49, 49, 12, 15, 44, 10, 49, 49, 55, 5,
|
|
618
|
+ 6, 7, 8, 17, 18, 19, 20, 21, 22, 27,
|
|
619
|
+ 28, 10, 10, 15, 51, 10, 14, 46, 14, 14,
|
|
620
|
+ 10, 49, 49, 49, 49, 49, 49, 49, 49, 49,
|
|
621
|
+ 49, 55, 55, 11, 11, 33, 44, 41, 41, 51,
|
|
622
|
+ 12, 12, 30, 53, 11, 29, 41, 9, 12, 55,
|
|
623
|
+ 10, 11, 41, 12, 53
|
616
|
624
|
};
|
617
|
625
|
|
618
|
626
|
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
|
619
|
627
|
static const yytype_uint8 yyr1[] =
|
620
|
628
|
{
|
621
|
|
- 0, 34, 35, 36, 36, 36, 37, 38, 39, 39,
|
622
|
|
- 40, 41, 41, 42, 43, 43, 44, 44, 44, 44,
|
623
|
|
- 44, 44, 44, 45, 46, 46, 47, 47, 48, 48,
|
624
|
|
- 49, 50, 51, 51, 51, 51, 51, 51, 51, 51,
|
625
|
|
- 51, 52, 53, 53, 53, 54, 55, 55, 55, 55,
|
626
|
|
- 55, 55, 55, 55, 55, 56, 57, 58
|
|
629
|
+ 0, 35, 36, 37, 37, 38, 39, 39, 40, 41,
|
|
630
|
+ 41, 42, 42, 42, 42, 42, 42, 43, 44, 44,
|
|
631
|
+ 45, 45, 46, 46, 47, 48, 49, 49, 49, 49,
|
|
632
|
+ 49, 49, 49, 49, 49, 50, 50, 51, 51, 52,
|
|
633
|
+ 53, 53, 54, 55, 55, 55, 55, 55, 55, 55,
|
|
634
|
+ 55, 55, 56, 57, 58
|
627
|
635
|
};
|
628
|
636
|
|
629
|
637
|
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
|
630
|
638
|
static const yytype_uint8 yyr2[] =
|
631
|
639
|
{
|
632
|
|
- 0, 2, 2, 2, 1, 0, 6, 5, 0, 2,
|
633
|
|
- 2, 3, 0, 3, 2, 0, 1, 1, 1, 1,
|
634
|
|
- 1, 1, 2, 4, 3, 0, 1, 2, 1, 1,
|
635
|
|
- 3, 2, 1, 1, 3, 3, 3, 3, 1, 3,
|
636
|
|
- 2, 6, 0, 2, 7, 5, 3, 3, 3, 3,
|
637
|
|
- 3, 3, 3, 3, 2, 5, 4, 0
|
|
640
|
+ 0, 2, 6, 0, 2, 2, 4, 0, 4, 2,
|
|
641
|
+ 0, 1, 1, 1, 1, 1, 2, 4, 3, 0,
|
|
642
|
+ 1, 2, 1, 1, 3, 2, 1, 1, 3, 3,
|
|
643
|
+ 3, 3, 1, 3, 2, 2, 0, 3, 0, 8,
|
|
644
|
+ 4, 9, 7, 3, 3, 3, 3, 3, 3, 3,
|
|
645
|
+ 3, 2, 4, 5, 3
|
638
|
646
|
};
|
639
|
647
|
|
640
|
648
|
|
|
@@ -1310,8 +1318,206 @@ yyreduce:
|
1310
|
1318
|
YY_REDUCE_PRINT (yyn);
|
1311
|
1319
|
switch (yyn)
|
1312
|
1320
|
{
|
1313
|
|
-
|
1314
|
|
-#line 1315 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1321
|
+ case 2:
|
|
1322
|
+#line 63 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1323
|
+ {printf("Dans main\n");}
|
|
1324
|
+#line 1325 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1325
|
+ break;
|
|
1326
|
+
|
|
1327
|
+ case 3:
|
|
1328
|
+#line 65 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1329
|
+ {printf("Sans params\n");}
|
|
1330
|
+#line 1331 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1331
|
+ break;
|
|
1332
|
+
|
|
1333
|
+ case 5:
|
|
1334
|
+#line 68 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1335
|
+ {printf("Parametre : %s\n", (yyvsp[0].id));}
|
|
1336
|
+#line 1337 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1337
|
+ break;
|
|
1338
|
+
|
|
1339
|
+ case 8:
|
|
1340
|
+#line 75 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1341
|
+ {printf("Dans body\n");}
|
|
1342
|
+#line 1343 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1343
|
+ break;
|
|
1344
|
+
|
|
1345
|
+ case 17:
|
|
1346
|
+#line 87 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1347
|
+ {printf("Declaration\n");}
|
|
1348
|
+#line 1349 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1349
|
+ break;
|
|
1350
|
+
|
|
1351
|
+ case 20:
|
|
1352
|
+#line 92 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1353
|
+ {printf("int\n");}
|
|
1354
|
+#line 1355 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1355
|
+ break;
|
|
1356
|
+
|
|
1357
|
+ case 21:
|
|
1358
|
+#line 93 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1359
|
+ {printf("const int\n");}
|
|
1360
|
+#line 1361 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1361
|
+ break;
|
|
1362
|
+
|
|
1363
|
+ case 22:
|
|
1364
|
+#line 95 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1365
|
+ {printf("Declaration %s\n", (yyvsp[0].id));}
|
|
1366
|
+#line 1367 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1367
|
+ break;
|
|
1368
|
+
|
|
1369
|
+ case 24:
|
|
1370
|
+#line 98 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1371
|
+ {printf("Affectation : %s\n", (yyvsp[-2].id));}
|
|
1372
|
+#line 1373 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1373
|
+ break;
|
|
1374
|
+
|
|
1375
|
+ case 26:
|
|
1376
|
+#line 102 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1377
|
+ {printf("int %d\n", (yyvsp[0].nombre));}
|
|
1378
|
+#line 1379 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1379
|
+ break;
|
|
1380
|
+
|
|
1381
|
+ case 27:
|
|
1382
|
+#line 103 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1383
|
+ {printf("var %s\n", (yyvsp[0].id));}
|
|
1384
|
+#line 1385 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1385
|
+ break;
|
|
1386
|
+
|
|
1387
|
+ case 28:
|
|
1388
|
+#line 104 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1389
|
+ {printf("Addition\n");}
|
|
1390
|
+#line 1391 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1391
|
+ break;
|
|
1392
|
+
|
|
1393
|
+ case 29:
|
|
1394
|
+#line 105 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1395
|
+ {printf("Multiplication\n");}
|
|
1396
|
+#line 1397 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1397
|
+ break;
|
|
1398
|
+
|
|
1399
|
+ case 30:
|
|
1400
|
+#line 106 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1401
|
+ {printf("Soustraction\n");}
|
|
1402
|
+#line 1403 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1403
|
+ break;
|
|
1404
|
+
|
|
1405
|
+ case 31:
|
|
1406
|
+#line 107 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1407
|
+ {printf("Division\n");}
|
|
1408
|
+#line 1409 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1409
|
+ break;
|
|
1410
|
+
|
|
1411
|
+ case 33:
|
|
1412
|
+#line 109 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1413
|
+ {printf("Parenthèse\n");}
|
|
1414
|
+#line 1415 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1415
|
+ break;
|
|
1416
|
+
|
|
1417
|
+ case 34:
|
|
1418
|
+#line 110 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1419
|
+ {printf("Soustraction\n");}
|
|
1420
|
+#line 1421 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1421
|
+ break;
|
|
1422
|
+
|
|
1423
|
+ case 39:
|
|
1424
|
+#line 118 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1425
|
+ {printf("Dans if\n");}
|
|
1426
|
+#line 1427 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1427
|
+ break;
|
|
1428
|
+
|
|
1429
|
+ case 40:
|
|
1430
|
+#line 120 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1431
|
+ {printf("else\n");}
|
|
1432
|
+#line 1433 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1433
|
+ break;
|
|
1434
|
+
|
|
1435
|
+ case 41:
|
|
1436
|
+#line 121 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1437
|
+ {printf("elsif\n");}
|
|
1438
|
+#line 1439 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1439
|
+ break;
|
|
1440
|
+
|
|
1441
|
+ case 42:
|
|
1442
|
+#line 123 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1443
|
+ {printf("Dans while\n");}
|
|
1444
|
+#line 1445 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1445
|
+ break;
|
|
1446
|
+
|
|
1447
|
+ case 43:
|
|
1448
|
+#line 125 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1449
|
+ {printf("Cond ==\n");}
|
|
1450
|
+#line 1451 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1451
|
+ break;
|
|
1452
|
+
|
|
1453
|
+ case 44:
|
|
1454
|
+#line 126 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1455
|
+ {printf("Cond !=\n");}
|
|
1456
|
+#line 1457 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1457
|
+ break;
|
|
1458
|
+
|
|
1459
|
+ case 45:
|
|
1460
|
+#line 127 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1461
|
+ {printf("Cond <\n");}
|
|
1462
|
+#line 1463 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1463
|
+ break;
|
|
1464
|
+
|
|
1465
|
+ case 46:
|
|
1466
|
+#line 128 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1467
|
+ {printf("Cond >\n");}
|
|
1468
|
+#line 1469 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1469
|
+ break;
|
|
1470
|
+
|
|
1471
|
+ case 47:
|
|
1472
|
+#line 129 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1473
|
+ {printf("Cond <=\n");}
|
|
1474
|
+#line 1475 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1475
|
+ break;
|
|
1476
|
+
|
|
1477
|
+ case 48:
|
|
1478
|
+#line 130 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1479
|
+ {printf("Cond >=\n");}
|
|
1480
|
+#line 1481 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1481
|
+ break;
|
|
1482
|
+
|
|
1483
|
+ case 49:
|
|
1484
|
+#line 131 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1485
|
+ {printf("Cond &&\n");}
|
|
1486
|
+#line 1487 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1487
|
+ break;
|
|
1488
|
+
|
|
1489
|
+ case 50:
|
|
1490
|
+#line 132 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1491
|
+ {printf("Cond ||\n");}
|
|
1492
|
+#line 1493 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1493
|
+ break;
|
|
1494
|
+
|
|
1495
|
+ case 51:
|
|
1496
|
+#line 133 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1497
|
+ {printf("Cond !\n");}
|
|
1498
|
+#line 1499 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1499
|
+ break;
|
|
1500
|
+
|
|
1501
|
+ case 52:
|
|
1502
|
+#line 135 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1503
|
+ {printf("Dans invocation\n");}
|
|
1504
|
+#line 1505 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1505
|
+ break;
|
|
1506
|
+
|
|
1507
|
+ case 53:
|
|
1508
|
+#line 137 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1509
|
+ {printf("printf de %s\n", (yyvsp[-2].id));}
|
|
1510
|
+#line 1511 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1511
|
+ break;
|
|
1512
|
+
|
|
1513
|
+ case 54:
|
|
1514
|
+#line 139 "analyse_syntaxique.y" /* yacc.c:1646 */
|
|
1515
|
+ {printf("return\n");}
|
|
1516
|
+#line 1517 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
|
1517
|
+ break;
|
|
1518
|
+
|
|
1519
|
+
|
|
1520
|
+#line 1521 "analyse_syntaxique.tab.c" /* yacc.c:1646 */
|
1315
|
1521
|
default: break;
|
1316
|
1522
|
}
|
1317
|
1523
|
/* User semantic actions sometimes alter yychar, and that requires
|
|
@@ -1539,5 +1745,10 @@ yyreturn:
|
1539
|
1745
|
#endif
|
1540
|
1746
|
return yyresult;
|
1541
|
1747
|
}
|
1542
|
|
-#line 107 "analyse_syntaxique.y" /* yacc.c:1906 */
|
|
1748
|
+#line 141 "analyse_syntaxique.y" /* yacc.c:1906 */
|
|
1749
|
+
|
|
1750
|
+#include <stdio.h>
|
|
1751
|
+void main(void){
|
|
1752
|
+ yyparse();
|
|
1753
|
+}
|
1543
|
1754
|
|