From 1b8943a8e0476d7f68542924b3a3079dc1d2d361 Mon Sep 17 00:00:00 2001 From: Chris Double Date: Mon, 16 Jun 2008 17:39:14 +1200 Subject: [PATCH] Add failing peg.ebnf tests --- extra/peg/ebnf/ebnf-tests.factor | 33 ++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/extra/peg/ebnf/ebnf-tests.factor b/extra/peg/ebnf/ebnf-tests.factor index faaa63f4bd..425c05f391 100644 --- a/extra/peg/ebnf/ebnf-tests.factor +++ b/extra/peg/ebnf/ebnf-tests.factor @@ -365,3 +365,36 @@ main = Primary "ab c ab c" [EBNF a="a" "b" foo=(a "c")* EBNF] call ast>> ] unit-test +{ V{ "a" "a" "a" } } [ + "aaa" [EBNF a=('a')* b=!('b') a:x => [[ drop x ]] EBNF] call ast>> +] unit-test + +{ t } [ + "aaa" [EBNF a=('a')* b=!('b') a:x => [[ drop x ]] EBNF] call ast>> + "aaa" [EBNF a=('a')* b=!('b') (a):x => [[ drop x ]] EBNF] call ast>> = +] unit-test + +{ V{ "a" "a" "a" } } [ + "aaa" [EBNF a=('a')* b=a:x => [[ drop x ]] EBNF] call ast>> +] unit-test + +{ t } [ + "aaa" [EBNF a=('a')* b=a:x => [[ drop x ]] EBNF] call ast>> + "aaa" [EBNF a=('a')* b=(a):x => [[ drop x ]] EBNF] call ast>> = +] unit-test + +{ t } [ + "number=(digit)+:n 'a'" 'ebnf' parse remaining>> length zero? +] unit-test + +{ t } [ + "number=(digit)+ 'a'" 'ebnf' parse remaining>> length zero? +] unit-test + +{ t } [ + "number=digit+ 'a'" 'ebnf' parse remaining>> length zero? +] unit-test + +{ t } [ + "number=digit+:n 'a'" 'ebnf' parse remaining>> length zero? +] unit-test \ No newline at end of file