Yacc rogram

hello, actually i want to generate rgram in yacc able to do do several operations separated by ';' and after show all the results separated by ';' again.
My code do just one operations and i couldn' t find solution to do several ones separated by ';'. I thought may be i can do a do... while but i don't know how to do it for my example. If someone can help me please.
here is my .y for just one operation

%{ double vbltable[26]; %}

%union {
       double dval ;
       int vblno; }

%token <vblno> NAME 
%token <dval>  NUMBER

%type  <dval> expression

%%
statement_list:  
  statement '\n'
| statement_list statement '\n'
;

statement: 
  NAME '=' expression { vbltable[$1] = $3; }
| expression          { printf("est %g\n", $1); }
;

expression: 
  expression expression '+' { $$ = $1 + $2; }
| expression expression '-' { $$ = $1 - $2; }
| expression expression '*' { $$ = $1 * $2; }
| expression expression '/' {if($2 == 0.0)
                             printf("erreur ! Division par 0");
                             else
                             $$ = $1 / $2; }
| '(' '-' expression ')'    { $$ = -$3; }
| NUMBER                    { $$ = $1; }
| NAME                      { $$ = vbltable[$1]; }
;
%%

int yyerror() { printf("erreur") ; } 
int main () { yyparse(); } 

and here is my .l

%{ 
#include "y.tab.h" 
#include <math.h>
extern double vbltable[26];
%}

%%

([0-9]+|([0-9]*"."[0-9]+)) { yylval.dval = atof(yytext); return NUMBER; }
\t;                        { ; }
" "                        { ; }
[a-z]                      { yylval.vblno = yytext[0] - 'a' ; return NAME;}
"$"                        { return 0; 
                             /* symb. de retour pour fin de fichier */}
\n                         { return yytext[0]; }
.                          { return yytext[0]; }

%%

thanks

---------- Post updated at 03:14 PM ---------- Previous update was at 09:06 AM ----------

no answer?? come on it's christmas soon :wink: