#include
#include
#include
char *word[36]={"","and","array","begin","bool","call","case",
"char","constant","dim","do","else","end","false","for","if","input",
"integer","not","of","or","output", "procedure","program","read",
"real","repeat","set","stop","then","to","true","until","var","while","write"};
int a[10000],b[10000];
char copy[1000][1000];
char achar[1000000];
int line=1,biaoji1=1,num=1,abnum=1,charnum=1;
void scan();
void zifuchuan();
void number();
void zhuxi();
void fuhao();
void zifuchangliang();
void inputfile();
void output();
bool wrong=false;
void fuhao()
{
if(achar[num]=='.'&&achar[num+1]=='.')
{
a[abnum]=47;
b[abnum]=0;
abnum++;
num+=2;
}
else if(achar[num]==':'&&achar[num+1]=='=')
{
a[abnum]=51;
b[abnum]=0;
abnum++;
num+=2;
}
else if(achar[num]=='<'&&achar[num+1]=='=')
{
a[abnum]=54;
b[abnum]=0;
abnum++;
num+=2;
}
else if(achar[num]=='<'&&achar[num+1]=='>')
{
a[abnum]=55;
b[abnum]=0;
abnum++;
num+=2;
}
else if(achar[num]=='>'&&achar[num+1]=='=')
{
a[abnum]=58;
b[abnum]=0;
abnum++;
num+=2;
}
else if(achar[num]=='(')
{
a[abnum]=39;
b[abnum]=0;
abnum++;
num++;
}
else if(achar[num]==')')
{
a[abnum]=40;
b[abnum]=0;
abnum++;
num++;
}
else if(achar[num]=='*')
{
a[abnum]=41;
b[abnum]=0;
abnum++;
num++;
}
else if(achar[num]=='+')
{
a[abnum]=43;
b[abnum]=0;
abnum++;
num++;
}
else if(achar[num]==',')
{
a[abnum]=44;
b[abnum]=0;
abnum++;
num++;
}
else if(achar[num]=='-')
{
a[abnum]=45;
b[abnum]=0;
abnum++;
num++;
}
else if(achar[num]=='.')
{
a[abnum]=46;
b[abnum]=0;
abnum++;
num++;
}
else if(achar[num]=='/')
{
a[abnum]=48;
b[abnum]=0;
abnum++;
num++;
}
else if(achar[num]==':')
{
a[abnum]=50;
b[abnum]=0;
abnum++;
num++;
}
else if(achar[num]==';')
{
a[abnum]=52;
b[abnum]=0;
abnum++;
num++;
}
else if(achar[num]=='<')
{
a[abnum]=53;
b[abnum]=0;
abnum++;
num++;
}
else if(achar[num]=='=')
{
a[abnum]=56;
b[abnum]=0;
abnum++;
num++;
}
else if(achar[num]=='>')
{
a[abnum]=57;
b[abnum]=0;
abnum++;
num++;
}
else if(achar[num]=='[')
{
a[abnum]=59;
b[abnum]=0;
abnum++;
num++;
}
else if(achar[num]==']')
{
a[abnum]=60;
b[abnum]=0;
abnum++;
num++;
}
else
{
wrong=true;
cout<<"Line "<
void inputfile()
{
char n[300],ch;
cin>>n;
ifstream infile(n);
while(infile.get(ch))
achar[charnum++]=ch;
}
void number()
{
char store[1000];
store[0]=achar[num];
num++;
int i=0;
bool isnumber=true;
while((achar[num]>='a'&&achar[num]<='z')||(achar[num]>='A'&&achar[num]<='Z')||(achar
[num]>='0'&&achar[num]<='9'))
{
store[++i]=achar[num];
if(achar[num]<'0'||achar[num]>'9')
isnumber=false;
num++;
}
int l1=i+1;
if(isnumber)
a[abnum]=37;
else
{
wrong=true;
cout<<"Line "<
if(i==biaoji1)
{
b[abnum]=biaoji1;
strcpy(copy[biaoji1],store);
biaoji1++;
abnum++;
}
if(num='a'&&achar[num]<='z')||(achar[num]>='A'&&achar[num]<='Z'))
zifuchuan();
else if(achar[num]>='0'&&achar[num]<='9')
number();
else if(achar[num]=='/')
{
if(achar[num+1]=='*')
num+=2,zhuxi();
else fuhao();
}
else if(achar[num]=='\n')
line++,num++;
else if(achar[num]==' ')
num++;
else if(achar[num]=='\'')
zifuchangliang();
else
fuhao();
}
}
void zhuxi()
{
while(achar[num]!='*'||achar[num+1]!='/')
{
if(achar[num]=='\n'||num>=charnum)
{
wrong=true;
cout<<"Line "<='a'&&achar[num]<='z')||(achar[num]>='A'&&achar[num]<='Z')||(achar
[num]>='0'&&achar[num]<='9'))
store[i++]=achar[num++];
int l1=i;
store[l1]='\0';
for(i=1;i<=35;i++)
{
if(strcmp(word[i],store)==0)
{
a[abnum]=i;
b[abnum]=0;
abnum++;
break;
}
}
if(i==36)
{
for(i=1;i