2014-11-18 4 views
-1

Я делаю простой лексер с использованием flex. Я хочу прочитать значение yytext и сохранить его как целое число в переменной t. Но когда я скомпилировать это показывает мне следующее сообщение об ошибке:flex atoi (yytext) не присваивает значение переменной

error: stray ‘\35’ in program t = atoi(yytext);

Вот код:

%{ 
    #include "global.h"//contains stdlib 

    int t=0; 
    %} 

    DIGIT [0-9] 

%% 


{DIGIT} { 

     printf("found an integer, = %d \n", atoi(yytext));//this compiles without errors 
     t = atoi(yytext); //here I have error 

     //...rest of code 


    } 


%% 
    main(){ 

     yylex(); 
    } 

Могу ли я обратиться за помощью с этим?

Спасибо!

ответ

0

Это не ответ, это длинный комментарий ...

Обычно «ошибка: шальная„\ 35“в программе» будут подключаться к использованию неправильных quoation знаков "

Пример

`a` ‘a’ instead of 'a' 
”a“ ... instead of "a" 

Может ли это быть так?

Смотрите, если это появляется в "global.h"