示例#1
0
int main(int argc, char **argv) {
	namelist nl=make_namelist();
	int i;
	char c='f';
	if(strcmp(argv[1],"-p")==0){
		i=3;
		c='t';
	}
	else i=1;
	while(i<argc){
		FILE *file=fopen(argv[i],"r");
		char name[64];
		while(!feof(file)){
			if (fgetname(name,64,file)!= NULL && res_name(name)!=1){
				if(c=='f'||(c=='t'&& (name[0])!=*argv[2]))
				      add_name(nl,name);
				
			}
			
		}
		fclose(file);
		i++;
	}
	qsort(nl->names,nl->size,sizeof(struct namestat),cmpfunc);
	print_list(nl);
	return 0;
} 
示例#2
0
文件: canalyze.c 项目: yonatana/espl
      int main (int argc, char **argv){
      //varibales
      namelist nl = make_namelist();  
      FILE *stream; 
      char *fileName;
      char name[64];
      int FLAG = 0;
      int i = 1;
      int j = 0;     
      
      //upload files in a loop and gets the name to an array
    for (i=1;i!=argc;i++){//each file
     fileName = argv[i];//get the file
     stream = fopen(fileName, "r");//read the file
     
     while(fgetname(name, sizeof(name), stream)) {
       if(legalName(name)){
       printf("%s ", name);
	add_name(nl, name);
	//printf("\n");
	}
     }
     fclose(stream);
      }
      qsort(nl->names,nl->size,sizeof(struct namestat),compare);
  
  for(i=0;i<nl->size;i++){
    printf("%s %d\n",nl->names[i].name,nl->names[i].count);
  }
  
   
      return 0;
      }
示例#3
0
文件: canalyze.c 项目: micyaniv/espl
//canalyze a.txt b.txt
int main(int argc, char **argv ) 
{
    int files=1;
    namelist nl;
    nl = make_namelist();
    /*
     //nl and string tests
    char seg[100]="segev";
    char noa[100]="";
    char noale[100]="noa'le";
    strcpy(noa,noale);
    char freddy[100]="";
    freddy[0]='F';
    freddy[1]='r';
    freddy[2]='e';
    freddy[3]='d';
    //freddy[4]=' ';
    //freddy[5]='\0';
    printf("freddy = %s\n",freddy);
    
    add_name(nl, "yaniv");
    add_name(nl, seg);
    add_name(nl, noa);
    add_name(nl, freddy);
    printf("%s is the first name in the namelist \n", nl->names[0].name);
    printf("%s is the second name in the namelist \n", nl->names[1].name);
    printf("%s is the third name in the namelist \n", nl->names[2].name);
    printf("%s is the forth name in the namelist \n", nl->names[3].name);
    printf("argc[0]= %s \n",argv[0]);
    printf("argc= %d \n",argc);

    char kw[32][10] = {"auto", "double", "int", "long", "break", "else", "long", "switch", "case", "enum", "register", "typedef", "char", "extern", "return", "union", "const", "float", "short", "unsigned", "continue", "for", "signed", "oid", "default", "goto", "sizeof", "volatile", "do", "if", "static", "while"};
    int j;
    for (j=0 ;j<32; j++)
      printf(" - %s ", kw[j]);
    printf("\n");
    */
    
    while (files<argc)
    {
      //printf("%s file is in process \n",argv[files]);
      checkTxt(nl,  argv[files] );
      files++;
    }
    
    int k; //not sorted yet
    qsort(nl->names , nl->size, sizeof(nl->names[0]), compareNameStrings); //sorting via compareNameStrings.
    //printf("sorted?\n");
      
    for (k=0;k<nl->size ;k++)
    {
	  
	  //printf("%d, %d=return value\n",k,compareNameStrings(nl->names[k].name, nl->names[k+1].name) );
          printf("%s %d \n", nl->names[k].name, nl->names[k].count);
    }
    return 0;
    
}
示例#4
0
文件: canalyze.c 项目: yvgenia/jespl
int main(int argc, char **argv) {
	if(argc == 1) {
		printf("please run this program with at least one argument.\n");
	}
	else{
		int i;
		char buffer[BUFLEN];
		char* saved_words[]= {"int","char","if","else","while","for","return",(char*)0};
		namelist file_words= make_namelist();
		for (i=1; i<argc; ++i){
		      FILE *fptr;
		      if ( (fptr = fopen(argv[i],"r")) == NULL)
			    printf ("file %s couldn't be opened\n",argv[i]);
		      else {
			    char word[BUFLEN];
			    int ich = 0;
			    int isaved = 0;
			    int inword = 0;
			    for(;;) {
				int ch = fgetc(fptr);
				if(feof(fptr))
				      break;
				if(inword) {
				      if(isalpha(ch)) {    // adding char to the word
					  word[ich] = ch;
					  ++ich;
				      } 
				      else{     // just finished reading a word
					  word[ich] = 0;
					  ich = 0;
					  inword = 0;
					  if (!find_word(saved_words,word)){
						add_name(file_words,word);
					  }
	
				      }
				}
		
				else {
				      if(isalpha(ch)) {        //for the first char of the word
					  ungetc(ch,fptr);
					  inword=1;
				      } 
				      if (ch == '\"'){
					  ch = fgetc(fptr);
					  while (ch != '\"')
						ch = fgetc(fptr);
				      }
				}
			    }
		      }
		}
		sort_words(file_words);
		print_words(file_words);
	}
	return 0;
}
示例#5
0
文件: canalyze.c 项目: kuzinann/espl
int main(int argc, char **argv) {
    FILE *ret;
    int j, i, isEqual=0;
    namelist ourList = make_namelist();


    char tempWord[64];
    char *saveWords[] = {"auto", "double", "int", "long", "break", "else", "long", "switch", "case", "enum", "register", 		"typedef" ,"char", "extern",
                         "return", "union", "const", "float", "short", "unsigned", "continue",
                         "for","signed", "void", "default", "goto", "sizeof" ,"volatile",
                         "do", "if" ,"static" ,"while"
                        };

    for (j=1; j < argc; ++j)
    {
        ret = fopen( argv[j], "r"); /*ret is a pointer to the file*/

        while( fgetname(tempWord, 64, ret)) {
            isEqual = 0;
            for(i=0; i<32; ++i) {


                if(strcmp(tempWord, saveWords[i])!=0) {
                    isEqual = isEqual+1;
                }
                if(isEqual==32) { /*tempWord not equal to any of the key words*/
                    add_name(ourList, tempWord);

                }
            }

        }

        fclose (ret);
    }

    qsort (ourList->names, ourList->size, sizeof(struct namestat), compare);

    for(i=0; i<ourList->size; ++i) {
        printf("%s ", ourList->names[i].name);
        printf("%d\n", ourList->names[i].count);
    }








    return 0;
}
示例#6
0
文件: testnl.c 项目: Orit/espl
int main(int argc, char **argv) {
	namelist nl = make_namelist();
	int checks = 0;
	int i;

	add_name(nl, "foo");
	add_name(nl, "bar");
	add_name(nl, "foo");

	for(i = 0; i!=nl->size; ++i) {
		if(!strcmp("foo", nl->names[i].name)) {
			assert(nl->names[i].count==2);
			checks|=1;
		} else if(!strcmp("bar", nl->names[i].name)) {
			assert(nl->names[i].count==1);
			checks|=2;
		} else {
			checks|=4;
		}
	}
	assert(checks==3);

	return 0;
}