[BACK]Return to cpp.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / parse

Diff for /OpenXM_contrib2/asir2000/parse/cpp.c between version 1.5 and 1.6

version 1.5, 2015/08/06 10:01:53 version 1.6, 2015/08/08 14:19:42
Line 45 
Line 45 
  * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,   * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,
  * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.   * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.
  *   *
  * $OpenXM: OpenXM_contrib2/asir2000/parse/cpp.c,v 1.4 2000/12/05 01:24:56 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/parse/cpp.c,v 1.5 2015/08/06 10:01:53 fujimoto Exp $
 */  */
 #include <stdio.h>  #include <stdio.h>
 #include <ctype.h>  #include <ctype.h>
Line 207  void do_at(void)
Line 207  void do_at(void)
   { if (! in_false_if())    { if (! in_false_if())
      { err_head();       { err_head();
        fprintf(stderr,"unknown control `%s'\n",w);         fprintf(stderr,"unknown control `%s'\n",w);
   #if defined(__MINGW32__) || defined(__MINGW64__)
          fflush(stderr);
   #endif
      }       }
   }    }
  free(w);   free(w);
Line 356  void read_formals(void)
Line 359  void read_formals(void)
            }             }
         }          }
      }       }
   #if defined(__MINGW32__) || defined(__MINGW64__)
       fflush(stderr);
   #endif
   }    }
 }  }
   
Line 401  void do_define(int sharp, int redef)
Line 407  void do_define(int sharp, int redef)
  if (! mac)   if (! mac)
   { err_head();    { err_head();
     fprintf(stderr,"missing/illegal macro name\n");      fprintf(stderr,"missing/illegal macro name\n");
   #if defined(__MINGW32__) || defined(__MINGW64__)
       fflush(stderr);
   #endif
     flush_sharp_line();      flush_sharp_line();
     return;      return;
   }    }
Line 411  void do_define(int sharp, int redef)
Line 420  void do_define(int sharp, int redef)
     if (nargs > 128)      if (nargs > 128)
      { err_head();       { err_head();
        fprintf(stderr,"too many macro formals, more than 128 ignored\n");         fprintf(stderr,"too many macro formals, more than 128 ignored\n");
   #if defined(__MINGW32__) || defined(__MINGW64__)
          fflush(stderr);
   #endif
        nargs = 128;         nargs = 128;
      }       }
   }    }
Line 604  void do_dump(void)
Line 616  void do_dump(void)
   { fprintf(stderr,"\t\t%s\n",incldir[i]);    { fprintf(stderr,"\t\t%s\n",incldir[i]);
   }    }
  fprintf(stderr,"\t\t%s\n",cur_incldir);   fprintf(stderr,"\t\t%s\n",cur_incldir);
   #if defined(__MINGW32__) || defined(__MINGW64__)
    fflush(stderr);
   #endif
 }  }
   
 void dump_single(DEF *d)  void dump_single(DEF *d)
Line 630  void dump_single(DEF *d)
Line 645  void dump_single(DEF *d)
      { putc(*cp,stderr);       { putc(*cp,stderr);
      }       }
   }    }
   #if defined(__MINGW32__) || defined(__MINGW64__)
    fflush(stderr);
   #endif
 }  }
   
 void err_head(void)  void err_head(void)
 {  {
  fprintf(stderr,"\"%s\", line %d: ",curfile(),curline());   fprintf(stderr,"\"%s\", line %d: ",curfile(),curline());
   #if defined(__MINGW32__) || defined(__MINGW64__)
    fflush(stderr);
   #endif
 }  }
   
 void Check_malloc(char *ptr)  void Check_malloc(char *ptr)
 {  {
  if (ptr == 0)   if (ptr == 0)
   { fprintf(stderr,"out of memory!\n");    { fprintf(stderr,"out of memory!\n");
   #if defined(__MINGW32__) || defined(__MINGW64__)
       fflush(stderr);
   #endif
     abort();      abort();
   }    }
 }  }
Line 663  void do_eval(void)
Line 687  void do_eval(void)
     for (i=strlen(temp)-1;i>=0;i--)      for (i=strlen(temp)-1;i>=0;i--)
      { Push(temp[i]);       { Push(temp[i]);
      }       }
   #if defined(__MINGW32__) || defined(__MINGW64__)
       fflush(stderr);
   #endif
   }    }
 }  }
   
Line 797  void read_actuals(DEF *d)
Line 824  void read_actuals(DEF *d)
        actlens[i] = 0;         actlens[i] = 0;
      }       }
   }    }
   #if defined(__MINGW32__) || defined(__MINGW64__)
    fflush(stderr);
   #endif
 }  }
   
 void expand_def(DEF *d)  void expand_def(DEF *d)
Line 1090  int get_quote_char(void)
Line 1120  int get_quote_char(void)
  if (c == '\n')   if (c == '\n')
   { err_head();    { err_head();
     fprintf(stderr,"newline in character constant\n");      fprintf(stderr,"newline in character constant\n");
   #if defined(__MINGW32__) || defined(__MINGW64__)
                         fflush(stderr);
   #endif
     return(-1);      return(-1);
   }    }
  if (c != '\\')   if (c != '\\')
Line 1166  NODE *read_expr_11(void)
Line 1199  NODE *read_expr_11(void)
        if (c != ')')         if (c != ')')
         { err_head();          { err_head();
           fprintf(stderr,"expression syntax error -- missing ) supplied\n");            fprintf(stderr,"expression syntax error -- missing ) supplied\n");
   #if defined(__MINGW32__) || defined(__MINGW64__)
             fflush(stderr);
   #endif
           Push(c);            Push(c);
         }          }
 #ifdef DEBUG_EXPR  #ifdef DEBUG_EXPR
Line 1213  NODE *read_expr_11(void)
Line 1249  NODE *read_expr_11(void)
            { err_head();             { err_head();
              fprintf(stderr,"warning: illegal %sdigit `%c'\n",               fprintf(stderr,"warning: illegal %sdigit `%c'\n",
                         (base==16)?"hex ":(base==8)?"octal ":"",c);                          (base==16)?"hex ":(base==8)?"octal ":"",c);
   #if defined(__MINGW32__) || defined(__MINGW64__)
                fflush(stderr);
   #endif
            }             }
           v = (v * base) + values[d-digits];            v = (v * base) + values[d-digits];
           c = Get();            c = Get();
Line 1235  NODE *read_expr_11(void)
Line 1274  NODE *read_expr_11(void)
        if (n > 4)         if (n > 4)
         { err_head();          { err_head();
           fprintf(stderr,"warning: too many characters in character constant\n");            fprintf(stderr,"warning: too many characters in character constant\n");
   #if defined(__MINGW32__) || defined(__MINGW64__)
             fflush(stderr);
   #endif
         }          }
        return(newleaf(i));         return(newleaf(i));
      }       }
Line 1246  NODE *read_expr_11(void)
Line 1288  NODE *read_expr_11(void)
        if (complain)         if (complain)
         { err_head();          { err_head();
           fprintf(stderr,"expression syntax error -- number expected\n");            fprintf(stderr,"expression syntax error -- number expected\n");
   #if defined(__MINGW32__) || defined(__MINGW64__)
             fflush(stderr);
   #endif
         }          }
        if (isbsymchar(c))         if (isbsymchar(c))
         { Push(c);          { Push(c);
Line 1828  NODE *read_expr_(void)
Line 1873  NODE *read_expr_(void)
        default:         default:
           err_head();            err_head();
           fprintf(stderr,"expression syntax error -- bad operator `%c'\n",c);            fprintf(stderr,"expression syntax error -- bad operator `%c'\n",c);
   #if defined(__MINGW32__) || defined(__MINGW64__)
             fflush(stderr);
   #endif
           return(l);            return(l);
           break;            break;
      }       }
Line 1851  NODE *read_expr_p(void)
Line 1899  NODE *read_expr_p(void)
  if (c != ')')   if (c != ')')
   { err_head();    { err_head();
     fprintf(stderr,"junk after expression\n");      fprintf(stderr,"junk after expression\n");
   #if defined(__MINGW32__) || defined(__MINGW64__)
       fflush(stderr);
   #endif
   }    }
  return(rv);   return(rv);
 }  }
Line 1876  int eval_expr(int Sharp, int Complain)
Line 1927  int eval_expr(int Sharp, int Complain)
   { if (complain)    { if (complain)
      { err_head();       { err_head();
        fprintf(stderr,"expression syntax error -- junk after expression\n");         fprintf(stderr,"expression syntax error -- junk after expression\n");
   #if defined(__MINGW32__) || defined(__MINGW64__)
          fflush(stderr);
   #endif
      }       }
     while (Get() != d) ;      while (Get() != d) ;
   }    }
Line 1981  void do_if(int expr_sharp)
Line 2035  void do_if(int expr_sharp)
     if (c != '(')      if (c != '(')
      { err_head();       { err_head();
        fprintf(stderr,"@if must have ()s\n");         fprintf(stderr,"@if must have ()s\n");
   #if defined(__MINGW32__) || defined(__MINGW64__)
          fflush(stderr);
   #endif
        Push(c);         Push(c);
        iffalse();         iffalse();
 #ifdef DEBUG_IF  #ifdef DEBUG_IF
Line 2177  void do_else(int expr_sharp)
Line 2234  void do_else(int expr_sharp)
 #endif  #endif
        err_head();         err_head();
        fprintf(stderr,"if-less else\n");         fprintf(stderr,"if-less else\n");
   #if defined(__MINGW32__) || defined(__MINGW64__)
          fflush(stderr);
   #endif
      }       }
   }    }
  else   else
Line 2232  void do_elif(int expr_sharp)
Line 2292  void do_elif(int expr_sharp)
  if (ifstack == 0)   if (ifstack == 0)
   { err_head();    { err_head();
     fprintf(stderr,"if-less elif converted to normal if\n");      fprintf(stderr,"if-less elif converted to normal if\n");
   #if defined(__MINGW32__) || defined(__MINGW64__)
       fflush(stderr);
   #endif
     iffalse();      iffalse();
   }    }
  if (n_skipped_ifs > 0)   if (n_skipped_ifs > 0)
Line 2256  void do_elif(int expr_sharp)
Line 2319  void do_elif(int expr_sharp)
     if (c != '(')      if (c != '(')
      { err_head();       { err_head();
        fprintf(stderr,"@elif must have ()s\n");         fprintf(stderr,"@elif must have ()s\n");
   #if defined(__MINGW32__) || defined(__MINGW64__)
          fflush(stderr);
   #endif
        Push(c);         Push(c);
        ifstack->condstate = IFSTATE_STAYFALSE;         ifstack->condstate = IFSTATE_STAYFALSE;
 #ifdef DEBUG_IF  #ifdef DEBUG_IF
Line 2338  void do_endif(int expr_sharp)
Line 2404  void do_endif(int expr_sharp)
  else   else
   { err_head();    { err_head();
     fprintf(stderr,"if-less endif\n");      fprintf(stderr,"if-less endif\n");
   #if defined(__MINGW32__) || defined(__MINGW64__)
       fflush(stderr);
   #endif
 #ifdef DEBUG_IF  #ifdef DEBUG_IF
     if (debugging)      if (debugging)
      { outputc('>');       { outputc('>');
Line 2470  void do_include(int expr_sharp)
Line 2539  void do_include(int expr_sharp)
           err_head();            err_head();
           fprintf(stderr,"warning: unterminated %cinclude filename\n",            fprintf(stderr,"warning: unterminated %cinclude filename\n",
                                                         sharp?'#':'@');                                                          sharp?'#':'@');
   #if defined(__MINGW32__) || defined(__MINGW64__)
             fflush(stderr);
   #endif
         }          }
        if (c == '"')         if (c == '"')
         { break;          { break;
Line 2490  void do_include(int expr_sharp)
Line 2562  void do_include(int expr_sharp)
           err_head();            err_head();
           fprintf(stderr,"warning: unterminated %cinclude filename\n",            fprintf(stderr,"warning: unterminated %cinclude filename\n",
                                                         sharp?'#':'@');                                                          sharp?'#':'@');
   #if defined(__MINGW32__) || defined(__MINGW64__)
             fflush(stderr);
   #endif
         }          }
        if (c == '>')         if (c == '>')
         { break;          { break;
Line 2505  void do_include(int expr_sharp)
Line 2580  void do_include(int expr_sharp)
   { free(accum_result(acc));    { free(accum_result(acc));
     err_head();      err_head();
     fprintf(stderr,"illegal %cinclude filename delimiter\n",sharp?'#':'@');      fprintf(stderr,"illegal %cinclude filename delimiter\n",sharp?'#':'@');
   #if defined(__MINGW32__) || defined(__MINGW64__)
       fflush(stderr);
   #endif
   }    }
 }  }
   
Line 2563  void read_include_file(char *name, int dohere, int exp
Line 2641  void read_include_file(char *name, int dohere, int exp
  if (f == NULL)   if (f == NULL)
   { err_head();    { err_head();
     fprintf(stderr,"can't find include file %s\n",name);      fprintf(stderr,"can't find include file %s\n",name);
   #if defined(__MINGW32__) || defined(__MINGW64__)
       fflush(stderr);
   #endif
     free(name);      free(name);
     return;      return;
   }    }
Line 2779  void Push(char c)
Line 2860  void Push(char c)
 {  {
  if (cur_npushed > MAX_PUSHBACK)   if (cur_npushed > MAX_PUSHBACK)
   { fprintf(stderr,"too much pushback\n");    { fprintf(stderr,"too much pushback\n");
   #if defined(__MINGW32__) || defined(__MINGW64__)
       fflush(stderr);
   #endif
     cur_npushed = 0;      cur_npushed = 0;
   }    }
  PUSH() = c;   PUSH() = c;
Line 3157  void mark_file_ending(void)
Line 3241  void mark_file_ending(void)
      }       }
     else if (m->nincs <= 0)      else if (m->nincs <= 0)
      { fprintf(stderr,"INTERNAL BUG: nincs<0 in mark_file_ending\n");       { fprintf(stderr,"INTERNAL BUG: nincs<0 in mark_file_ending\n");
   #if defined(__MINGW32__) || defined(__MINGW64__)
          fflush(stderr);
   #endif
        abort();         abort();
      }       }
     else      else
Line 3619  void cpp_main(int ac, char **av)
Line 3706  void cpp_main(int ac, char **av)
         }          }
      }       }
   }    }
   #if defined(__MINGW32__) || defined(__MINGW64__)
    fflush(stderr);
   #endif
 }  }
   
 void do_pragma(void)  void do_pragma(void)
Line 3678  void do_set(void)
Line 3768  void do_set(void)
     check_malloc(cp);      check_malloc(cp);
     define(mac,-1,(unsigned char *)cp,DEF_DEFINE);      define(mac,-1,(unsigned char *)cp,DEF_DEFINE);
   }    }
   #if defined(__MINGW32__) || defined(__MINGW64__)
    fflush(stderr);
   #endif
  free(mac);   free(mac);
 }  }
   
Line 3741  void do_sharp(void)
Line 3834  void do_sharp(void)
        flush_sharp_line();         flush_sharp_line();
      }       }
   }    }
   #if defined(__MINGW32__) || defined(__MINGW64__)
    fflush(stderr);
   #endif
  maybe_print('\n');   maybe_print('\n');
  free(w);   free(w);
 }  }
Line 3909  void define(char *name, int nargs, unsigned char *repl
Line 4005  void define(char *name, int nargs, unsigned char *repl
   { if ( (nargs != d->nargs) || strcmp((char *)repl,(char *)d->repl) )    { if ( (nargs != d->nargs) || strcmp((char *)repl,(char *)d->repl) )
      { err_head();       { err_head();
        fprintf(stderr,"%s redefined\n",n);         fprintf(stderr,"%s redefined\n",n);
   #if defined(__MINGW32__) || defined(__MINGW64__)
          fflush(stderr);
   #endif
      }       }
     free((char *)d->repl);      free((char *)d->repl);
     free(d->name);      free(d->name);
Line 4539  void do_undef(int expr_sharp)
Line 4638  void do_undef(int expr_sharp)
     if (! mac)      if (! mac)
      { err_head();       { err_head();
        fprintf(stderr,"missing/illegal macro name\n");         fprintf(stderr,"missing/illegal macro name\n");
   #if defined(__MINGW32__) || defined(__MINGW64__)
          fflush(stderr);
   #endif
      }       }
     else      else
      { if (undef(mac))       { if (undef(mac))

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>