/****************************************************************

 File: topdown_recognizer_test.pl

 Patrick Blackburn, 1999.
 Kristina Striegnitz, 2002.

 This file contains examples for testing the top-down
 recognizer for CFGs defined in topdown_recognizer.pl.

****************************************************************/

%----------------------------------------
%
% The first group is for working with the
% grammar ourEng, a small English grammar
%--------------------------------------- 

% Positive examples --- should be accepted

recognize_topdown([vincent,fell]).

recognize_topdown([vincent,loved,mia]).

recognize_topdown([vincent,knew,mia]).

recognize_topdown([vincent,knew,mia,fell]).

recognize_topdown([vincent,knew,mia,knew,vincent]).

recognize_topdown([mia,knew,vincent,shot,marsellus]).

recognize_topdown([jules,believed,the,robber,shot,marsellus]).

recognize_topdown([jules,handed,vincent,to,mia]).

recognize_topdown([jules,handed,the,gun,to,marsellus]).

recognize_topdown([the,robber,who,shot,marsellus,fell]).

recognize_topdown([jules,believed,the,robber,who,shot,the,robber,fell]).

recognize_topdown([jules,believed,the,robber,who,shot,the,robber,who,shot,marsellus,fell]).

/*** Following should be rejected because of mispelling (`fell' is
 written `felll'). Recall that the naive bottom up recognizer takes a
 long time on the second two examples. The top down program is much
 better. ***/

recognize_topdown([jules,knew,the,robber,felll]).

recognize_topdown([jules,knew,the,robber,who,felll]).

recognize_topdown([jules,believed,the,robber,who,shot,marsellus,felll]).


%----------------------------------------
%
% The second  group is for working with the
% grammar aNbN.pl, which generates the formal
% language a^nb^n\{}.
%--------------------------------------- 

% Positive examples --- should be accepted

recognize_topdown([a,b]).

recognize_topdown([a,a,b,b]).

recognize_topdown([a,a,a,b,b,b]).

recognize_topdown([a,a,a,a,b,b,b,b]).

recognize_topdown([a,a,a,a,a,b,b,b,b,b]).

recognize_topdown([a,a,a,a,a,a,a,a,a,a,b,b,b,b,b,b,b,b,b,b]).

% Negative examples --- should not be accepted

recognize_topdown([a,a,a,a,a,b]).

recognize_topdown([a,a,a,a,a,b,b,b,b]).

recognize_topdown([a,a,a,a,a,b,b,b,b,b,b,b,b,b,b,b,b]).

/**********************************************************************
                    That's all, folks!
***********************************************************************/

