如何消除lex代码输入字符串中的空格?

时间:2017-02-18 03:55:11

标签: c compiler-construction yacc lex

我在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];}

%%

0 个答案:

没有答案