Bonjour,
J'ai besoin de votre aide pour Flex & Bison, enfin essentiellement sur Bison.
Voici la première question. J'ai le résultat de mes expressions mathématiques dans "exp" et mes chaines de caractères alpha numériques provenant de Flex dans "stringexp". Comment réunir les deux en une liste de paramètres auxquels je peux accéder ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 %type <float> function function: ABS "(" paramlist ")" { /* comment accéder aux paramètres ? */ } ; paramlist: param | paramlist "," param ; param: exp { /*$$ = un double ou un integer */ } | stringexp { /*$$ = un chaine alphanumérique */ } ;
Et la deuxième question, comment applique-t-on IF THEN ELSE dans une ligne de commandes où les instructions et les paramètres sont séparés par ':' ?
Si je fais comme cela, j'obtiens un décalage/réduction, et en plus je ne sais pas comment exécuter ou non les fonctions.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 statements: statement | statements ":" statement ; statement: INSTRUCTION paramlist { /* Appeler une fonction qui exécutera l'instruction et les paramètres */ } | IF exp THEN statement ELSE statement { /* Que faire ici ? */ } | IF exp THEN statement{ /* Que faire ici ? */ } ;
Partager