python - 如何在 C++ 中标记字符串(如 Python 中的 ply.lex)?

标签 python c++ parsing lexer ply

如何使用 C++ 轻松标记文档或字符串? 我熟悉 Python 中的 ply.lex 模块,但找不到 C++ 的任何内容。是否有可以使用 lexyacc 的 C++ 库?还是有其他更好的库或方法可以轻松做到这一点?

最佳答案

flexlex相当于 ply.lexflex 示例:

%{
#include <stdio.h>
%}

%option noyywrap

%%
"+"               { puts("token: +"); }
"-"               { puts("token: -"); }
[0-9]+            { printf("token: %s\n", yytext); }
" "               { /* empty */ }
[\n|\r\n\t]       { /* empty */ }
.                 { fprintf(stderr, "Tokenizing error: synatx error '%c'\n", *yytext);
                    yyterminate(); }
%%

int main(int argc, char **argv)
{
  yylex();
  return 0;
}

编译:

> flex example.l
> gcc -Wall lex.yy.c -o lex
> lex
100 - 2 + 34
token: 100
token: -
token: 2
token: +
token: 34
>

关于python - 如何在 C++ 中标记字符串(如 Python 中的 ply.lex)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24748068/

相关文章:

c++ - ZLIB解压缩

java - 使用 DOM 和 java 将节点值添加到 xhtml

python - 使用 selenium/python 获取相对于视口(viewport)的元素位置

python - 函数如果只接受一个输入

python - 为什么 Internet Explorer 无法访问我的可从外部访问的 Django 开发服务器(即不在本地主机上?)

c++ - 关于 MVC View 界面的良好设计实践

python - 如何使用 django {% block %} 在同一页面中打开点击的链接

c++ - 未定义异常变量时按引用捕获

python - 如何在python中解析来自套接字的二进制数据?

javascript - 使用javascript将路径解析为嵌套的html列表