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 /parser.y | |
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 'parser.y')
-rw-r--r-- | parser.y | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -449,9 +449,10 @@ expr : IDENT { $$ = intern(string_own($1), nil); } | quasilit { $$ = $1; } ; -regex : '/' regexpr '/' { $$ = $2; } +regex : '/' regexpr '/' { $$ = $2; end_of_regex(); } | '/' error { $$ = nil; - yybadtoken(yychar, lit("regex")); } + yybadtoken(yychar, lit("regex")); + end_of_regex(); } ; regexpr : regbranch { $$ = if3(cdr($1), @@ -504,6 +505,7 @@ regchar : '?' { $$ = '?'; } | ')' { $$ = ')'; } | '^' { $$ = '^'; } | '|' { $$ = '|'; } + | '/' { $$ = '/'; } | REGCHAR { $$ = $1; } ; |