Next: , Previous: Mfcalc Decl, Up: Multi-function Calc   [Contents][Index]


2.4.2 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;                         }
;
/* ʸˡ¤Î½ª¤ï¤ê */
%%