DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(bison.info.gz) Multi-function Calc

Info Catalog (bison.info.gz) Location Tracking Calc (bison.info.gz) Examples (bison.info.gz) Exercises
 
 Multi-Function Calculator: `mfcalc'
 ===================================
 
    Now that the basics of Bison have been discussed, it is time to move
 on to a more advanced problem.  The above calculators provided only five
 functions, `+', `-', `*', `/' and `^'.  It would be nice to have a
 calculator that provides other mathematical functions such as `sin',
 `cos', etc.
 
    It is easy to add new operators to the infix calculator as long as
 they are only single-character literals.  The lexical analyzer `yylex'
 passes back all nonnumber characters as tokens, so new grammar rules
 suffice for adding a new operator.  But we want something more
 flexible: built-in functions whose syntax has this form:
 
      FUNCTION_NAME (ARGUMENT)
 
 At the same time, we will add memory to the calculator, by allowing you
 to create named variables, store values in them, and use them later.
 Here is a sample session with the multi-function calculator:
 
      $ mfcalc
      pi = 3.141592653589
      3.1415926536
      sin(pi)
      0.0000000000
      alpha = beta1 = 2.3
      2.3000000000
      alpha
      2.3000000000
      ln(alpha)
      0.8329091229
      exp(ln(beta1))
      2.3000000000
      $
 
    Note that multiple assignment and nested function calls are
 permitted.
 

Menu

 
* Decl Mfcalc Decl.      Bison declarations for multi-function calculator.
* Rules Mfcalc Rules.    Grammar rules for the calculator.
* Symtab Mfcalc Symtab.  Symbol table management subroutines.
 
Info Catalog (bison.info.gz) Location Tracking Calc (bison.info.gz) Examples (bison.info.gz) Exercises
automatically generated byinfo2html