From f03659c8656301b4b304542e6276a7834d3f6f5b Mon Sep 17 00:00:00 2001 From: Jason Turner Date: Wed, 19 Jul 2017 13:19:36 -0600 Subject: [PATCH] More careful testing of 'for' parses --- include/chaiscript/language/chaiscript_parser.hpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/include/chaiscript/language/chaiscript_parser.hpp b/include/chaiscript/language/chaiscript_parser.hpp index d6cf7402..06a51dfa 100644 --- a/include/chaiscript/language/chaiscript_parser.hpp +++ b/include/chaiscript/language/chaiscript_parser.hpp @@ -1908,9 +1908,17 @@ namespace chaiscript throw exception::eval_error("Incomplete 'for' block", File_Position(m_position.line, m_position.col), *m_filename); } + const auto num_children = m_match_stack.size() - prev_stack_top; + if (classic_for) { + if (num_children != 4) { + throw exception::eval_error("Incomplete 'for' expression", File_Position(m_position.line, m_position.col), *m_filename); + } build_match>(prev_stack_top); } else { + if (num_children != 3) { + throw exception::eval_error("Incomplete ranged-for expression", File_Position(m_position.line, m_position.col), *m_filename); + } build_match>(prev_stack_top); } }