목차
1. 코딩환경
2. Compile과정
2. Compile과정
본문내용
ith 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;
}
----------
소개글