Fix ParserException not catched
This commit is contained in:
parent
d3769e5630
commit
966bd36dad
@ -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();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user