Subversion Repositories planix.SVN

Rev

Rev 2 | Blame | Compare with Previous | Last modification | View Log | RSS feed

#include "e.h"
#include "y.tab.h"

extern int Funnyps;
extern double Funnyht, Funnybase;

void funny(int n)
{
        char *f = 0;

        yyval = salloc();
        switch (n) {
        case SUM:
                f = lookup(deftbl, "sum_def")->cval; break;
        case UNION:
                f = lookup(deftbl, "union_def")->cval; break;
        case INTER:     /* intersection */
                f = lookup(deftbl, "inter_def")->cval; break;
        case PROD:
                f = lookup(deftbl, "prod_def")->cval; break;
        default:
                ERROR "funny type %d in funny", n FATAL;
        }
        printf(".ds %d %s\n", yyval, f);
        eht[yyval] = EM(1.0, ps+Funnyps) - EM(Funnyht, ps);
        ebase[yyval] = EM(Funnybase, ps);
        dprintf(".\tS%d <- %s; h=%g b=%g\n", 
                yyval, f, eht[yyval], ebase[yyval]);
        lfont[yyval] = rfont[yyval] = ROM;
}