Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- #include<ctype.h>
- int isKeyword(char buffer[]){
- char keywords[32][10] = {"auto","break","case","char","const","continue","default",
- "do","double","Else","enum","Function","Float","for","goto",
- "If","Integer","long","register","Return","short","signed",
- "sizeof","static","struct","switch","typedef","union",
- "DOWhile","void","Write","while"};
- int i, flag = 0;
- for(i = 0; i < 32; ++i){
- if(strcmp(keywords[i], buffer) == 0){
- flag = 1;
- break;
- }
- }
- //new
- int k, flag2 = 0;
- for (k = 0; k<32; ++k){
- if(strcmp(keywords[k], buffer) == 0){
- flag2 = 1;
- break;
- }
- }
- return flag;
- //new
- return flag2;
- }
- int main(){
- char ch, buffer2[15], operators[] = "+-*/%=";
- //eh
- char ch2, buffer[15], seperators[] = "{}(),;";
- FILE *fp;
- //k is new
- int i,k,j=0;
- fp = fopen("APU_CS370_input.txt","r");
- if(fp == NULL){
- printf("error while opening the file\n");
- exit(0);
- }
- while((ch = fgetc(fp)) != EOF){
- for(i = 0; i < 6; ++i){
- if(ch == operators[i])
- printf("%c is operator\n", ch);
- // new
- while((ch2 = fgetc(fp)) != EOF){
- for(k = 0; k < 6; ++k){
- if(ch2 == seperators[k])
- printf("%c is seperator\n", ch2);
- }
- }
- }
- if(isalnum(ch)){
- buffer[j++] = ch;
- //new
- if(isalnum(ch2)){
- buffer[j++] = ch2;
- }
- }
- else if((ch == ' ' || ch == '\n') && (j != 0)){
- buffer[j] = '\0';
- j = 0;
- if(isKeyword(buffer) == 1)
- printf("%s is keyword\n", buffer);
- else
- printf("%s is indentifier\n", buffer);
- }
- }
- fclose(fp);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement