用于C / C ++的Lexer和parser生成器能够逐个处理输入

时间:2017-12-14 20:40:58

标签: c++ parsing lexer

我正在寻找能够创建自动机的词法分析器和解析器生成器,这些自动机在“推”模式下工作以进行输入,也就是说它们不会自己读取输入但希望我能更多地输入它们。优选的界面类似于:

Lexer l;
Parser p;

while (read_more_input(buffer) != EOF) {
    l.feed(buffer);
    while (p.has_token() != false) { // so more input needed
        p.feed(l.get_token());
        if (p.has_partial_result() == true) {
            do_something(p.get_result());        
        }
    }
}

我需要这样的生成器的原因很简单 - 我正在使用异步网络服务器(使用boost :: asio),这意味着我在部分中使用输入,并且我必须逐个解析它。

我完成了我的作业并找到了一对似乎可以完成这项工作的工具,即lemonre2c,但我很想听听其他工具。

0 个答案:

没有答案