This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Patch, libstdc++/63775] Fix regex bracket expression parsing


On 09/11/14 10:17 -0800, Tim Shen wrote:
	__matcher._M_add_equivalence_class(_M_value);
      else if (_M_match_token(_ScannerT::_S_token_char_class_name))
	__matcher._M_add_character_class(_M_value, false);
-      else if (_M_try_char()) // [a
+      // POSIX doesn't permit '-' as a start-range char (say [a-z--0]),
+      // except that the '-' is the first character in the bracket expression

Should be "except when" in this comment

+      // ([--0]). ECMAScript treats all '-' after a range as a normal character.
+      // Also see above, where _M_expression_term gets called.
+      //
+      // As a result, POSIX rejects [-----], but ECMAScript doesn't.
+      // Boost (1.57.0) always uses POSIX style even in its ECMAScript syntax.
+      // Clang (3.5) always uses ECMAScript style even in its POSIX syntax.
+      //
+      // It turns out that no one reads BNFs ;)

Ha :-)

OK for trunk with the small change above - thanks!


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]