From 68a3b55eb3b423cae377c0a25db8ff30ec8bd02d Mon Sep 17 00:00:00 2001 From: John Millaway Date: Wed, 22 Mar 2006 19:06:36 +0000 Subject: Added set difference operator {-} for character classes. --- tests/test-ccl/scanner.l | 26 ++++++++++++++++---------- tests/test-ccl/test.input | 5 +++++ 2 files changed, 21 insertions(+), 10 deletions(-) (limited to 'tests') diff --git a/tests/test-ccl/scanner.l b/tests/test-ccl/scanner.l index 749ac71..383c6bc 100644 --- a/tests/test-ccl/scanner.l +++ b/tests/test-ccl/scanner.l @@ -37,16 +37,22 @@ %% -"^alpha:"[[:^alpha:]]+@alpha@\n printf("OK: %s", yytext); ++yylineno; return 1; -"^digit:"[[:^digit:]]+@digit@\n printf("OK: %s", yytext); ++yylineno; return 1; -"^alnum:"[[:^alnum:]]+@alnum@\n printf("OK: %s", yytext); ++yylineno; return 1; -"^upper:"[[:^upper:]]+@upper@\n printf("OK: %s", yytext); ++yylineno; return 1; -"^lower:"[[:^lower:]]+@lower@\n printf("OK: %s", yytext); ++yylineno; return 1; -"^space:"[[:^space:]]+@space@\n printf("OK: %s", yytext); ++yylineno; return 1; -"^blank:"[[:^blank:]]+@blank@\n printf("OK: %s", yytext); ++yylineno; return 1; -"^punct:"[[:^punct:]]+@punct@\n printf("OK: %s", yytext); ++yylineno; return 1; -"^cntrl:"[[:^cntrl:]]+@cntrl@\n printf("OK: %s", yytext); ++yylineno; return 1; -"^xdigit:"[[:^xdigit:]]+@xdigit@\n printf("OK: %s", yytext); ++yylineno; return 1; +^"^alpha:"[[:^alpha:]]+@alpha@\n printf("OK: %s", yytext); ++yylineno; return 1; +^"^digit:"[[:^digit:]]+@digit@\n printf("OK: %s", yytext); ++yylineno; return 1; +^"^alnum:"[[:^alnum:]]+@alnum@\n printf("OK: %s", yytext); ++yylineno; return 1; +^"^upper:"[[:^upper:]]+@upper@\n printf("OK: %s", yytext); ++yylineno; return 1; +^"^lower:"[[:^lower:]]+@lower@\n printf("OK: %s", yytext); ++yylineno; return 1; +^"^space:"[[:^space:]]+@space@\n printf("OK: %s", yytext); ++yylineno; return 1; +^"^blank:"[[:^blank:]]+@blank@\n printf("OK: %s", yytext); ++yylineno; return 1; +^"^punct:"[[:^punct:]]+@punct@\n printf("OK: %s", yytext); ++yylineno; return 1; +^"^cntrl:"[[:^cntrl:]]+@cntrl@\n printf("OK: %s", yytext); ++yylineno; return 1; +^"^xdigit:"[[:^xdigit:]]+@xdigit@\n printf("OK: %s", yytext); ++yylineno; return 1; + +^"a-d:"[[:alpha:]]{-}[[:digit:]]+@a-d@\n printf("OK: %s", yytext); ++yylineno; return 1; +^"l-xyz:"([[:lower:]]{-}[xyz])+@l-xyz@\n printf("OK: %s", yytext); ++yylineno; return 1; +^"abcd-bc:"([abcd]{-}[bc])+@abcd-bc@\n printf("OK: %s", yytext); ++yylineno; return 1; +^"abcde-b-c:"([abcde]{-}[b]{-}[c])+@abcde-b-c@\n printf("OK: %s", yytext); ++yylineno; return 1; +^"^XY-^XYZ:"([^XY]{-}[^XYZ])+@^XY-^XYZ@\n printf("OK: %s", yytext); ++yylineno; return 1; .|\n { printf("ERROR: at line %d\n", yylineno); diff --git a/tests/test-ccl/test.input b/tests/test-ccl/test.input index c8c005a..74c96a9 100644 --- a/tests/test-ccl/test.input +++ b/tests/test-ccl/test.input @@ -8,3 +8,8 @@ ^punct:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEF Z@punct@ ^cntrl:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEF~!@#$%^&*(){}[]':;"<>,./?\+=_-`@cntrl@ ^xdigit:ghijklmnopqrstuvwxyzGHIJKLMNOPQRSTUVWXYZ ~!@#$%^&*(){}[]':;"<>,./?\+=_-`@xdigit@ +a-d:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@a-d@ +l-xyz:abcdefghijklmnopqrstuvw@l-xyz@ +abcd-bc:aaaaddddaaaa@abcd-bc@ +abcde-b-c:aaaaddddeeee@abcde-b-c@ +^XY-^XYZ:ZZZZZZZZZZZ@^XY-^XYZ@ -- cgit v1.2.3