0% found this document useful (0 votes)
30 views

09-Operator Precedence Relations

program to implement operator precedence relations for operator precedence parsing, a bottom up parser.

Uploaded by

Raji Pillai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views

09-Operator Precedence Relations

program to implement operator precedence relations for operator precedence parsing, a bottom up parser.

Uploaded by

Raji Pillai
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 7

/* OPERATOR PRECEDENCE RELATIONS */

PROGRAM CODE
#include<conio.h>
#include<string.h>
#include<ctype.h>
#include<iostream.h>
char grmr[10][10],nt[10],t[10];
int i,n,j=0,k=0, ln,lt,len, m=0, l1=0,l=0;
int ![10]["],#[10]["], posnt,post, s1=0,s=0;
char stackl[10]["],stackt[10]["];
$oid push%char ,char&;
$oid pop%&;
$oid pusht%char,char&;
$oid popt%&;
$oid instalt%char,char&;
$oid oprsr%&
'
char ([10],c[10];
int l(;
)or%i=0;i<n;i**&
'
strcpy%(,grmr[i]&;
l(=strlen%(&;
)or%j=0;j<l(;j**&
'
i)%islo+er%([j]&,=0&
i)%islo+er%([j*1]&,=0&
cout<<-.n-<<- -<<([j]<<-=-<<([j*1];
i)%islo+er%([j]&,=0&
i)%islo+er%([j*]&,=0&
i)%isupper%([j*1]&,=0&
cout<<-.n-<<([j]<<-=-<<([j*];
/
/
)or%i=0;i<n;i**&
'
strcpy%(,grmr[i]&;
l(=strlen%(&;
)or%j=0;j<l(;j**&
'
i)%islo+er%([j]&>0&
i)%isupper%([j*1]&>0&
)or%k=0;k<n;k**&
'
strcpy%c,grmr[k]&;
int p=strlen%c&;
i)%([j*1]==c[0]&
)or%int t=0;t<p;&
i)%islo+er%c[t]&>0&
'
cout<<-.n-<<([j]<< - <. -<< c[t];
t=p*1;
/
else
t**;
/
/
/
)or%i=0;i<n;i**&
'
strcpy%(,grmr[i]&;
l(=strlen%(&;
)or%j=0;j<l(;j**&
i)%isupper%([j]&>0&
i)%islo+er%([j*1]&>0&
)or%k=0;k<n;k**&
'
strcpy%c,grmr[k]&;
int p=strlen%c&;
i)%([i]==c[0]&
)or%int t=0;t<p;t**&
'
i)%islo+er%c[t]&>0&
cout<<-.n-<<c[t]<<-.>-<<([j*1];
/
/
/
/
$oid instalt%char 0,char a&
'
i)%#[posnt][post]==0&
'
#[posnt][post]=1;
pusht%0,a&;
/
/
$oid install%char 0,char a&
'
i)%![posnt][post]==0&
'
![posnt][post]=1;
push%0,a&;
/
/
$oid pusht%char 0,char a&
'
stackt[s][0]=0;
stackt[s][1]=a;
s**;
/
$oid push%char 0,char a&
'
stackl[s1][0]=0;
stackl[s1][1]=a;
s1**;
/
$oid popt%&
'
)or%int i=0;i<ln;i**&
'
i)%stackt[s][0]==nt[i]&
'
posnt=i;
(reak;
/
/
)or%i=0;i<lt;i**&
'
i)%stackt[s][1]==t[i]&
'
post=i;
(reak;
/
/
s11;
/
$oid pop%&
'
)or%int i=0;i<ln;i**&
'
i)%stackl[s1][0]==nt[i]&
'
posnt=i;
(reak;
/
/
)or%i=0;i<lt;i**&
'
i)%stackl[s1][1]==t[i]&
'
post=i;
(reak; /
/
s111;
/
$oid trailing%&
'
post=0;
posnt=0;
)or%i=0;i<ln;i**&
)or%j=0;j<lt;j**&
#[i][j]=0;
)or%i=0;i<n;i**&
'
len=strlen%grmr[i]&;
)or%j=0;j<ln;j**&
'
i)%grmr[i][0]==nt[j]&
'
posnt=j;
(reak;
/
/
)or%j=0;j<lt;j**&
'
len=strlen%grmr[i]&;
i)%%grmr[i][len]==t[j]&22%grmr[i][len11]==t[j]&&
'
post=j;
instalt%nt[posnt],t[post]&;
(reak;
/
/
/
+hile%s1,=11&
'
popt%&;
)or%i=0;i<n;i**&
'
)or%j=0;j<ln;j**&
'
i)%grmr[i][3]==nt[posnt]&
'
instalt%grmr[i][0],t[post]&;
/
/
/
/
cout<<-.n#railing sym(ols-;
)or%i=0;i<ln;i**&
'
cout<<-.n-<<nt[i]<<-4-;
)or%j=0;j<lt;j**&
'
i)%#[i][j]==1&
'
cout<<-.t-<<t[j];
/
/
/
/
$oid leading%&
'
post=0;
posnt=0;
)or%i=0;i<ln;i**&
)or%j=0;j<lt;j**&
![i][j]=0;
)or%i=0;i<n;i**&
'
len=strlen%grmr[i]&;
)or%j=0;j<ln;j**&
'
i)%grmr[i][0]==nt[j]&
'
posnt=j;
(reak;
/
/
)or%j=0;j<lt;j**&
'
len=strlen%grmr[i]&;
i)%%grmr[i][3]==t[j]&22%grmr[i][5]==t[j]&&
'
post=j;
install%nt[posnt],t[post]&;
(reak;
/
/
/
+hile%s1,=11&
'
pop%&;
)or%i=0;i<n;i**&
'
)or%j=0;j<ln;j**&
'
i)%grmr[i][3]==nt[posnt]&
'
install%grmr[i][0],t[post]&;
/
/
/
/
cout<<-.n!eading sym(ols-;
)or%i=0;i<ln;i**&
'
cout<<-.n-<<nt[i]<<-4-;
)or%j=0;j<lt;j**&
'
i)%![i][j]==1&
cout<<-.t-<<t[j];
/
/
/
$oid main%&
'
clrscr%&;
cout<<-.n6nter the no. o) 67pressions4-;
cin>>n;
cout<<-.n6nter the e7pressions4-;
)or%i=0;i<n;i**&
'
cin>>grmr[i];
int len=strlen%grmr[i]&;
)or%j=0;j<len;j**&
'
int )lag=0;
i)%isupper%grmr[i][j]&&
'
)or%int i1=0;i1<m;i1**&
'
i)%nt[i1]==grmr[i][j]&
'
)lag=1;
(reak;
/
/
i)%,)lag&
'
nt[m]=grmr[i][j];
m**;
/
/
else i)%islo+er%grmr[i][j]&&
'
i)%%grmr[i][j],=818&22%grmr[i][j*1],=8>8&&
'
)lag=0;
)or%int i1=0;i1<m;i1**&
'
i)%t[i1]==grmr[i][j]&
'
)lag=1;
(reak;
/
/
i)%,)lag&
'
t[k]=grmr[i][j];
k**;
/
/
else
j=j*;
/
/
/
t[k]=8.08;
nt[j]=8.08;
ln=strlen%nt&;
lt=strlen%t&;
cout<<-.n-<<nt;
cout<<-.n-<<t;
leading%&;
trailing%&;
oprsr%&;
getch%&;
/

You might also like