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 */
%%
|