home *** CD-ROM | disk | FTP | other *** search
- #include "windows.h"
- #define numfuncs 3
-
- #include "wztools.h"
-
- ROUT rout;
- char multname[] = "\04mult";
- char addname[] = "\03add";
- char reverse[] = "\07reverse";
- char buf[256];
- int _fltused;
-
- WZFUNC rev(pret,parg)
- PVAL pret;
- PVAL parg;
- {
- int i,j;
-
- if (parg[0].flag == STRING)
- {
- pret->flag = STRING;
- buf[0] = parg[0].val.string[0];
-
- for (i = parg[0].val.string[0],j = 1; i > 0 ; i--,j++)
- buf[j] = parg[0].val.string[i];
- pret->val.string = buf;
-
- }
- else
- {
- pret->flag = 2;
- pret->val.err = 12; /* argument is bad */
- }
- }
-
- WZFUNC add2args(pret,parg)
- PVAL pret;
- PVAL parg;
- {
-
- if (!parg[0].flag && !parg[1].flag)
- {
- pret->flag = 0;
- pret->val.numeric = parg[0].val.numeric + parg[1].val.numeric;
- }
- else
- {
- pret->flag = 2;
- pret->val.err = 12; /* argument is bad */
- }
- }
-
- WZFUNC mult2args(pret,parg)
- PVAL pret;
- PVAL parg;
- {
-
- if (!parg[0].flag && !parg[1].flag)
- {
- pret->flag = 0;
- pret->val.numeric = parg[0].val.numeric * parg[1].val.numeric;
- }
- else
- {
- pret->flag = 2;
- pret->val.err = 12; /* argument is bad */
- }
- }
-
-
- WZMAINFUNC main()
- {
-
- rout.nrout = numfuncs;
- rout.exitfunc = 0;
- rout.relts[1].pfunc = add2args;
- rout.relts[1].name = addname;
- rout.relts[1].narg = 2;
-
- rout.relts[0].pfunc = mult2args;
- rout.relts[0].name = multname;
- rout.relts[0].narg = 2;
-
- rout.relts[2].pfunc = rev;
- rout.relts[2].name = reverse;
- rout.relts[2].narg = 1;
-
- return(&rout);
-
- }
-
-
- /*
- int near pascal LibMain(hModule, wDataSeg, cbHeapSize, lpszCmdLine)
- HANDLE hModule;
- WORD wDataSeg;
- WORD cbHeapSize;
- LPSTR lpszCmdLine;
- {
- return 1;
- }
-
- VOID FAR PASCAL WEP (bSystemExit)
- int bSystemExit;
- {
- return;
- }
- */
-
-