Flex 將輸入設置爲內存字符串

#include <iostream>
#include "lexer.h"

#define yylex aaslex
#define yy_scan_string aas_scan_string
#define yy_delete_buffer aas_delete_buffer

int main()
{
  std::string src = "username xx aa";
  YY_BUFFER_STATE state = yy_scan_string(src.data());
  yylex();
  yy_delete_buffer(state);
}

lexer.l:

%option noyywrap noline
%option prefix="aas"
%option header-file="lexer.h"

%{
#include <iostream>
%}

%%

username  {printf( "%s\n", yytext ); }

. { printf( "other:%s\n", yytext ); }

%%

命令行:

> win_flex --wincompat -o %(Filename).cc %(Identity)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章