Professional Documents
Culture Documents
Include 1
Include 1
h"
#include <stdio.h>
#include <ctype.h>
int lex()
{
static char input_buffer[128];
char *current;
current = input_buffer;
if(!gets (input_buffer))
{
*current = '\0';
return EOI;
}
++yylineno;
while(isspace (*current))
++current;
}
yytext = current;
yyleng = 1;
switch(*current)
{
case EOF : return EOF;
case ';' : return SEMI;
case '+' : return PLUS;
case '*' : return TIMES;
case '(' : return LP;
case ')' : return RP;
case '\n':
case '\t':
case ' ': break;
default:
if(!isalnum(*current))
fprintf(stderr, "Ignoring illegal input <%c>\n",
*current);
else
{
while(isalnum(*current))
++current;
break;
}
}
}
}