diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2010-01-13 18:03:52 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2010-01-13 18:03:52 -0800 |
commit | f50d67df2057c2cd1d26668f47bc604338ce33f0 (patch) | |
tree | 914ab33a490947a41b72a98d2b7d7450f83d6f0e /ChangeLog | |
parent | 1fedfc67446065a4b00eb194505eed5e15851811 (diff) | |
download | txr-f50d67df2057c2cd1d26668f47bc604338ce33f0.tar.gz txr-f50d67df2057c2cd1d26668f47bc604338ce33f0.tar.bz2 txr-f50d67df2057c2cd1d26668f47bc604338ce33f0.zip |
Bugfix: allow unescaped / to be used in regex character classes.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 22 |
1 files changed, 22 insertions, 0 deletions
@@ -1,5 +1,27 @@ 2010-01-13 Kaz Kylheku <kkylheku@gmail.com> + Bugfix: allow unescaped / to be used in regex character classes. + + To do this, we no longer make the lexer look for the terminating + slash which ends the regex syntax. This is driven by the parser, + which calls a special function in the lexer to indicate that + the regex parsing is done. + + * parser.h (end_of_regex): New function declared. + + * parser.l (REGCLASS): Unused start condition removed. + (grammar): A slash character in the REGEX start condition is now simply + returned as an operator token; no popping of the state stack takes + place. The scanner stays in REGEX mode. + (end_of_regex): New function. + + * parser.y (regex): Call end_of_regex when a regex is successfully + scanned through to terminating slash, or if a syntax error occurs. + (regchar): Can derive a / terminal now, thus including it in a + regex character class. + +2010-01-13 Kaz Kylheku <kkylheku@gmail.com> + * parser.y (precedence): bugfix: character classes like this [^*] being treated as a non-complemented set of two characters. |