home *** CD-ROM | disk | FTP | other *** search
- #include<stdio.h>
- #include<stdlib.h> /* Without which getenv() blithely returns garbage! */
- #include<dos.h>
- #include<malloc.h>
- #include"comscrpt.h"
-
- struct line far *program;
- int proglen, mainargc;
- FILE *scriptfd;
- char str[81], **mainargv;
- short int labels[256];
-
- main(argc, argv)
- int argc;
- char **argv;
- {
- char fpname[256], *sptr;
- int i, j, k, argn, value[8], eflag, nlperrs, nlverrs;
- program=(struct line *)malloc(PROGSIZ*sizeof(struct line));
- if(!program)
- {
- printf("Unable to allocate program buffer (compiled for %d statements).\n", PROGSIZ);
- exit(123);
- }
- if(argc<2)
- {
- printf("USAGE: scrchk <sourcefile> [<arg1> [... [<arg9>]]]");
- printf("\n(Compiled with PROGSIZ limit = %d statements.)\n",
- PROGSIZ);
- exit(1);
- }
- if(getenv("PCCPPATH")!=NULL)
- sprintf(quicke, "%s\\", getenv("PCCPPATH"));
- else
- quicke[0]='\0';
- if((quicke==NULL)||(argv[1][0]=='\\')||(argv[1][0]=='.')||(argv[1][0]&&(argv[1][1]==':')))
- sprintf(fpname, "%s.scr", argv[1]);
- else
- sprintf(fpname, "%s%s.scr", quicke, argv[1]);
- if((scriptfd=fopen(fpname, "r"))==NULL)
- {
- printf("Error opening script file %s.\n", fpname);
- exit(2);
- }
- fgets(str, 80, scriptfd); /* Flush init params */
- for(i=0;i<256;++i)
- labels[i]=-1;
- mainargc=argc;
- mainargv=argv;
- printf("Parsing with numbered list option...\n");
- nlperrs=parse(1,1);
- /* God, I'm glad I got around to modularizing this stuff! */
- printf("Checking branch label validity...\n");
- nlverrs=validate(1);
- printf("\n\nLabel Table:\n\n");
- printf("Lbl: Stmt: Lbl: Stmt: Lbl: Stmt: Lbl: Stmt: Lbl: Stmt:\n ");
- for(i=0;i<256;++i)
- {
- if(labels[i]==-1)
- printf("%3d ---", i);
- else
- printf("%3d %3d", i, labels[i]);
- if((i+1)%5)
- printf(" ");
- else
- printf("\n ");
- }
- printf("\nTotal label errors: %d in parse() and %d in validate().\n",
- nlperrs, nlverrs);
- }
-