home *** CD-ROM | disk | FTP | other *** search
- /* mkrbop.c -- make operator functions for bs. (real-boolean functions.)
- *
- * USAGE: op name oper
- *
- * where: name: name of function generated.
- * oper: operator for operation.
- */
- #include <stdio.h>
-
- main(argc,argv)
- char **argv;
- int argc;
- {
- char *name,*oper;
-
- if(argc != 3) {
- fprintf(stderr,"arg count\n");
- exit(1);
- }
- name = argv[1]; oper = argv[2];
-
- printf("_%s(l,p)\n",name);
- printf("int (*l[])(),p;\n");
- printf("{\n");
- printf(" union value rg1,rg2,result;\n");
- printf("\n");
- printf(" switch(status&XMODE) {\n");
- printf(" case M_READ: dtype = T_INT;\n");
- printf(" case M_EXECUTE:\n");
- printf(" rg2 = pop();\n");
- printf(" rg1 = pop();\n");
- printf(" result.ival = rg1.rval %s rg2.rval;\n",oper);
- printf(" push(result);\n");
- printf(" case M_FIXUP:\n");
- printf(" case M_COMPILE: return(p);\n");
- printf(" default: STerror(\"%s\");\n",name);
- printf(" }\n");
- printf("}\n");
- }
-