首页 > 解决方案 > 如何使用 lex/flex 通过三引号 """...""" 解析 python 多行字符串?

问题描述

我想"""string"""用 lex/flex 解析 python 多行字符串。

这是我的弹性部分:

%x MULTISTR

%{
#include <cstdio>
%}

%%

"\"\"\""                { BEGIN MULTISTR; }
<MULTISTR>"\"\"\""      { BEGIN INITIAL; }
<MULTISTR>([^*]|\n)+|.  { yylval.str = strdup(yytext, yyleng); return T_MULTISTR; }
<MULTISTR><<EOF>>       { std::fprintf(stderr, "error! unterminated multiple line string!\n"); }
%%

但是当我测试它时,我收到了错误消息:

error! unterminated multiple line string!

请帮我修复这个令牌解析!

标签: pythonc++flex-lexerlex

解决方案


推荐阅读