After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 728574 - Some regexp escape sequences are not matched
Some regexp escape sequences are not matched
Status: RESOLVED FIXED
Product: vala
Classification: Core
Component: Code Generator
0.22.x
Other Linux
: Normal normal
: ---
Assigned To: Vala maintainers
Vala maintainers
Depends on:
Blocks:
 
 
Reported: 2014-04-19 20:03 UTC by Marcin Lewandowski
Modified: 2018-05-16 15:24 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
scanner: Accept backreferences \1 through \99 in regex literals (2.15 KB, patch)
2018-05-16 09:18 UTC, Rico Tzschichholz
none Details | Review
scanner: Accept backreferences \1 through \99 in regex literals (2.13 KB, patch)
2018-05-16 09:22 UTC, Rico Tzschichholz
committed Details | Review

Description Marcin Lewandowski 2014-04-19 20:03:15 UTC
Compiler disallows compilation of such regexp:

/^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24\:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/

It throws "error: invalid escape sequence" twice.

First map to \3 (character 49)
Second map to \17 (character 215)

This regexp works perfectly e.g. in Ruby.

Valac 0.22.1
Comment 1 Rico Tzschichholz 2018-05-16 09:18:16 UTC
Created attachment 372116 [details] [review]
scanner: Accept backreferences \1 through \99 in regex literals
Comment 2 Rico Tzschichholz 2018-05-16 09:22:59 UTC
Created attachment 372117 [details] [review]
scanner: Accept backreferences \1 through \99 in regex literals
Comment 3 Rico Tzschichholz 2018-05-16 15:24:40 UTC
Attachment 372117 [details] pushed as de5bd62 - scanner: Accept backreferences \1 through \99 in regex literals