โปรเจ็ค compiler ครับ

อ.ให้เขียน compiler มาตัวหนึ่งโดยต่อยอดจาดของอ. ของอ.รับค่าได้ บวกลบคูณหารได้  ฉันเลยต่อยอดเป็นหาค่าเฉลี่ย อ.ให้ใช้ bison กับ flex แต่ห้ามเชื่อมโยงกับภาษาซี ให้เขียน Grammar ขึ้นมาให้ ฉันจนปัญญาแล้ว แทรกโค้ดเข้าไปนิดนึงก้ error ไม่รู้จะทำไงดี  ข้างล่างเป็นโค้ดที่อ.ให้เอามาต่อยอด  ถามเพื่อนๆที่เรียนก้ไม่ค่อยใครทำได้

รบกวนท่านผู้รู้ช่วยฉันหน่อยนะคะ ขอขอบคุณเป็นอย่างสูงมา ณ ที่นี้ค่ะ  

%{
#include "var.tab.h"
%}
%%
[0-9]+  {   yylval.val = atof(yytext);
            return NUMBER;
        }
[a-z]   {   yylval.varNo = yytext[0] - 'a';
            return ID;
        }
"END"   { return EN; }
        [ \t]   ;
\n|.  return yytext[0];

เป็น ไฟล์ var.l



%union {
    double val;
    int    varNo;    
}
%token <val>   NUMBER
%token EN
%token <varNo> ID
%type  <val>   expression
%left '+' '-'
%left '*' '/'
%%
statementList: statement '\n'  
             | statementList statement '\n'
             ;
            
statement: ID '=' expression { varTable[$1] = $3;
                               printf("%c=%f\n", 'a' + $1, $3); }
          | EN { printf("Exit \n" ); exit (0);}
          
         ;
        
expression: expression '+' expression { $$ = $1 + $3; }
          | expression '-' expression { $$ = $1 - $3; }
          | expression '*' expression { $$ = $1 * $3; }
          | expression '/' expression { $$ = $1 / $3; }
          | '(' expression ')'        { $$ = $2; }
          | NUMBER                    { $$ = $1; }
          | ID                        { $$ = varTable[$1]; }
          ;
%%    
main()
{
    yyparse();
}
ส่วนนี้เป็นของ var.y ค่ะ


ปล. พึ่งเคยตั้งกระทู้เป็นครั้งแรกเลยไม่รู้จะแท็กห้องไหนดี ขออภัยถ้าแท็กห้องผิด
แก้ไขข้อความเมื่อ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่