From 4e02ef614f9fd4930aab031cf8512c8607c0d2e9 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sun, 17 Jan 2010 07:46:04 -0800 Subject: * parser.y (regterm, regclass): Relocate handling of empty [] into regterm, via empty derivation. --- ChangeLog | 5 +++++ parser.y | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index e023e2f6..dcdd303b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2010-01-17 Kaz Kylheku + + * parser.y (regterm, regclass): Relocate handling + of empty [] into regterm, via empty derivation. + 2010-01-16 Kaz Kylheku Regex syntactic tweaks: support the [] syntax diff --git a/parser.y b/parser.y index a3154201..db3ff2c7 100644 --- a/parser.y +++ b/parser.y @@ -469,9 +469,8 @@ regbranch : regterm { $$ = cons($1, nil); } ; regterm : '[' regclass ']' { $$ = cons(set_s, $2); } - | '[' ']' { $$ = cons(set_s, nil); } - | '[' '^' regclass ']' { $$ = cons(cset_s, $3); } - | '[' '^' ']' { $$ = wild_s; } + | '[' '^' regclass ']' { $$ = if3(nullp($3), wild_s, + cons(cset_s, $3)); } | '.' { $$ = wild_s; } | '^' { $$ = chr('^'); } | ']' { $$ = chr(']'); } @@ -492,6 +491,7 @@ regterm : '[' regclass ']' { $$ = cons(set_s, $2); } regclass : regclassterm { $$ = cons($1, nil); } | regclassterm regclass { $$ = cons($1, $2); } + | /* empty */ { $$ = nil; } ; regclassterm : regrange { $$ = $1; } -- cgit v1.2.3