C.6.2 YACC議坿殻會箭2

  %{

  #include <stdio.h>
  #include <ctype.h>

  typedef struct interval {
     double lo, hi;
     } INTERVAL;
  INTERVAL vmul(), vdiv();

  double atof();

  double dreg[26];
  INTERVAL vreg[26];

  %}

  %start lines

  %union{
     int ival;
     double dval;
     INTERVAL vval;
     }

  %token <ival> DREG VREG
   /* indices into dreg, vreg arrays */
  %token <dval> CONST
   /* floating point constant */
  %type<dval> dexp
   /* expression */
  %type<vval> vexp
   /* interval expression */

  /* precedence information */
  /* about the operators */

  %left >+> >->
  %left >*> >/>
  %left UMINUS
   /* supplies precedence for unary minus */

  %%