微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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)

原文地址:https://www.cnblogs.com/ajanuw/p/14848009.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐