Как я могу вернуть токен, который не соответствует ни одному другому токену, в вектор токенов в The Flex Tokenizer?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как я могу вернуть токен, который не соответствует ни одному другому токену, в вектор токенов в The Flex Tokenizer?

Сообщение Anonymous »

Мой гибкий код:

Код: Выделить всё

%{
#include 
#include 
#include 
#include 
using namespace std;
vector tokens;
%}

%%
def     tokens.push_back("CREATE_FUNC");
int      tokens.push_back("INT");
string      tokens.push_back("STRING");
char      tokens.push_back("char");
ret     tokens.push_back("EXIT_CODE");
"("       tokens.push_back("OPEN_PARA");
")"       tokens.push_back("CLOSE_PARA");
end     return 0;
[ \t\r\n\f]+
.
%%

int yywrap(){
return 0;
}
int main(int argc, char** argv){
if (argv[1] == NULL){
return 1;
}
FILE* ptr = fopen(argv[1], "r");
yyin = ptr;
yylex();
fclose(ptr);
}
Здесь у меня есть код Flex, который возвращает определенные токены в вектор C++. Я хочу, чтобы он также отодвинул обратно другие токены, которые не совпадают и не являются ни одним из них, «[ \t\r\n\f]+». Как этого добиться?
Пояснение: я хочу вернуть текущий символ назад, если он не соответствует пробелам или любому другому ключевому слову, например def и int. Или, проще говоря, нажмите текущий символ, на котором находится гибкий токенизатор, с помощью «.» Правило в вектор токенов выше.

Подробнее здесь: https://stackoverflow.com/questions/797 ... to-the-tok
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»