diff --git a/src/parser.cpp b/src/parser.cpp index 21c8b98..7b44223 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -188,6 +188,15 @@ ParseReturn parse_statement(vector tokens) { Node expr = ret.node; ret = parse_instruction(tokens); // Instruction1 + + if (holds_alternative(ret.node) && + ( get(ret.node).type == NodeType::AssignedDeclaration || + get(ret.node).type == NodeType::Declaration ) ) + throw SyntaxError( + "a dependent statement may not be a declaration", + pos=tokens.back().pos + ); + tokens = ret.tokens; Node instruction1 = ret.node;