return s;
}
+int
+safe_unget(char c)
+{
+ if (c==EOF)
+ return 0;
+
+ ungetc(c,stdin);
+ return 1;
+}
+
int
yylex(void)
{
else if (c == '~')
return NRE;
else
- ungetc(c,stdin);
+ if (! safe_unget(c))
+ return c;
}
if (c == '<'){
if ((c = getchar ()) == '=')
return LE;
- else {
- ungetc(c,stdin);
- return LT;
- }
+ else
+ return (safe_unget(c) ? LT : c);
}
if (c == '>'){
if ((c = getchar ()) == '=')
return GE;
- else {
- ungetc(c,stdin);
- return GT;
- }
+ else
+ return (safe_unget(c) ? GT : c);
}
if (c == '='){
if ((c = getchar ()) == '=')
return EQ;
else
- ungetc(c,stdin);
+ if (! safe_unget(c))
+ return c;
}
if (c == '~'){
if ((c = getchar ()) == '~')
return RE;
else
- ungetc(c,stdin);
+ if (! safe_unget(c))
+ return c;
}
if (c == EOF)