From 2d7131670e771af8bac13c315ba262cb3a321505 Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Mon, 22 Aug 2016 08:39:05 -0700 Subject: [PATCH] 3244 --- 016dilated_reagent.cc | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/016dilated_reagent.cc b/016dilated_reagent.cc index 09715848..38bb5578 100644 --- a/016dilated_reagent.cc +++ b/016dilated_reagent.cc @@ -61,17 +61,27 @@ string slurp_balanced_bracket(istream& in) { while (in >> c) { if (c == '(') open_brackets.push_back(c); if (c == ')') { + if (open_brackets.empty() || open_brackets.back() != '(') { + raise << "unbalanced ')'\n" << end(); + continue; + } assert(open_brackets.back() == '('); open_brackets.pop_back(); } if (c == '[') open_brackets.push_back(c); if (c == ']') { - assert(open_brackets.back() == '['); + if (open_brackets.empty() || open_brackets.back() != '[') { + raise << "unbalanced ']'\n" << end(); + continue; + } open_brackets.pop_back(); } if (c == '{') open_brackets.push_back(c); if (c == '}') { - assert(open_brackets.back() == '{'); + if (open_brackets.empty() || open_brackets.back() != '{') { + raise << "unbalanced '}'\n" << end(); + continue; + } open_brackets.pop_back(); } result << c;