diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2010-01-17 07:46:04 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2010-01-17 07:46:04 -0800 |
commit | 4e02ef614f9fd4930aab031cf8512c8607c0d2e9 (patch) | |
tree | 8a90b2a40e798bbf37f785fdb14b923209dc256a /parser.y | |
parent | a6b27700fd31e51c24547e3e678feb79a03ae88e (diff) | |
download | txr-4e02ef614f9fd4930aab031cf8512c8607c0d2e9.tar.gz txr-4e02ef614f9fd4930aab031cf8512c8607c0d2e9.tar.bz2 txr-4e02ef614f9fd4930aab031cf8512c8607c0d2e9.zip |
* parser.y (regterm, regclass): Relocate handling
of empty [] into regterm, via empty derivation.
Diffstat (limited to 'parser.y')
-rw-r--r-- | parser.y | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -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; } |