Upcoming SlideShare
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Standard text messaging rates apply

# Complier File

829
views

Published on

Compiler File &th Sem

Compiler File &th Sem

Published in: Education, Technology

1 Comment
0 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to like this

Views
Total Views
829
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
12
1
Likes
0
Embeds 0
No embeds

No notes for slide

### Transcript

• 1. COMPLIER FILE Submitted by: Pinak Mukherjee (038/CS/GTBIT/04) Department of Computer Science and Engineering Guru Tegh Bahadur Institute of Technology
• 2. /*Generation of code in c++ to add two numbers by coding in c*/ void main() {char a[40],b[40],c[40],d[40]; clrscr(); do {printf("Enter class name=>"); scanf("%s",a); }while(strlen(a)>=40); do {printf("Enter name of first variable=>"); scanf("%s",b); }while((!strcmp(a,b))||(strlen(b)>=40)); do {printf("Enter name of second variable=>"); scanf("%s",c); }while((!strcmp(a,c))||(!strcmp(c,b))||(strlen(c)>=40)); do {printf("Enter name of class variable=>"); scanf("%s",d); }while((!strcmp(a,d))||(!strcmp(d,c))||(!strcmp(d,b))||(strlen(d)>=40)); clrscr(); printf("class %s",a); printf("n{n private:n"); printf(" int %s;n",b); printf(" int %s;n",c); printf(" public:n"); printf(" void getinput()n {"); printf("n cout<<"Enter first number:";"); printf("n cin>>%s;",b); printf("n cout<<"Enter second number:";"); printf("n cin>>%s;",c); printf("n }"); printf("n void addnos()n {"); printf("n cout<<"The Sum is:"<<%s+%s;",b,c); printf("n }"); printf("n };"); printf("nvoid main()n {"); printf("n %s %s;",a,d); printf("n %s.getinput();",d); printf("n %s.addnos();",d); printf("n }"); getch(); }
• 3. OUTPUT Enter class name=>student Enter name of first variable=>a Enter name of second variable=>b Enter name of class variable=>student1 class student { private: int a; int b; public: void getinput() { cout<<"Enter first number:"; cin>>a; cout<<"Enter second number:"; cin>>b; } void addnos() { cout<<"The Sum is:"<<a+b; } }; void main() { student student1; student1.getinput(); student1.addnos(); }
• 4. /*Generation of code in java through code in c*/ void main() {char a[40],b[40],c[40],d[40]; clrscr(); do {printf("Enter class name=>"); scanf("%s",a); }while(strlen(a)>=40); do {printf("Enter name of first variable=>"); scanf("%s",b); }while((!strcmp(a,b))||(strlen(b)>=40)); do {printf("Enter name of second variable=>"); scanf("%s",c); }while((!strcmp(a,c))||(!strcmp(c,b))||(strlen(c)>=40)); do {printf("Enter name of class variable=>"); scanf("%s",d); }while((!strcmp(a,d))||(!strcmp(d,c))||(!strcmp(d,b))||(strlen(d)>=40)); clrscr(); printf("public class %s",a); printf("private int %s;n",b); printf("private int %s;n",c); printf("public static void main(){n"); printf("n System.out.println("Enter first number:");"); printf("n cin>>%s;",b); printf("n System.out.println("Enter second number:");"); printf("n cin>>%s;",c); printf("n System.out.println("The Sum is:",%s+%s);",b,c); printf("n }"); printf("n}"); getch(); } OUTPUT
• 5. Enter class name=>STUDENT Enter name of first variable=>A Enter name of second variable=>B Enter name of class variable=>STUDENT1 public class STUDENTprivate int A; private int B; public static void main(){ System.out.println("Enter first number:"); cin>>A; System.out.println("Enter second number:"); cin>>B; System.out.println("The Sum is:",A+B); } } /* Program on lexical analysis */ #include"stdio.h" #include"conio.h" #include"string.h" #include"ctype.h" #define MAX 30 void main() { char str[MAX]; int state=0; int i=0, j, startid=0, endid, startcon, endcon; clrscr(); for(j=0; j<MAX; j++) str[j]=NULL; //Initialise NULL printf("*** Program on Lexical Analysis ***"); printf("Enter the string: "); gets(str); //Accept input string str[strlen(str)]=' '; printf("Analysis:"); while(str[i]!=NULL) { while(str[i]==' ') //To eliminate spaces i++; switch(state) { case 0: if(str[i]=='i') state=1; //if else if(str[i]=='w') state=3; //while
• 6. else if(str[i]=='d') state=8; //do else if(str[i]=='e') state=10; //else else if(str[i]=='f') state=14; //for else if(isalpha(str[i]) || str[i]=='_') { state=17; startid=i; } //identifiers else if(str[i]=='<') state=19; //relational '<' or '<=' else if(str[i]=='>') state=21; //relational '>' or '>=' else if(str[i]=='=') state=23; //relational '==' or assignment '=' else if(isdigit(str[i])) { state=25; startcon=i; } //constant else if(str[i]=='(') state=26; //special characters '(' else if(str[i]==')') state=27; //special characters ')' else if(str[i]==';') state=28; //special characters ';' else if(str[i]=='+') state=29; //operator '+' else if(str[i]=='-') state=30; //operator '-' break; //States for 'if' case 1: if(str[i]=='f') state=2; else { state=17; startid=i-1; i--; } break; case 2: if(str[i]=='(' || str[i]==NULL) { printf("if : Keywordn");
• 7. state=0; i--; } else { state=17; startid=i-2; i--; } break; //States for 'while' case 3: if(str[i]=='h') state=4; else { state=17; startid=i-1; i--; } break; case 4: if(str[i]=='i') state=5; else { state=17; startid=i-2; i--; } break; case 5: if(str[i]=='l') state=6; else { state=17; startid=i-3; i--; } break; case 6: if(str[i]=='e') state=7; else { state=17; startid=i-4; i--; } break; case 7: if(str[i]=='(' || str[i]==NULL) { printf("while : Keyword n"); state=0; i--; } else { state=17; startid=i-5; i--; } break; //States for 'do' case 8: if(str[i]=='o') state=9; else { state=17; startid=i-1; i--; } break; case 9: if(str[i]=='{' || str[i]==' ' || str[i]==NULL || str[i]=='(') { printf("do : Keyword n"); state=0; i--; } break; //States for 'else' case 10: if(str[i]=='l') state=11; else { state=17; startid=i-1; i--; } break; case 11: if(str[i]=='s') state=12; else { state=17; startid=i-2; i--; } break; case 12: if(str[i]=='e') state=13;
• 8. else { state=17; startid=i-3; i--; } break; case 13: if(str[i]=='{' || str[i]==NULL) { printf("else : Keyword n"); state=0; i--; } else { state=17; startid=i-4; i--; } break; //States for 'for' case 14: if(str[i]=='o') state=15; else { state=17; startid=i-1; i--; } break; case 15: if(str[i]=='r') state=16; else { state=17; startid=i-2; i--; } break; case 16: if(str[i]=='(' || str[i]==NULL) { printf("for : Keyword n"); state=0; i--; } else { state=17; startid=i-3; i--; } break; //States for identifiers case 17: if(isalnum(str[i]) || str[i]=='_') { state=18; i++; } else if(str[i]==NULL||str[i]=='<'||str[i]=='>'||str[i]=='('||str[i]==')'||str[i]==';'||str[i]=='='||str[i]=='+'|| str[i]=='-') state=18; i--; break; case 18: if(str[i]==NULL || str[i]=='<' || str[i]=='>' || str[i]=='(' || str[i]==')' || str[i]==';' || str[i]=='=' || str[i]=='+' ||str[i]=='-') { endid=i-1; printf(" "); for(j=startid; j<=endid; j++) printf("%c", str[j]);
• 9. printf(" : Identifier n"); state=0; i--; } break; //States for relational operator '<' & '<=' case 19: if(str[i]=='=') state=20; else if(isalnum(str[i]) || str[i]=='_') { printf("< : Relational operator n"); i--; state=0; } break; case 20: if(isalnum(str[i]) || str[i]=='_') { printf("<= : Relational operator n"); i--; state=0; } break; //States for relational operator '>' & '>=' case 21: if(str[i]=='=') state=22; else if(isalnum(str[i]) || str[i]=='_') { printf("> : Relational operator n"); i--; state=0; } break; case 22: if(isalnum(str[i]) || str[i]=='_') { printf(">= : Relational operator n"); i--; state=0; } break; //States for relational operator '==' & assignment operator '=' case 23: if(str[i]=='=') state=24; else { printf("= : Assignment operator n"); i--; state=0; }
• 10. break; case 24: if(isalnum(str[i])) { printf("== : Relational operator n"); state=0; i--; } break; //States for constants case 25: if(isalpha(str[i])) { printf(" *** ERROR *** n "); puts(str); for(j=0; j<i; j++) printf(" "); printf("^"); printf("Error at position %d Alphabet cannot follow digit n", i); state=99; } else if(str[i]=='(' || str[i]==')' || str[i]=='<' || str[i]=='>' || str[i]==NULL || str[i]==';' || str[i]=='=') { endcon=i-1; printf(" "); for(j=startcon; j<=endcon; j++) printf("%c", str[j]); printf(" : Constant n"); state=0; i--; } break; //State for special character '(' case 26: printf(" ( : Special character n"); startid=i; state=0; i--; break; //State for special character ')' case 27: printf(" ) : Special character n"); state=0; i--; break; //State for special character ';' case 28: printf(" ; : Special character n"); state=0;
• 11. i--; break; //State for operator '+' case 29: printf(" + : Operator n"); state=0; i--; break; //State for operator '-' case 30: printf("+ : Operator n"); state=0; i--; break; //Error State case 99: goto END; } i++; } printf("n End of program"); END: getch(); } /* Output Correct input ------------- *** Program on Lexical Analysis *** Enter the string: for(x1=0; x1<=10; x1++); Analysis: for : Keyword ( : Special character x1 : Identifier = : Assignment operator 0 : Constant ; : Special character x1 : Identifier <= : Relational operator 10 : Constant ; : Special character
• 12. x1 : Identifier + : Operator + : Operator ) : Special character ; : Special character End of program Wrong input ----------- *** Program on Lexical Analysis *** Enter the string: for(x1=0; x1<=19x; x++); Analysis: for : Keyword ( : Special character x1 : Identifier = : Assignment operator 0 : Constant ; : Special character x1 : Identifier <= : Relational operator Token cannot be generated */ OUTPUT *** Program on Lexical Analysis ***Enter the string: if (a>b) a=25; Analysis:if : Keyword ( : Special character a : Identifier > : Relational operator b : Identifier ) : Special character a : Identifier = : Assignment operator 25 : Constant ; : Special character End of program
• 13. /*Count number of characters, words, lines in a file */ #include<fstream.h> #include<conio.h> #include<string.h> #include<ctype.h> void main() { clrscr(); char ch,fname[50]; int count=0,ascii,line=0,words=0,previous=10; cout<<"Enter the complete path of the file:"<<"n"; cin.get(fname,50); fstream fio; fio.open(fname,ios::in) ; fio.seekg(0); while(fio) { fio.get(ch); if(ch !=10 && ch !=-1) { count++; if(ch==32 && previous !=32) {words++; } previous=ch; } else {if(ch==10) line++; if (previous !=10 && previous != 32) words++; previous=ch; } ascii=ch; cout<<ch<<":"<< ascii<<"n"; } fio.close(); cout<<"number of characters:"<<count<<"n"; cout<<"number of lines:"<<line<<"n"; cout<<"number of words:"<<words<<"n"; getch();
• 14. } OUTPUT Enter the complete path of the file: c:Documents and SettingsUser1Desktoptext.txt number of characters:98 number of lines:4 number of words:26 */ First and follow */ #include<iostream.h> #include<conio.h> struct prod { char left, right[10][10]; int no_prod; }; struct firstnfollow { char ch[100]; int n_f; }; void main() { clrscr(); prod p[]={{'E',{"TR"},1}, {'R',{"+TR","~"},2}, {'T',{"FD"},1}, {'D',{"*FD","~"},2}, {'F',{"(E)","i"},2}}; firstnfollow f1[10]; firstnfollow f2[]={{"\$",1},{"",0},{"",0},{"",0},{"",0}}; int n=5; // int n=5; char temp; for(int i=0;i<n;i++) { for(int j=0;j<p[i].no_prod;j++) { f1[i].ch[j]=p[i].right[j][0]; f1[i].n_f=p[i].no_prod; } } for(i=0;i<n;i++) { while(f1[i].ch[0]>=65&&f1[i].ch[0]<=90) { temp=f1[i].ch[0]; for(int j=1;j<f1[i].n_f;j++) f1[i].ch[j-1]=f1[i].ch[j]; f1[i].n_f--; for(int k=0;k<n;k++)
• 15. if(temp==p[k].left) { for(j=0;j<f1[k].n_f;j++) f1[i].ch[f1[i].n_f+j]=f1[k].ch[j]; f1[i].n_f+=f1[k].n_f; break; } } } int k,flag; for(i=0;i<n;i++) { for(int j=0;j<p[i].no_prod;j++) { k=0; while(p[i].right[j][k]!='0') { if(p[i].right[j][k]>=65&&p[i].right[j][k]<=90&&p[i].right[j][k+1]!='0') { for(int x=0;x<n;x++) if(p[i].right[j][k]==p[x].left) break; for(int y=0;y<n;y++) if(p[i].right[j][k+1]==p[y].left) break; if(y<5) { for(int s=0;s<f1[y].n_f;s++) if(f1[y].ch[s]!='~') f2[x].ch[f2[x].n_f++]=f1[y].ch[s]; } else f2[x].ch[f2[x].n_f++]=p[i].right[j][k+1]; } k++; } } } for(i=0;i<n;i++) { for(int j=0;j<p[i].no_prod;j++) { k=0; while(p[i].right[j][k]!='0') { if(p[i].right[j][k]>=65&&p[i].right[j][k]<=90) { if(p[i].right[j][k+1]=='0') { for(int a=0;a<n;a++) if(p[i].right[j][k]==p[a].left) break; if(a!=i) for(int b=0;b<f2[i].n_f;b++) f2[a].ch[f2[a].n_f++]=f2[i].ch[b]; } else { if(p[i].right[j][k+1]>=65&&p[i].right[j][k+1]<=90) { flag=0;
• 16. for(int x=0;x<n;x++) if(p[i].right[j][k+1]==p[x].left) break; for(int s=0;s<f1[x].n_f;s++) if(f1[x].ch[s]=='~') { flag=1; break; } if(flag==1) { for(int a=0;a<n;a++) if(p[i].right[j][k]==p[a].left) break; for(int b=0;b<f2[i].n_f;b++) f2[a].ch[f2[a].n_f++]=f2[i].ch[b]; } } } } k++; } } } int q,j,s; for(i=0;i<n;i++) { q=0; j=0; while(f2[i].ch[j]!='0') { k=j+1; while(f2[i].ch[k]!='0') { if(f2[i].ch[j]==f2[i].ch[k]) { s=k; while(f2[i].ch[s]!='0') { f2[i].ch[s]=f2[i].ch[s+1]; s++;q++; } } else k++; } j++; } f2[i].n_f-=q; } cout<<"The Firsts are: "; for(i=0;i<n;i++) { cout<<"n"<<p[i].left<<" ---- "; for(int j=0;j<f1[i].n_f;j++) cout<<f1[i].ch[j]<<" ";
• 17. } cout<<"nThe Follows are: "; for(i=0;i<n;i++) { cout<<"n"<<p[i].left<<" ---- "; j=0; while(f2[i].ch[j]!='0') { cout<<f2[i].ch[j]<<" "; j++; } } getch(); } OUTPUT The Firsts are: E ---- ( i R ---- + ~ T ---- ( i D ---- * ~ F ---- ( i The Follows are: E ---- \$ ) R ---- \$ ) T ---- + \$ ) D ---- + \$ ) F ---- * + \$ )