Fix ParserException not catched

This commit is contained in:
augustin64 2023-11-10 17:53:41 +01:00
parent d3769e5630
commit 966bd36dad

View File

@ -11,7 +11,7 @@ Node parse(vector<Token> 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<Token> 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<Token> 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<Token> tokens) {
}
catch (const ParseException& pex) { //* Instruction -> ;
if (tokens.size() < 1 || tokens.back().type != TokenType::Semicolon)
throw new ParseException;
throw ParseException();
vector<Node> children;
InnerNode epsilon_node = {
@ -90,18 +90,18 @@ ParseReturn parse_instruction(vector<Token> tokens) {
ParseReturn parse_statement(vector<Token> tokens) {
(void)tokens;
// Aucune règle
throw new ParseException;
throw ParseException();
}
ParseReturn parse_expr_statement(vector<Token> 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<Token> tokens) {
ParseReturn parse_expr(vector<Token> 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<Token> tokens) {
ParseReturn parse_t(vector<Token> tokens) {
if (tokens.size() == 0)
throw new ParseException;
throw ParseException();
// At least 1 U
@ -268,7 +268,7 @@ ParseReturn parse_u(vector<Token> tokens) {
ParseReturn parse_f(vector<Token> 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<Token> 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<Token> tokens) {
};
}
default:
throw new ParseException;
throw ParseException();
}
}