%{
#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 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); } [/code] Здесь у меня есть код Flex, который возвращает определенные токены в вектор C++. Я хочу, чтобы он также отодвинул обратно другие токены, которые не совпадают и не являются ни одним из них, «[ \t\r\n\f]+». Как мне этого добиться?