diff --git a/src/language/PEGGrammar.hpp b/src/language/PEGGrammar.hpp index e8f66bbd3992e6922aacc77f7620a6918866a97c..336fb5583fb4e163f37feb30956acbf27cef36ab 100644 --- a/src/language/PEGGrammar.hpp +++ b/src/language/PEGGrammar.hpp @@ -77,7 +77,9 @@ struct basic_type : sor< scalar_type, string_type >{}; struct type_name_id; struct simple_type_specifier : sor< vector_type, basic_type, type_name_id >{}; -struct tuple_type_specifier : seq<open_parent, simple_type_specifier, ignored, close_parent>{}; +struct tuple_type_specifier : sor<try_catch< open_parent, simple_type_specifier, ignored, close_parent >, + // non matching braces management + if_must< at< open_parent >, raise< simple_type_specifier >, until< eof > > >{}; struct TYPE_SPECIFIER : seq< sor<simple_type_specifier, tuple_type_specifier>, ignored >{}; @@ -385,6 +387,9 @@ inline const std::string errors<language::slashstar>::error_message = "block com template <> inline const std::string errors<language::open_brace>::error_message = "open brace was never closed, missing '}'"; +template <> +inline const std::string errors<language::simple_type_specifier>::error_message = "expecting simple type specifier"; + // clang-format on } // namespace language