목차
1. 코딩환경
2. Compile과정
2. Compile과정
본문내용
h symbol table*/
unsigned currentFile=0;
unsigned nFiles;
unsigned filecount = 0;
extern void *malloc();
int lastentry=0;
int lookup(s)
char s[];
{
int p;
for (p=lastentry; p > 0; p=p-1)
if (strcmp(symtable[p].lexptr,s)==0)
return p;
return 0;
}
int insert(s,tok)
char s[];
int tok;
{
int len;
len = strlen(s);
if (lastentry +1 >= 10000) {
fprintf(stderr,"symtable full");exit(1);
}
lastentry++;
symtable[lastentry].token=tok;
symtable[lastentry].lexptr=&s[0];
return lastentry;
}
main (argc,argv)
int argc;
char **argv;
{
FILE *file;
/* initializing symtable*/
struct entry *p;
for (p=keywords; p->token; p++)
insert(p->lexptr,p->token);
if (argc != 2) {
fprintf(stderr,"insufficient arguments.\n");
fprintf(stderr,"usage: lexer4c c_source\n");
exit(1);
}
file=fopen(argv[1],"r");
if (!file) {
fprintf(stderr,"could not open %s\n",argv[1]);
exit(1);
}
yyin=file;
yylex();
printf("Reserved Word Count: %d\n",reservedCount);
printf("ID Count: %d\n",idCount);
printf("NUM Count: %d\n",numCount);
printf("Line Count: %d\n",lineCount);
printf("Word Count: %d\n",wordCount);
printf("Char Count: %d\n",charCount);
return 0;
}
-----------------------------------------------------------
unsigned currentFile=0;
unsigned nFiles;
unsigned filecount = 0;
extern void *malloc();
int lastentry=0;
int lookup(s)
char s[];
{
int p;
for (p=lastentry; p > 0; p=p-1)
if (strcmp(symtable[p].lexptr,s)==0)
return p;
return 0;
}
int insert(s,tok)
char s[];
int tok;
{
int len;
len = strlen(s);
if (lastentry +1 >= 10000) {
fprintf(stderr,"symtable full");exit(1);
}
lastentry++;
symtable[lastentry].token=tok;
symtable[lastentry].lexptr=&s[0];
return lastentry;
}
main (argc,argv)
int argc;
char **argv;
{
FILE *file;
/* initializing symtable*/
struct entry *p;
for (p=keywords; p->token; p++)
insert(p->lexptr,p->token);
if (argc != 2) {
fprintf(stderr,"insufficient arguments.\n");
fprintf(stderr,"usage: lexer4c c_source\n");
exit(1);
}
file=fopen(argv[1],"r");
if (!file) {
fprintf(stderr,"could not open %s\n",argv[1]);
exit(1);
}
yyin=file;
yylex();
printf("Reserved Word Count: %d\n",reservedCount);
printf("ID Count: %d\n",idCount);
printf("NUM Count: %d\n",numCount);
printf("Line Count: %d\n",lineCount);
printf("Word Count: %d\n",wordCount);
printf("Char Count: %d\n",charCount);
return 0;
}
----------