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.l | |
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.l')
-rw-r--r-- | parser.l | 14 |
1 files changed, 9 insertions, 5 deletions
@@ -187,7 +187,7 @@ UANY {ASC}|{U2}{U}|{U3}{U}{U}|{U4}{U}{U}{U} UANYN {ASCN}|{U2}{U}|{U3}{U}{U}|{U4}{U}{U}{U} UONLY {U2}{U}|{U3}{U}{U}|{U4}{U}{U}{U} -%x SPECIAL NESTED REGEX REGCLASS STRLIT CHRLIT QSILIT +%x SPECIAL NESTED REGEX STRLIT CHRLIT QSILIT %% @@ -420,10 +420,6 @@ UONLY {U2}{U}|{U3}{U}{U}|{U4}{U}{U}{U} } <REGEX>[/] { - yy_pop_state(); - if (yy_top_state() == INITIAL - || yy_top_state() == QSILIT) - yy_pop_state(); yylval.chr = '/'; return '/'; } @@ -567,3 +563,11 @@ UONLY {U2}{U}|{U3}{U}{U}|{U4}{U}{U}{U} } %% + +void end_of_regex(void) +{ + yy_pop_state(); + if (yy_top_state() == INITIAL + || yy_top_state() == QSILIT) + yy_pop_state(); +} |