From 966bd36dad0da2a96aaa626d05d50938bfba0540 Mon Sep 17 00:00:00 2001 From: augustin64 Date: Fri, 10 Nov 2023 17:53:41 +0100 Subject: [PATCH] Fix ParserException not catched --- src/parser.cpp | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/parser.cpp b/src/parser.cpp index 56f2588..fcb9da1 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -11,7 +11,7 @@ Node parse(vector tokens) { reverse(tokens.begin(), tokens.end()); if (tokens.size() == 0) - throw new ParseException; + throw ParseException(); // At least 1 instruction @@ -47,7 +47,7 @@ ParseReturn parse_instruction(vector tokens) { tokens = ret.tokens; if (tokens.back().type != TokenType::Semicolon) - throw new ParseException; + throw ParseException(); return { .node=ret.node, @@ -60,7 +60,7 @@ ParseReturn parse_instruction(vector tokens) { tokens = ret.tokens; if (tokens.size() < 1 || tokens.back().type != TokenType::Semicolon) - throw new ParseException; + throw ParseException(); return { .node=ret.node, @@ -69,7 +69,7 @@ ParseReturn parse_instruction(vector tokens) { } catch (const ParseException& pex) { //* Instruction -> ; if (tokens.size() < 1 || tokens.back().type != TokenType::Semicolon) - throw new ParseException; + throw ParseException(); vector children; InnerNode epsilon_node = { @@ -90,18 +90,18 @@ ParseReturn parse_instruction(vector tokens) { ParseReturn parse_statement(vector tokens) { (void)tokens; // Aucune règle - throw new ParseException; + throw ParseException(); } ParseReturn parse_expr_statement(vector tokens) { if (tokens.size() < 1 || tokens.back().type != TokenType::Type) - throw new ParseException; + throw ParseException(); Token type = tokens.back(); tokens.pop_back(); if (tokens.size() < 1 || tokens.back().type != TokenType::Identifier) - throw new ParseException; + throw ParseException(); Token identifier = tokens.back(); tokens.pop_back(); @@ -136,7 +136,7 @@ ParseReturn parse_expr_statement(vector tokens) { ParseReturn parse_expr(vector tokens) { if (tokens.size() == 0) - throw new ParseException; + throw ParseException(); // At least 1 T ParseReturn ret = parse_t(tokens); @@ -181,7 +181,7 @@ ParseReturn parse_expr(vector tokens) { ParseReturn parse_t(vector tokens) { if (tokens.size() == 0) - throw new ParseException; + throw ParseException(); // At least 1 U @@ -268,7 +268,7 @@ ParseReturn parse_u(vector tokens) { ParseReturn parse_f(vector tokens) { if (tokens.size() == 0) - throw new ParseException; + throw ParseException(); switch (tokens.back().type) { case TokenType::Int: { //* U -> Number @@ -285,7 +285,7 @@ ParseReturn parse_f(vector tokens) { tokens=ret.tokens; if (tokens.size() < 1 || tokens.back().type != TokenType::RParenthese) - throw new ParseException; + throw ParseException(); tokens.pop_back(); @@ -318,6 +318,6 @@ ParseReturn parse_f(vector tokens) { }; } default: - throw new ParseException; + throw ParseException(); } } \ No newline at end of file