Next: Mfcalc Symtab, Previous: Mfcalc Decl, Up: Multi-function Calc [Contents][Index]
mfcalc¤Î¤¿¤á¤Îʸˡµ¬Â§Â¿µ¡Ç½ÅÅÂî¤Î¤¿¤á¤Îʸˡµ¬Â§¤ò¼¨¤·¤Þ¤¹¡£
ÂçÉôʬ¤Ï¡¢calc¤Îʸˡµ¬Â§¤«¤é¤ÎÊ£¼Ì¤Ç¤¹¡£
VAR¡¢FUNCT¤Ë´ØÏ¢¤¹¤ë3¤Ä¤Îµ¬Â§¤¬¿·¤·¤¤¤â¤Î¤Ç¤¹¡£
input: /* ¶õ */
| input line
;
line:
'\n'
| exp '\n' { printf ("\t%.10g\n", $1); }
| error '\n' { yyerrok; }
;
exp: NUM { $$ = $1; }
| VAR { $$ = $1->value.var; }
| VAR '=' exp { $$ = $3; $1->value.var = $3; }
| FNCT '(' exp ')' { $$ = (*($1->value.fnctptr))($3); }
| exp '+' exp { $$ = $1 + $3; }
| exp '-' exp { $$ = $1 - $3; }
| exp '*' exp { $$ = $1 * $3; }
| exp '/' exp { $$ = $1 / $3; }
| '-' exp %prec NEG { $$ = -$2; }
| exp '^' exp { $$ = pow ($1, $3); }
| '(' exp ')' { $$ = $2; }
;
/* ʸˡ¤Î½ª¤ï¤ê */
%%