home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume2 / basic / part1 / newbs / mkrbop.c < prev    next >
Encoding:
C/C++ Source or Header  |  1986-11-30  |  734 b   |  36 lines

  1. /* mkrbop.c -- make operator functions for bs.  (real-boolean functions.)
  2. *
  3. *    USAGE: op name oper
  4. *
  5. * where:    name: name of function generated.
  6. *        oper: operator for operation.
  7. */
  8. #include <stdio.h>
  9.  
  10. main(argc,argv)
  11. char **argv;
  12. int argc;
  13. {
  14. char *name,*oper;
  15.  
  16. if(argc != 3) {
  17.     fprintf(stderr,"arg count\n");
  18.     exit(1);
  19. }
  20. name = argv[1]; oper = argv[2];
  21.  
  22. printf("_%s(l,p)\n",name);
  23. printf("int (*l[])(),p;\n");
  24. printf("{\n");
  25. printf("    union value rg1,rg2,result;\n");
  26. printf("\n");
  27. printf("    if((status&XMODE) == M_EXECUTE) {\n");
  28. printf("    rg2 = pop();\n");
  29. printf("    rg1 = pop();\n");
  30. printf("    result.ival = rg1.rval %s rg2.rval;\n",oper);
  31. printf("    push(result);\n");
  32. printf("    }\n");
  33. printf("    return(p);\n");
  34. printf("}\n");
  35. }
  36.