parsen.c
上传用户:shbosideng
上传日期:2013-05-04
资源大小:1555k
文件大小:1k
源码类别:

SNMP编程

开发平台:

C/C++

  1. /*
  2. Iulian Radu [v2.0@07.1999]
  3. */
  4. int ident=0;
  5. #include "fnctn.c"
  6. #include "parsen.ftbl"
  7. int formathtml(){ /* put UL or /UL */
  8. int i,j,k;
  9. if(ident<1){
  10.     return 1;}
  11. if(!fh) return 1;
  12. if(!identl){
  13.     fprintf(fh,"<UL TYPE="disc">n");
  14.     identl++;}
  15. if(ident<identl){
  16.     i=identl-ident;
  17.     k=identl-1;
  18.     for(;i;i--,k--){
  19.         for(j=0;j<k;j++) fprintf(fh,"t");
  20. fprintf(fh,"</UL>n");}
  21.     }
  22. if(ident>identl){
  23.     i=ident-identl;
  24.     k=identl;
  25.     for(;i;i--,k++){
  26.         for(j=0;j<k;j++) fprintf(fh,"t");
  27. fprintf(fh,"<UL TYPE="disc">n");}
  28.     }
  29. for(i=0;i<ident;i++) fprintf(fh,"t");
  30. identl=ident;
  31. return 0;
  32. }
  33. void parsen(char* buf){
  34. char cmd[129],*ebuf;
  35. int i;
  36. ltrim(buf);
  37. sscanf(buf,"%d %s",&ident,cmd);
  38. for(i=0;i<NEFTBLn;i++)
  39.     if(!strcmp(cmd,parsen_ftbl[i].cmd)){
  40. if(parsen_ftbl[i].func){
  41.     ebuf=findnsp(buf,2);
  42.     rtrim(ebuf);
  43.     if(usealias) expand(ebuf);
  44.     if(formathtml()){
  45. fprintf(stderr,"aERROR: %sn",ebuf);
  46. return;}
  47.     parsen_ftbl[i].func(ebuf);}
  48. return;}
  49. fprintf(stderr,"aERROR: %sn",buf);
  50. }