【文件属性】:
文件名称:用MFC做的一个Pascal词法分析器
文件大小:1.82MB
文件格式:RAR
更新时间:2014-04-24 01:39:06
pascal MFC 词法分析器
FILE *outfp;
char dir[100000];
char ch;
char *keyword[400]={"and","array","begin","case","const","div","do","downto","to","else,","end",
"file","for","function","goto","if","in","label","mod","nil","not","of","or","packed",
"procedure","program","record","repeat","then","type","until","var","while","with","rewrite",
"reset","put","write","writeln","read","readln"};
int begin=0,forward=0;
void Keyword(int a)
{
begin=a;
forward=begin;
char ss[100];
int k,j=0;
int flag=0;
while( isalpha(dir[forward])||isdigit(dir[forward]) )
{
ss[j]=dir[forward];
forward++;
j++;
}
ss[j]='\0';
for(k=0;k<41;k++)
{
if( strcmp(ss,keyword[k])==0 )
{
flag=1;
fwrite(ss,strlen(ss),1,outfp);
fwrite("\t [关键字] \n",12,1,outfp);
begin=forward;
}
}
if(!flag)
{
fwrite(ss,strlen(ss),1,outfp);
fwrite("\t [标识符] \n",12,1,outfp);
begin=forward;
}
}
【文件预览】:
Pascal
----Pascal.rc(6KB)
----Pascal.clw(1KB)
----out.txt(514B)
----in.txt(102B)
----Pascal.dsw(537B)
----StdAfx.cpp(208B)
----Pascal.opt(54KB)
----resource.h(821B)
----PascalDlg.h(1KB)
----Pascal.ncb(65KB)
----Pascal.plg(246B)
----Pascal.cpp(2KB)
----Pascal.aps(43KB)
----Debug()
--------PascalDlg.obj(51KB)
--------Pascal.obj(13KB)
--------vc60.pdb(356KB)
--------vc60.idb(201KB)
--------Pascal.pdb(361KB)
--------Pascal.exe(120KB)
--------StdAfx.obj(103KB)
--------Pascal.res(11KB)
--------Pascal.pch(5.25MB)
--------Pascal.ilk(248KB)
----ReadMe.txt(3KB)
----StdAfx.h(1KB)
----Pascal.dsp(4KB)
----Pascal.h(1KB)
----res()
--------pascal_logo.BMP(8KB)
--------Pascal.ico(1KB)
--------Pascal.rc2(398B)
----PascalDlg.cpp(11KB)
网友评论
- 很不错,值得参考