-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Open
Description
CrashGrammar.g4:
grammar CrashGrammar;
// combined from https://github.com/antlr/grammars-v4/blob/master/sqlite/SQLite.g4 parse + sql_stmt_list
parse: (';'* stmt ( ';'+ stmt )* ';'*)* EOF
;
stmt: 'A' 'B'?
;
WS: [\u000B\t\r\n ]+ -> skip
;
ANY: .
;
main.cpp:
#include <iostream>
#include "antlr4-runtime.h"
#include "CrashGrammarLexer.h"
#include "CrashGrammarParser.h"
using namespace antlr_sdl;
int main(int argc, char **argv) {
std::stringstream ss(R"__(
A B ;
A _ ;
)__");
antlr4::ANTLRInputStream antlr_input(ss);
CrashGrammarLexer lexer(&antlr_input);
antlr4::CommonTokenStream token_stream(&lexer);
CrashGrammarParser parser(&token_stream);
antlr4::tree::ParseTree *ast = parser.parse();
std::cout << ast->toStringTree(&parser) << std::endl;
return 0;
}
Crashes on parser doing parse()
.
Backtrace shows the NoViableAltException
destructing on reportNoViableAlternative
return, which is attempting to delete _deadEndConfigs
that has been deleted
Metadata
Metadata
Assignees
Labels
No labels