vlp-10 Using coding style in logcomp.
[vlp.git] / src / preproc / prep.cpp
index 440576841782f67938db12fc31ddf31898070bc2..7a00924f8a3c59c289b477bead18ee5cbc1d07db 100644 (file)
@@ -1,4 +1,3 @@
-
 #include <qlist.h>
 #include <qstring.h>
 #include <stdio.h>
 class IncFile
 {
 public:
- char filename[255];
- int start, len;
- IncFile(char *s,int st) {strcpy(filename,s);start=st;len=0;};
+       char filename[255];
+       int start, len;
+       IncFile(char *s, int st)
+       {
+               strcpy(filename,s);
+               start=st;
+               len=0;
+       };
 };
 
 QList<IncFile> inc;
 
 IncFile *findTrueLine(int ln, int *trueline)
 {
- IncFile *pom,*pom1;
- QList<IncFile> pl;
- int c1=0,c2=0;
-
-
-if (inc.isEmpty()) { *trueline=ln;return(NULL);} 
-pl.clear();
-pom=inc.first();
-if (pom->start>ln) {*trueline=ln;return(NULL);}
-
-while ( (pom!=NULL) && (ln>pom->start))
- {
-
-  if (ln<pom->start+pom->len) {*trueline=ln-pom->start;
-                               return(pom);}  
-  pl.append(pom);
-  pom=inc.next();
- }
-
- if (pom != NULL)
- {
-  pom1=pl.first();c1=0;
-  while (pom1!=NULL) { c1+=pom1->len;pom1=pl.next(); }
-  *trueline=ln-c1; return(NULL);
- }
-  else
- {
-   pom1=inc.first();c1=0;
-   while (pom1!=NULL) { c1+=pom1->len;pom1=inc.next(); }
-   *trueline=ln-c1; return(NULL);
-  }
- return(NULL);
+       IncFile *pom, *pom1;
+       QList<IncFile> pl;
+       int c1 = 0, c2 = 0;
+
+       if (inc.isEmpty()) {
+               *trueline = ln;
+               return NULL;
+       } 
+       pl.clear();
+       pom = inc.first();
+       if (pom->start > ln) {
+               *trueline = ln;
+               return NULL;
+       }
+
+       while ((pom != NULL) && (ln > pom->start)) {
+               if (ln < pom->start + pom->len) {
+                       *trueline = ln-pom->start;
+                       return pom;
+               }
+               pl.append(pom);
+               pom=inc.next();
+       }
+
+       if (pom != NULL) {
+               pom1 = pl.first();
+               c1=0;
+               while (pom1 != NULL) {
+                       c1 += pom1->len;
+                       pom1 = pl.next();
+               }
+               *trueline = ln - c1;
+               return NULL;
+       } else {
+               pom1 = inc.first();
+               c1 = 0;
+               while (pom1 != NULL) {
+                       c1 += pom1->len;
+                       pom1=inc.next();
+               }
+               *trueline = ln - c1;
+               return NULL;
+       }
+       return NULL;
 }
 
 int main(int argc,char **argv)
 {
- char homedir[255];
- char mydir[255],ss[255],fname[255];
- QString poms,poms1,poms2;
-
- int currentline=1;
- int i,j,line,tline;
-
- inc.clear();
- poms.sprintf("%s",argv[1]);
- i=poms.findRev('/',poms.length()-1,FALSE);
-
-
-//******* get home directory 
- if (i!=-1)
- {
-   poms1=poms.left(i+1);
-   strcpy(homedir,poms1.data());
-  }
-   else strcpy(homedir,"");
-
- poms.sprintf("%s",argv[0]);
- i=poms.findRev('/',poms.length()-1,FALSE);
- if (i!=-1) poms1=poms.left(i);
- else poms1.sprintf(".");
- strcpy(mydir,poms1.data());
-
- poms.sprintf("%s",argv[1]);
- i=poms.findRev(".log",poms.length()-1,FALSE);
- poms1=poms.left(i);
- strcpy(fname,poms1.data());
-
-// ********************
-
- poms.sprintf("%s/.cmp00",mydir);
- poms1.sprintf("%s/cmp01.log",mydir);
- unlink(poms.data());
- unlink(poms1.data());
-
- QFile compfile(poms1.data());
- QFile srcfile(argv[1]);
-
-  
-  if (!compfile.open(IO_WriteOnly))
-     {fprintf(stdout,"Cannot open temp file to write %s\n",poms1.data());exit(1);}
-
- if (!srcfile.open(IO_ReadOnly))
-   {fprintf(stdout,"Cannot open file\n");exit(1);}
-
- QTextStream comps(&compfile);
- QTextStream src(&srcfile);
-
- while (!src.eof())
- {
-  poms = src.readLine();
-  i=poms.find("#include");
-  if (i!=-1)
-    {            // get include file
-        i=poms.find('"');
-        if (i!=-1) j=poms.find('"',i+1);
-        if ((i!=-1) && (j!=-1))
-        {
-         IncFile *p;
-         poms1=poms.mid(i+1,j-i-1);
-         p=new IncFile((char*)poms1.ascii(),currentline);
-         poms2.sprintf("%s%s",homedir,poms1.data());
-         QFile pomf(poms2.data());
-         if (!pomf.open(IO_ReadOnly))
-          {
-           fprintf(stdout,"Cannot open include file: %s\n",poms2.data());
-           exit(1);
-          }
-         QTextStream pomstream(&pomf);
-         while (!pomstream.eof())
-         {
-          poms1=pomstream.readLine();
-          comps<<poms1.data();
-          comps<<"\n";
-          p->len++;
-          currentline++;
-          }
-         pomf.close();
-         inc.append(p);
-        }
-       }
-  else
-  {
-   comps<<poms.data();
-   comps<<"\n";
-  }
-    
-  currentline++;
- }// eof
-
-
- srcfile.close(); 
- compfile.close();
-
- poms.sprintf("%s/cmp01.lcd",mydir);
- unlink(poms.data());
-
- sprintf(ss,"%s/loglan %s/cmp01 > %s/.cmp00",mydir,mydir,mydir);
- if (system(ss)==-1)
-  {
-  fprintf(stdout,"Cannot execute compiler\n");
-  exit(1);
-  }
- poms1.sprintf("%s.lcd",fname);
-
- if (QFile::exists(poms.data()))
-  {
-   rename(poms.data(),poms1.data());
-   unlink(poms.data());
-   fprintf(stdout,"Compile ok\n");
-   sprintf(ss,"%s/gen %s",mydir,fname);
-   if (system(ss)==-1)
-   {
-    fprintf(stdout,"Cannot execute generator\n");
-    exit(1);
-   }
-   poms.sprintf("%s.ccd",fname);
-   if (QFile::exists(poms.data())) {unlink(poms1.data());}
-  }
- else
-{ 
- fprintf(stdout,"Errors\n");
- poms.sprintf("%s/.cmp00",mydir);
- QFile err(poms.data());
-
- if (!err.open(IO_ReadOnly)) 
-      { fprintf(stdout,"Cannot open error file\n");
-        exit(1);
-      }
- QTextStream errstream(&err);
- IncFile *fl;
-
- poms=errstream.readLine();
- i=poms.find("LOGLAN-82");
- while( (!errstream.eof()) && (i==-1)) 
-   {
-     poms=errstream.readLine();
-     i=poms.find("LOGLAN-82");
-    } // *** 
- while (!errstream.eof())
- {
-  poms=errstream.readLine();
-  i=poms.find("ERROR");
-  if (i!=-1)
-   {
-    i=i-2;
-    j=poms.findRev(' ',i);
-    poms1=poms.mid(j+1,i-j);
-    line=poms1.toInt();
-    fl = findTrueLine(line,&tline);
-    poms2=poms.right(poms.length()-i-1);
-    if (fl!=NULL) fprintf(stdout,"%s: ",fl->filename);
-    fprintf(stdout,"%d  %s\n",tline,poms2.data());    
-    } 
-  }
- err.close();
-} // errors
-
- poms.sprintf("%s/cmp01.log",mydir);
- unlink(poms.data());
- poms.sprintf("%s/.cmp00",mydir);
- unlink(poms.data());                             
+       char homedir[255];
+       char mydir[255];
+       char ss[255];
+       char fname[255];
+       QString poms, poms1, poms2;
+
+       int currentline = 1;
+       int i, j, line, tline;
  
-return(0);
+       inc.clear();
+       poms.sprintf("%s", argv[1]);
+       i = poms.findRev('/', poms.length() - 1, FALSE);
+
+       //******* get home directory
+       if (i != -1) {
+               poms1 = poms.left(i + 1);
+               strcpy(homedir, poms1.data());
+       }
+       else
+               strcpy(homedir, "");
+
+       poms.sprintf("%s", argv[0]);
+       i = poms.findRev('/', poms.length() - 1, FALSE);
+       if (i != -1) {
+               poms1=poms.left(i);
+       }
+       else
+               poms1.sprintf(".");
+
+       strcpy(mydir,poms1.data());
+
+       poms.sprintf("%s", argv[1]);
+       i = poms.findRev(".log", poms.length()-1, FALSE);
+       poms1 = poms.left(i);
+       strcpy(fname, poms1.data());
+
+       // ********************
+
+       poms.sprintf("%s/.cmp00", mydir);
+       poms1.sprintf("%s/cmp01.log", mydir);
+       unlink(poms.data());
+       unlink(poms1.data());
+
+       QFile compfile(poms1.data());
+       QFile srcfile(argv[1]);
+
+       if (!compfile.open(IO_WriteOnly)) {
+               fprintf(stdout,"Cannot open temp file to write %s\n", poms1.data());
+               exit(1);
+       }
+
+       if (!srcfile.open(IO_ReadOnly)) {
+               fprintf(stdout, "Cannot open file\n");
+               exit(1);
+       }
+
+       QTextStream comps(&compfile);
+       QTextStream src(&srcfile);
+
+       while (!src.eof()) {
+               poms = src.readLine();
+               i = poms.find("#include");
+               if (i != -1) {
+                       /* get include file */
+                       i=poms.find('"');
+                       if (i != -1) {
+                               j=poms.find('"',i+1);
+                       }
+                       if ((i != -1) && (j != -1)) {
+                               IncFile *p;
+                               poms1 = poms.mid(i + 1, j - i - 1);
+                               p = new IncFile((char*)poms1.ascii(), currentline);
+                               poms2.sprintf("%s%s", homedir, poms1.data());
+                               QFile pomf(poms2.data());
+                               if (!pomf.open(IO_ReadOnly)) {
+                                       fprintf(stdout, "Cannot open include file: %s\n", poms2.data());
+                                       exit(1);
+                               }
+                               QTextStream pomstream(&pomf);
+                               while (!pomstream.eof()) {
+                                       poms1 = pomstream.readLine();
+                                       comps << poms1.data();
+                                       comps << "\n";
+                                       p->len++;
+                                       currentline++;
+                               }
+                               pomf.close();
+                               inc.append(p);
+                       }
+               } else {
+                       comps << poms.data();
+                       comps << "\n";
+               }
+               currentline++;
+       }/* eof */
+
+       srcfile.close();
+       compfile.close();
+
+       poms.sprintf("%s/cmp01.lcd", mydir);
+       unlink(poms.data());
+
+       sprintf(ss, "%s/loglan %s/cmp01 > %s/.cmp00", mydir, mydir, mydir);
+       if (system(ss) == -1) {
+               fprintf(stdout, "Cannot execute compiler\n");
+               exit(1);
+       }
+
+       poms1.sprintf("%s.lcd", fname);
+
+       if (QFile::exists(poms.data())) {
+               rename(poms.data(), poms1.data());
+               unlink(poms.data());
+               fprintf(stdout, "Compile ok\n");
+               sprintf(ss,"%s/gen %s", mydir, fname);
+               if (system(ss)==-1) {
+                       fprintf(stdout, "Cannot execute generator\n");
+                       exit(1);
+               }
+               poms.sprintf("%s.ccd", fname);
+               if (QFile::exists(poms.data())) {
+                       unlink(poms1.data());
+               }
+       } else {
+               fprintf(stdout, "Errors\n");
+               poms.sprintf("%s/.cmp00", mydir);
+               QFile err(poms.data());
+
+               if (!err.open(IO_ReadOnly)) {
+                       fprintf(stdout,"Cannot open error file\n");
+                       exit(1);
+               }
+               QTextStream errstream(&err);
+               IncFile *fl;
+
+               poms = errstream.readLine();
+               i = poms.find("LOGLAN-82");
+               while ((!errstream.eof()) && (i == -1)) {
+                       poms = errstream.readLine();
+                       i = poms.find("LOGLAN-82");
+               } // ***
+
+               while (!errstream.eof()) {
+                       poms = errstream.readLine();
+                       i = poms.find("ERROR");
+                       if (i != -1) {
+                               i = i-2;
+                               j = poms.findRev(' ', i);
+                               poms1 = poms.mid(j+1, i-j);
+                               line = poms1.toInt();
+                               fl = findTrueLine(line, &tline);
+                               poms2 = poms.right(poms.length() - i - 1);
+                               if (fl != NULL)
+                                       fprintf(stdout, "%s: ", fl->filename);
+                               fprintf(stdout, "%d  %s\n", tline, poms2.data());
+                       }
+               }
+               err.close();
+       } // errors
+
+       poms.sprintf("%s/cmp01.log",mydir);
+       unlink(poms.data());
+       poms.sprintf("%s/.cmp00",mydir);
+       unlink(poms.data());
+
+       return 0;
 }