提问人:Amukh1 提问时间:10/24/2023 最后编辑:wohlstadAmukh1 更新时间:10/24/2023 访问量:65
ANTLR4 C++ 生成的词法分析器不接受输入流
ANTLR4 C++ Generated lexer not accepting input stream
问:
我正在使用 Ubuntu。
我包括了使用 -Dlanguage=Cpp 标志时生成的解析器和词法分析器 ANTLR4。我根本没有更改文件,而是从文档中获取了此代码。
这是我的代码:
#include <iostream>
#include "antlr4-runtime.h"
#include "ExprLexer.h"
#include "ExprParser.h"
using namespace antlr4;
int main(int , const char **) {
// make input stream with string, put input stream into ANTLRInputStream
ANTLRInputStream input("h");
ExprLexer lexer(&input);
return 0;
}
这是我的编译语句:
g++ -std=c++17 *.cpp -o index -I/usr/local/include/antlr4-runtime -L. -lantlr4-runtime
我正在使用 gcc g++、c++17。它编译良好,但是当我运行它时出现错误。
这是我得到的错误。
terminate called after throwing an instance of 'std::system_error'
what(): Unknown error -1
Aborted (core dumped)
我怀疑它来自 InputStream 错误。
我尝试包装 try catch 语句,但告诉我的只是这可能是系统调用错误。如果这是真的,我不确定如何解决这个问题。
答: 暂无答案
评论
I suspect
不要怀疑,启动调试器并弄清楚到底是谁抛出这个异常以及为什么。gdb
是 GNU/linux 上一个著名的调试器。