我在lex中创建一个正则表达式,用于在yacc接受算术表达式中使用它。我希望消除空格,当表达式有空格我试过但空间没有被消除,然后我的yacc会出现语法错误,因为\ s不是运算符。
LEX
%{
#include <stdio.h>
#include "y.tab.h"
int yylval;/*declared extern by yacc code. used to pass info to yacc*/
%}
letter [A-Za-z]
digit ([0-9])*
op "+"|"*"|"("|")"|"/"|"-"
ws [ \t\n\r\s]+$
other .
%%
{ws} { /*Nothing*/ }
{digit} { yylval = atoi(yytext); return NUM;}
{op} { return yytext[0];}
{other} { return yytext[0];}
%%