home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / clint / syntax / syntax.lst < prev    next >
File List  |  1987-09-11  |  5KB  |  154 lines

  1.  
  2.  
  3.                                                                        PAGE   1
  4.                                                                        09-11-87
  5.                                                                        11:38:02
  6.  
  7.   Line#  Source Line                          Microsoft C Compiler Version 4.00
  8.  
  9.       1  /* syntax.c Program running a quick syntax check on C source
  10.       2     code Version 1.11  J. Tomasik; created 05/23/87
  11.       3  
  12.       4     From BYTE magazine - September 1987
  13.       5  
  14.       6  */
  15.       7  
  16.       8  #include <stdio.h>
  17.       9  
  18.      10  main(argc, argv)
  19.      11  int argc;
  20.      12  char *argv[];
  21.      13  {
  22.      14          FILE *fopen(), *infile;
  23.      15          char c;
  24.      16          int lbrace = 0, rbrace = 0;
  25.      17          int squote = 0, dquote = 0;
  26.      18          int lpar = 0, rpar = 0;
  27.      19          int lbrkt = 0, rbrkt = 0;
  28.      20          int bytecount = 0, errorcount = 0;
  29.      21  
  30.      22          if (argc != 2) {
  31.      23            printf("SYNTAX checker for C source code, version 1.11\n");
  32.      24            printf("Copyright (C) J. Tomadik 1987, 1988\n\n");
  33.      25            printf("Usage: syntax fname.ext \n");
  34.      26          exit(1);
  35.      27          }
  36.      28  infile = fopen(argv[1],"r");
  37.      29  if (infile == NULL) {
  38.      30          printf("Cannot open %s \n", argv[1]);
  39.      31          exit(2);
  40.      32  }
  41.      33  
  42.      34  while ((c = fgetc(infile)) != EOF) {
  43.      35          ++bytecount;
  44.      36          if (c == '{') ++lbrace;
  45.      37         else
  46.      38          if (c == '}') ++rbrace;
  47.      39         else
  48.      40          if (c == '\'') ++squote;
  49.      41         else
  50.      42          if (c == '\"') ++dquote;
  51.      43         else
  52.      44          if (c == '(') ++lpar;
  53.      45         else
  54.      46          if (c == ')') ++rpar;
  55.      47         else
  56.      48          if (c == '[') ++lbrkt;
  57.      49         else
  58.      50          if (c == ']') ++rbrkt;
  59.      51  }
  60.      52  
  61.      53  fclose(infile);
  62.      54  printf("The file length is %d \n", bytecount);
  63.  
  64.  
  65.                                                                        PAGE   2
  66.                                                                        09-11-87
  67.                                                                        11:38:02
  68.  
  69.   Line#  Source Line                          Microsoft C Compiler Version 4.00
  70.  
  71.      55  
  72.      56  
  73.      57  if (lbrace != rbrace) {
  74.      58          printf("There are %3d left and %3d right braces \n",
  75.      59                  lbrace, rbrace);
  76.      60          ++errorcount;
  77.      61  }
  78.      62  
  79.      63  if (lpar != rpar) {
  80.      64          printf("There are %3d left and %3d right parentheses \n",
  81.      65                  lpar, rpar);
  82.      66          ++errorcount;
  83.      67  }
  84.      68  
  85.      69  if (lbrkt != rbrkt) {
  86.      70          printf("There are %3d left and %3d right brackets \n",
  87.      71                  lbrkt,rbrkt);
  88.      72          ++errorcount;
  89.      73  }
  90.      74  
  91.      75  if (squote %2) {
  92.      76          printf("The single quote marks are not paired \n");
  93.      77          ++errorcount;
  94.      78  }
  95.      79  
  96.      80  if (dquote %2) {
  97.      81          printf("The double quote marks are not paired \n");
  98.      82          ++errorcount;
  99.      83  }
  100.      84  
  101.      85  if (errorcount == 0) {
  102.      86          printf("No error found, OK to compile \n");
  103.      87  }
  104.      88  else
  105.      89          exit(errorcount);
  106.      90  }
  107.  
  108. main  Local Symbols
  109.  
  110. Name                            Class    Offset    Register
  111.  
  112. rbrkt . . . . . . . . . . . . . auto      -0018    
  113. bytecount . . . . . . . . . . . auto      -0016    
  114. dquote. . . . . . . . . . . . . auto      -0014    
  115. rpar. . . . . . . . . . . . . . auto      -0012    
  116. rbrace. . . . . . . . . . . . . auto      -0010    
  117. errorcount. . . . . . . . . . . auto      -000e    
  118. infile. . . . . . . . . . . . . auto      -000c    
  119. lbrkt . . . . . . . . . . . . . auto      -000a    
  120. squote. . . . . . . . . . . . . auto      -0008    
  121. lpar. . . . . . . . . . . . . . auto      -0006    
  122. lbrace. . . . . . . . . . . . . auto      -0004    
  123. c . . . . . . . . . . . . . . . auto      -0002    
  124. argc. . . . . . . . . . . . . . param      0004    
  125.  
  126.  
  127.                                                                        PAGE   3
  128.                                                                        09-11-87
  129.                                                                        11:38:02
  130.  
  131.   Line#  Source Line                          Microsoft C Compiler Version 4.00
  132.  
  133. argv. . . . . . . . . . . . . . param      0006    
  134.  
  135.  
  136.  
  137.  
  138. Global Symbols
  139.  
  140. Name                            Type             Size    Class    Offset
  141.  
  142. exit. . . . . . . . . . . . . . near function     ***    extern      ***
  143. fclose. . . . . . . . . . . . . near function     ***    extern      ***
  144. fgetc . . . . . . . . . . . . . near function     ***    extern      ***
  145. fopen . . . . . . . . . . . . . near function     ***    extern      ***
  146. main. . . . . . . . . . . . . . near function     ***    global     0000
  147. printf. . . . . . . . . . . . . near function     ***    extern      ***
  148.  
  149. Code size = 01f1 (497)
  150. Data size = 0190 (400)
  151. Bss size  = 0000 (0)
  152.  
  153. No errors detected
  154.