%%
input:
    /* empty */
    | input line
    ;

line:
    '\n'
    | expr '\n' { printf("Result: %f\n", $1); }
    ;

expr:
    NUMBER
    | expr '+' expr { $$ = $1 + $3; }
    | expr '-' expr { $$ = $1 - $3; }
    | expr '*' expr { $$ = $1 * $3; }
    | expr '/' expr { $$ = $1 / $3; }
    | '(' expr ')'  { $$ = $2; }
    | SIN '(' expr ')' { $$ = sin($3); }
    | COS '(' expr ')' { $$ = cos($3); }
    | TAN '(' expr ')' { $$ = tan($3); }
    | SQRT '(' expr ')' { $$ = sqrt($3); }
    | EXP '(' expr ')' { $$ = exp($3); }
    | LN '(' expr ')' { $$ = log($3); }
    ;
%%
