% SHIFTTRACE.TXT % This file contains traces of a PROPS version of the shift-reduce % grammar, shown as paraphrased rules in shift.txt, on the eight % test sentences. Each trace shows the input sentence, the name % of the rule that fires on each cycle, along with the stack and % buffer elements after it applies. Each run ends with a successful % parse that the system displays. % Your program should fire rules with the same names in the same % order to parse the test sentences in the same number of cycles, % and it should produce the same parse trees at the end. These % detailed traces should help you debug your program, since they % will let you know immediately if the system is going astray. > swipl Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 6.4.1) Copyright (c) 1990-2013 University of Amsterdam, VU Amsterdam SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. Please visit http://www.swi-prolog.org for details. For help, use ?- help(Topic). or ?- apropos(Word). ?- consult(props). % props compiled 0.00 sec, 52 clauses true. ?- consult(rules). % rules compiled 0.00 sec, 37 clauses true. ?- consult(wm). % wm compiled 0.01 sec, 116 clauses true. ?- wm_trace(buffer(_)), wm_trace(stack(_)). true. ?- run. * stack([]) * buffer([]) -------- Cycle 1 / ask_for_input What is the next sentence? |: [john, can, dance]. * stack([[s]]) * buffer([john,can,dance]) -------- Cycle 2 / create_NP_in_S_for_N * stack([[np],[s]]) * buffer([john,can,dance]) -------- Cycle 3 / attach_N_to_NP * stack([[np,[noun,john]],[s]]) * buffer([can,dance]) -------- Cycle 4 / drop_NP_for_AUX * stack([[s]]) * buffer([[np,[noun,john]],can,dance]) -------- Cycle 5 / attach_NP_to_S_for_AUX * stack([[s,[np,[noun,john]]]]) * buffer([can,dance]) -------- Cycle 6 / create_VP_in_S_for_AUX * stack([[vp],[s,[np,[noun,john]]]]) * buffer([can,dance]) -------- Cycle 7 / attach_AUX_and_V_to_VP * stack([[vp,[aux,can],[verb,dance]],[s,[np,[noun,john]]]]) * buffer([]) -------- Cycle 8 / drop_node_into_empty_buffer * stack([[s,[np,[noun,john]]]]) * buffer([[vp,[aux,can],[verb,dance]]]) -------- Cycle 9 / attach_VP_to_S * stack([[s,[np,[noun,john]],[vp,[aux,can],[verb,dance]]]]) * buffer([]) -------- Cycle 10 / successful_parse Success! The parse tree is: [s,[np,[noun,john]],[vp,[aux,can],[verb,dance]]] * stack([]) * buffer([]) -------- true. ?- run. * stack([]) * buffer([]) -------- Cycle 1 / ask_for_input What is the next sentence? |: [the, cat, ran]. * stack([[s]]) * buffer([the,cat,ran]) -------- Cycle 2 / create_NP_in_S_for_D * stack([[np],[s]]) * buffer([the,cat,ran]) -------- Cycle 3 / attach_D_to_NP * stack([[np,[det,the]],[s]]) * buffer([cat,ran]) -------- Cycle 4 / attach_N_to_NP * stack([[np,[det,the],[noun,cat]],[s]]) * buffer([ran]) -------- Cycle 5 / drop_NP_for_V * stack([[s]]) * buffer([[np,[det,the],[noun,cat]],ran]) -------- Cycle 6 / attach_NP_to_S_for_V * stack([[s,[np,[det,the],[noun,cat]]]]) * buffer([ran]) -------- Cycle 7 / create_VP_in_S_for_V * stack([[vp],[s,[np,[det,the],[noun,cat]]]]) * buffer([ran]) -------- Cycle 8 / attach_V_to_VP * stack([[vp,[verb,ran]],[s,[np,[det,the],[noun,cat]]]]) * buffer([]) -------- Cycle 9 / drop_node_into_empty_buffer * stack([[s,[np,[det,the],[noun,cat]]]]) * buffer([[vp,[verb,ran]]]) -------- Cycle 10 / attach_VP_to_S * stack([[s,[np,[det,the],[noun,cat]],[vp,[verb,ran]]]]) * buffer([]) -------- Cycle 11 / successful_parse Success! The parse tree is: [s,[np,[det,the],[noun,cat]],[vp,[verb,ran]]] * stack([]) * buffer([]) -------- true. ?- run. * stack([]) * buffer([]) -------- Cycle 1 / ask_for_input What is the next sentence? |: [the, big, black, cat, chased, a, small, mouse]. * stack([[s]]) * buffer([the,big,black,cat,chased,a,small,mouse]) -------- Cycle 2 / create_NP_in_S_for_D * stack([[np],[s]]) * buffer([the,big,black,cat,chased,a,small,mouse]) -------- Cycle 3 / attach_D_to_NP * stack([[np,[det,the]],[s]]) * buffer([big,black,cat,chased,a,small,mouse]) -------- Cycle 4 / create_AP_in_NP_for_ADJ * stack([[ap],[np,[det,the]],[s]]) * buffer([big,black,cat,chased,a,small,mouse]) -------- Cycle 5 / attach_ADJ_to_AP * stack([[ap,[adj,big]],[np,[det,the]],[s]]) * buffer([black,cat,chased,a,small,mouse]) -------- Cycle 6 / attach_ADJ_to_AP * stack([[ap,[adj,big],[adj,black]],[np,[det,the]],[s]]) * buffer([cat,chased,a,small,mouse]) -------- Cycle 7 / drop_AP_for_N * stack([[np,[det,the]],[s]]) * buffer([[ap,[adj,big],[adj,black]],cat,chased,a,small,mouse]) -------- Cycle 8 / attach_AP_to_NP * stack([[np,[det,the],[ap,[adj,big],[adj,black]]],[s]]) * buffer([cat,chased,a,small,mouse]) -------- Cycle 9 / attach_N_to_NP * stack([[np,[det,the],[ap,[adj,big],[adj,black]],[noun,cat]],[s]]) * buffer([chased,a,small,mouse]) -------- Cycle 10 / drop_NP_for_V * stack([[s]]) * buffer([[np,[det,the],[ap,[adj,big],[adj,black]],[noun,cat]],chased,a,small,mouse]) -------- Cycle 11 / attach_NP_to_S_for_V * stack([[s,[np,[det,the],[ap,[adj,big],[adj,black]],[noun,cat]]]]) * buffer([chased,a,small,mouse]) -------- Cycle 12 / create_VP_in_S_for_V * stack([[vp],[s,[np,[det,the],[ap,[adj,big],[adj,black]],[noun,cat]]]]) * buffer([chased,a,small,mouse]) -------- Cycle 13 / attach_V_to_VP * stack([[vp,[verb,chased]],[s,[np,[det,the],[ap,[adj,big],[adj,black]],[noun,cat]]]]) * buffer([a,small,mouse]) -------- Cycle 14 / create_NP_in_VP_for_D * stack([[np],[vp,[verb,chased]],[s,[np,[det,the],[ap,[adj,big],[adj,black]],[noun,cat]]]]) * buffer([a,small,mouse]) -------- Cycle 15 / attach_D_to_NP * stack([[np,[det,a]],[vp,[verb,chased]],[s,[np,[det,the],[ap,[adj,big],[adj,black]],[noun,cat]]]]) * buffer([small,mouse]) -------- Cycle 16 / create_AP_in_NP_for_ADJ * stack([[ap],[np,[det,a]],[vp,[verb,chased]],[s,[np,[det,the],[ap,[adj,big],[adj,black]],[noun,cat]]]]) * buffer([small,mouse]) -------- Cycle 17 / attach_ADJ_to_AP * stack([[ap,[adj,small]],[np,[det,a]],[vp,[verb,chased]],[s,[np,[det,the],[ap,[adj,big],[adj,black]],[noun,cat]]]]) * buffer([mouse]) -------- Cycle 18 / drop_AP_for_N * stack([[np,[det,a]],[vp,[verb,chased]],[s,[np,[det,the],[ap,[adj,big],[adj,black]],[noun,cat]]]]) * buffer([[ap,[adj,small]],mouse]) -------- Cycle 19 / attach_AP_to_NP * stack([[np,[det,a],[ap,[adj,small]]],[vp,[verb,chased]],[s,[np,[det,the],[ap,[adj,big],[adj,black]],[noun,cat]]]]) * buffer([mouse]) -------- Cycle 20 / attach_N_to_NP * stack([[np,[det,a],[ap,[adj,small]],[noun,mouse]],[vp,[verb,chased]],[s,[np,[det,the],[ap,[adj,big],[adj,black]],[noun,cat]]]]) * buffer([]) -------- Cycle 21 / drop_node_into_empty_buffer * stack([[vp,[verb,chased]],[s,[np,[det,the],[ap,[adj,big],[adj,black]],[noun,cat]]]]) * buffer([[np,[det,a],[ap,[adj,small]],[noun,mouse]]]) -------- Cycle 22 / attach_NP_to_VP * stack([[vp,[verb,chased],[np,[det,a],[ap,[adj,small]],[noun,mouse]]],[s,[np,[det,the],[ap,[adj,big],[adj,black]],[noun,cat]]]]) * buffer([]) -------- Cycle 23 / drop_node_into_empty_buffer * stack([[s,[np,[det,the],[ap,[adj,big],[adj,black]],[noun,cat]]]]) * buffer([[vp,[verb,chased],[np,[det,a],[ap,[adj,small]],[noun,mouse]]]]) -------- Cycle 24 / attach_VP_to_S * stack([[s,[np,[det,the],[ap,[adj,big],[adj,black]],[noun,cat]],[vp,[verb,chased],[np,[det,a],[ap,[adj,small]],[noun,mouse]]]]]) * buffer([]) -------- Cycle 25 / successful_parse Success! The parse tree is: [s,[np,[det,the],[ap,[adj,big],[adj,black]],[noun,cat]],[vp,[verb,chased],[np,[det,a],[ap,[adj,small]],[noun,mouse]]]] * stack([]) * buffer([]) -------- true. ?- run. * stack([]) * buffer([]) -------- Cycle 1 / ask_for_input What is the next sentence? |: [some, hungry, mice, plan, a, heist]. * stack([[s]]) * buffer([some,hungry,mice,plan,a,heist]) -------- Cycle 2 / create_NP_in_S_for_D * stack([[np],[s]]) * buffer([some,hungry,mice,plan,a,heist]) -------- Cycle 3 / attach_D_to_NP * stack([[np,[det,some]],[s]]) * buffer([hungry,mice,plan,a,heist]) -------- Cycle 4 / create_AP_in_NP_for_ADJ * stack([[ap],[np,[det,some]],[s]]) * buffer([hungry,mice,plan,a,heist]) -------- Cycle 5 / attach_ADJ_to_AP * stack([[ap,[adj,hungry]],[np,[det,some]],[s]]) * buffer([mice,plan,a,heist]) -------- Cycle 6 / drop_AP_for_N * stack([[np,[det,some]],[s]]) * buffer([[ap,[adj,hungry]],mice,plan,a,heist]) -------- Cycle 7 / attach_AP_to_NP * stack([[np,[det,some],[ap,[adj,hungry]]],[s]]) * buffer([mice,plan,a,heist]) -------- Cycle 8 / attach_N_to_NP * stack([[np,[det,some],[ap,[adj,hungry]],[noun,mice]],[s]]) * buffer([plan,a,heist]) -------- Cycle 9 / drop_NP_for_V * stack([[s]]) * buffer([[np,[det,some],[ap,[adj,hungry]],[noun,mice]],plan,a,heist]) -------- Cycle 10 / attach_NP_to_S_for_V * stack([[s,[np,[det,some],[ap,[adj,hungry]],[noun,mice]]]]) * buffer([plan,a,heist]) -------- Cycle 11 / create_VP_in_S_for_V * stack([[vp],[s,[np,[det,some],[ap,[adj,hungry]],[noun,mice]]]]) * buffer([plan,a,heist]) -------- Cycle 12 / attach_V_to_VP * stack([[vp,[verb,plan]],[s,[np,[det,some],[ap,[adj,hungry]],[noun,mice]]]]) * buffer([a,heist]) -------- Cycle 13 / create_NP_in_VP_for_D * stack([[np],[vp,[verb,plan]],[s,[np,[det,some],[ap,[adj,hungry]],[noun,mice]]]]) * buffer([a,heist]) -------- Cycle 14 / attach_D_to_NP * stack([[np,[det,a]],[vp,[verb,plan]],[s,[np,[det,some],[ap,[adj,hungry]],[noun,mice]]]]) * buffer([heist]) -------- Cycle 15 / attach_N_to_NP * stack([[np,[det,a],[noun,heist]],[vp,[verb,plan]],[s,[np,[det,some],[ap,[adj,hungry]],[noun,mice]]]]) * buffer([]) -------- Cycle 16 / drop_node_into_empty_buffer * stack([[vp,[verb,plan]],[s,[np,[det,some],[ap,[adj,hungry]],[noun,mice]]]]) * buffer([[np,[det,a],[noun,heist]]]) -------- Cycle 17 / attach_NP_to_VP * stack([[vp,[verb,plan],[np,[det,a],[noun,heist]]],[s,[np,[det,some],[ap,[adj,hungry]],[noun,mice]]]]) * buffer([]) -------- Cycle 18 / drop_node_into_empty_buffer * stack([[s,[np,[det,some],[ap,[adj,hungry]],[noun,mice]]]]) * buffer([[vp,[verb,plan],[np,[det,a],[noun,heist]]]]) -------- Cycle 19 / attach_VP_to_S * stack([[s,[np,[det,some],[ap,[adj,hungry]],[noun,mice]],[vp,[verb,plan],[np,[det,a],[noun,heist]]]]]) * buffer([]) -------- Cycle 20 / successful_parse Success! The parse tree is: [s,[np,[det,some],[ap,[adj,hungry]],[noun,mice]],[vp,[verb,plan],[np,[det,a],[noun,heist]]]] * stack([]) * buffer([]) -------- true. ?- run. * stack([]) * buffer([]) -------- Cycle 1 / ask_for_input What is the next sentence? |: [a, cat, pounces, on, a, ball]. * stack([[s]]) * buffer([a,cat,pounces,on,a,ball]) -------- Cycle 2 / create_NP_in_S_for_D * stack([[np],[s]]) * buffer([a,cat,pounces,on,a,ball]) -------- Cycle 3 / attach_D_to_NP * stack([[np,[det,a]],[s]]) * buffer([cat,pounces,on,a,ball]) -------- Cycle 4 / attach_N_to_NP * stack([[np,[det,a],[noun,cat]],[s]]) * buffer([pounces,on,a,ball]) -------- Cycle 5 / drop_NP_for_V * stack([[s]]) * buffer([[np,[det,a],[noun,cat]],pounces,on,a,ball]) -------- Cycle 6 / attach_NP_to_S_for_V * stack([[s,[np,[det,a],[noun,cat]]]]) * buffer([pounces,on,a,ball]) -------- Cycle 7 / create_VP_in_S_for_V * stack([[vp],[s,[np,[det,a],[noun,cat]]]]) * buffer([pounces,on,a,ball]) -------- Cycle 8 / attach_V_to_VP * stack([[vp,[verb,pounces]],[s,[np,[det,a],[noun,cat]]]]) * buffer([on,a,ball]) -------- Cycle 9 / create_PP_in_VP * stack([[pp],[vp,[verb,pounces]],[s,[np,[det,a],[noun,cat]]]]) * buffer([on,a,ball]) -------- Cycle 10 / attach_P_to_PP * stack([[pp,[prep,on]],[vp,[verb,pounces]],[s,[np,[det,a],[noun,cat]]]]) * buffer([a,ball]) -------- Cycle 11 / create_NP_in_PP_for_D * stack([[np],[pp,[prep,on]],[vp,[verb,pounces]],[s,[np,[det,a],[noun,cat]]]]) * buffer([a,ball]) -------- Cycle 12 / attach_D_to_NP * stack([[np,[det,a]],[pp,[prep,on]],[vp,[verb,pounces]],[s,[np,[det,a],[noun,cat]]]]) * buffer([ball]) -------- Cycle 13 / attach_N_to_NP * stack([[np,[det,a],[noun,ball]],[pp,[prep,on]],[vp,[verb,pounces]],[s,[np,[det,a],[noun,cat]]]]) * buffer([]) -------- Cycle 14 / drop_node_into_empty_buffer * stack([[pp,[prep,on]],[vp,[verb,pounces]],[s,[np,[det,a],[noun,cat]]]]) * buffer([[np,[det,a],[noun,ball]]]) -------- Cycle 15 / attach_NP_to_PP_and_drop_PP * stack([[vp,[verb,pounces]],[s,[np,[det,a],[noun,cat]]]]) * buffer([[pp,[prep,on],[np,[det,a],[noun,ball]]]]) -------- Cycle 16 / attach_PP_to_VP * stack([[vp,[verb,pounces],[pp,[prep,on],[np,[det,a],[noun,ball]]]],[s,[np,[det,a],[noun,cat]]]]) * buffer([]) -------- Cycle 17 / drop_node_into_empty_buffer * stack([[s,[np,[det,a],[noun,cat]]]]) * buffer([[vp,[verb,pounces],[pp,[prep,on],[np,[det,a],[noun,ball]]]]]) -------- Cycle 18 / attach_VP_to_S * stack([[s,[np,[det,a],[noun,cat]],[vp,[verb,pounces],[pp,[prep,on],[np,[det,a],[noun,ball]]]]]]) * buffer([]) -------- Cycle 19 / successful_parse Success! The parse tree is: [s,[np,[det,a],[noun,cat]],[vp,[verb,pounces],[pp,[prep,on],[np,[det,a],[noun,ball]]]]] * stack([]) * buffer([]) -------- true. ?- run. * stack([]) * buffer([]) -------- Cycle 1 / ask_for_input What is the next sentence? |: [the, black, cat, was, on, the, big, table]. * stack([[s]]) * buffer([the,black,cat,was,on,the,big,table]) -------- Cycle 2 / create_NP_in_S_for_D * stack([[np],[s]]) * buffer([the,black,cat,was,on,the,big,table]) -------- Cycle 3 / attach_D_to_NP * stack([[np,[det,the]],[s]]) * buffer([black,cat,was,on,the,big,table]) -------- Cycle 4 / create_AP_in_NP_for_ADJ * stack([[ap],[np,[det,the]],[s]]) * buffer([black,cat,was,on,the,big,table]) -------- Cycle 5 / attach_ADJ_to_AP * stack([[ap,[adj,black]],[np,[det,the]],[s]]) * buffer([cat,was,on,the,big,table]) -------- Cycle 6 / drop_AP_for_N * stack([[np,[det,the]],[s]]) * buffer([[ap,[adj,black]],cat,was,on,the,big,table]) -------- Cycle 7 / attach_AP_to_NP * stack([[np,[det,the],[ap,[adj,black]]],[s]]) * buffer([cat,was,on,the,big,table]) -------- Cycle 8 / attach_N_to_NP * stack([[np,[det,the],[ap,[adj,black]],[noun,cat]],[s]]) * buffer([was,on,the,big,table]) -------- Cycle 9 / drop_NP_for_V * stack([[s]]) * buffer([[np,[det,the],[ap,[adj,black]],[noun,cat]],was,on,the,big,table]) -------- Cycle 10 / attach_NP_to_S_for_V * stack([[s,[np,[det,the],[ap,[adj,black]],[noun,cat]]]]) * buffer([was,on,the,big,table]) -------- Cycle 11 / create_VP_in_S_for_V * stack([[vp],[s,[np,[det,the],[ap,[adj,black]],[noun,cat]]]]) * buffer([was,on,the,big,table]) -------- Cycle 12 / attach_V_to_VP * stack([[vp,[verb,was]],[s,[np,[det,the],[ap,[adj,black]],[noun,cat]]]]) * buffer([on,the,big,table]) -------- Cycle 13 / create_PP_in_VP * stack([[pp],[vp,[verb,was]],[s,[np,[det,the],[ap,[adj,black]],[noun,cat]]]]) * buffer([on,the,big,table]) -------- Cycle 14 / attach_P_to_PP * stack([[pp,[prep,on]],[vp,[verb,was]],[s,[np,[det,the],[ap,[adj,black]],[noun,cat]]]]) * buffer([the,big,table]) -------- Cycle 15 / create_NP_in_PP_for_D * stack([[np],[pp,[prep,on]],[vp,[verb,was]],[s,[np,[det,the],[ap,[adj,black]],[noun,cat]]]]) * buffer([the,big,table]) -------- Cycle 16 / attach_D_to_NP * stack([[np,[det,the]],[pp,[prep,on]],[vp,[verb,was]],[s,[np,[det,the],[ap,[adj,black]],[noun,cat]]]]) * buffer([big,table]) -------- Cycle 17 / create_AP_in_NP_for_ADJ * stack([[ap],[np,[det,the]],[pp,[prep,on]],[vp,[verb,was]],[s,[np,[det,the],[ap,[adj,black]],[noun,cat]]]]) * buffer([big,table]) -------- Cycle 18 / attach_ADJ_to_AP * stack([[ap,[adj,big]],[np,[det,the]],[pp,[prep,on]],[vp,[verb,was]],[s,[np,[det,the],[ap,[adj,black]],[noun,cat]]]]) * buffer([table]) -------- Cycle 19 / drop_AP_for_N * stack([[np,[det,the]],[pp,[prep,on]],[vp,[verb,was]],[s,[np,[det,the],[ap,[adj,black]],[noun,cat]]]]) * buffer([[ap,[adj,big]],table]) -------- Cycle 20 / attach_AP_to_NP * stack([[np,[det,the],[ap,[adj,big]]],[pp,[prep,on]],[vp,[verb,was]],[s,[np,[det,the],[ap,[adj,black]],[noun,cat]]]]) * buffer([table]) -------- Cycle 21 / attach_N_to_NP * stack([[np,[det,the],[ap,[adj,big]],[noun,table]],[pp,[prep,on]],[vp,[verb,was]],[s,[np,[det,the],[ap,[adj,black]],[noun,cat]]]]) * buffer([]) -------- Cycle 22 / drop_node_into_empty_buffer * stack([[pp,[prep,on]],[vp,[verb,was]],[s,[np,[det,the],[ap,[adj,black]],[noun,cat]]]]) * buffer([[np,[det,the],[ap,[adj,big]],[noun,table]]]) -------- Cycle 23 / attach_NP_to_PP_and_drop_PP * stack([[vp,[verb,was]],[s,[np,[det,the],[ap,[adj,black]],[noun,cat]]]]) * buffer([[pp,[prep,on],[np,[det,the],[ap,[adj,big]],[noun,table]]]]) -------- Cycle 24 / attach_PP_to_VP * stack([[vp,[verb,was],[pp,[prep,on],[np,[det,the],[ap,[adj,big]],[noun,table]]]],[s,[np,[det,the],[ap,[adj,black]],[noun,cat]]]]) * buffer([]) -------- Cycle 25 / drop_node_into_empty_buffer * stack([[s,[np,[det,the],[ap,[adj,black]],[noun,cat]]]]) * buffer([[vp,[verb,was],[pp,[prep,on],[np,[det,the],[ap,[adj,big]],[noun,table]]]]]) -------- Cycle 26 / attach_VP_to_S * stack([[s,[np,[det,the],[ap,[adj,black]],[noun,cat]],[vp,[verb,was],[pp,[prep,on],[np,[det,the],[ap,[adj,big]],[noun,table]]]]]]) * buffer([]) -------- Cycle 27 / successful_parse Success! The parse tree is: [s,[np,[det,the],[ap,[adj,black]],[noun,cat]],[vp,[verb,was],[pp,[prep,on],[np,[det,the],[ap,[adj,big]],[noun,table]]]]] * stack([]) * buffer([]) -------- true. ?- run. * stack([]) * buffer([]) -------- Cycle 1 / ask_for_input What is the next sentence? |: [a, black, cat, chased, the, ball, under, the, table]. * stack([[s]]) * buffer([a,black,cat,chased,the,ball,under,the,table]) -------- Cycle 2 / create_NP_in_S_for_D * stack([[np],[s]]) * buffer([a,black,cat,chased,the,ball,under,the,table]) -------- Cycle 3 / attach_D_to_NP * stack([[np,[det,a]],[s]]) * buffer([black,cat,chased,the,ball,under,the,table]) -------- Cycle 4 / create_AP_in_NP_for_ADJ * stack([[ap],[np,[det,a]],[s]]) * buffer([black,cat,chased,the,ball,under,the,table]) -------- Cycle 5 / attach_ADJ_to_AP * stack([[ap,[adj,black]],[np,[det,a]],[s]]) * buffer([cat,chased,the,ball,under,the,table]) -------- Cycle 6 / drop_AP_for_N * stack([[np,[det,a]],[s]]) * buffer([[ap,[adj,black]],cat,chased,the,ball,under,the,table]) -------- Cycle 7 / attach_AP_to_NP * stack([[np,[det,a],[ap,[adj,black]]],[s]]) * buffer([cat,chased,the,ball,under,the,table]) -------- Cycle 8 / attach_N_to_NP * stack([[np,[det,a],[ap,[adj,black]],[noun,cat]],[s]]) * buffer([chased,the,ball,under,the,table]) -------- Cycle 9 / drop_NP_for_V * stack([[s]]) * buffer([[np,[det,a],[ap,[adj,black]],[noun,cat]],chased,the,ball,under,the,table]) -------- Cycle 10 / attach_NP_to_S_for_V * stack([[s,[np,[det,a],[ap,[adj,black]],[noun,cat]]]]) * buffer([chased,the,ball,under,the,table]) -------- Cycle 11 / create_VP_in_S_for_V * stack([[vp],[s,[np,[det,a],[ap,[adj,black]],[noun,cat]]]]) * buffer([chased,the,ball,under,the,table]) -------- Cycle 12 / attach_V_to_VP * stack([[vp,[verb,chased]],[s,[np,[det,a],[ap,[adj,black]],[noun,cat]]]]) * buffer([the,ball,under,the,table]) -------- Cycle 13 / create_NP_in_VP_for_D * stack([[np],[vp,[verb,chased]],[s,[np,[det,a],[ap,[adj,black]],[noun,cat]]]]) * buffer([the,ball,under,the,table]) -------- Cycle 14 / attach_D_to_NP * stack([[np,[det,the]],[vp,[verb,chased]],[s,[np,[det,a],[ap,[adj,black]],[noun,cat]]]]) * buffer([ball,under,the,table]) -------- Cycle 15 / attach_N_to_NP * stack([[np,[det,the],[noun,ball]],[vp,[verb,chased]],[s,[np,[det,a],[ap,[adj,black]],[noun,cat]]]]) * buffer([under,the,table]) -------- Cycle 16 / create_PP_for_NP * stack([[pp],[np,[det,the],[noun,ball]],[vp,[verb,chased]],[s,[np,[det,a],[ap,[adj,black]],[noun,cat]]]]) * buffer([under,the,table]) -------- Cycle 17 / attach_P_to_PP * stack([[pp,[prep,under]],[np,[det,the],[noun,ball]],[vp,[verb,chased]],[s,[np,[det,a],[ap,[adj,black]],[noun,cat]]]]) * buffer([the,table]) -------- Cycle 18 / create_NP_in_PP_for_D * stack([[np],[pp,[prep,under]],[np,[det,the],[noun,ball]],[vp,[verb,chased]],[s,[np,[det,a],[ap,[adj,black]],[noun,cat]]]]) * buffer([the,table]) -------- Cycle 19 / attach_D_to_NP * stack([[np,[det,the]],[pp,[prep,under]],[np,[det,the],[noun,ball]],[vp,[verb,chased]],[s,[np,[det,a],[ap,[adj,black]],[noun,cat]]]]) * buffer([table]) -------- Cycle 20 / attach_N_to_NP * stack([[np,[det,the],[noun,table]],[pp,[prep,under]],[np,[det,the],[noun,ball]],[vp,[verb,chased]],[s,[np,[det,a],[ap,[adj,black]],[noun,cat]]]]) * buffer([]) -------- Cycle 21 / drop_node_into_empty_buffer * stack([[pp,[prep,under]],[np,[det,the],[noun,ball]],[vp,[verb,chased]],[s,[np,[det,a],[ap,[adj,black]],[noun,cat]]]]) * buffer([[np,[det,the],[noun,table]]]) -------- Cycle 22 / attach_NP_to_PP_and_drop_PP * stack([[np,[det,the],[noun,ball]],[vp,[verb,chased]],[s,[np,[det,a],[ap,[adj,black]],[noun,cat]]]]) * buffer([[pp,[prep,under],[np,[det,the],[noun,table]]]]) -------- Cycle 23 / attach_PP_to_NP * stack([[np,[det,the],[noun,ball],[pp,[prep,under],[np,[det,the],[noun,table]]]],[vp,[verb,chased]],[s,[np,[det,a],[ap,[adj,black]],[noun,cat]]]]) * buffer([]) -------- Cycle 24 / drop_node_into_empty_buffer * stack([[vp,[verb,chased]],[s,[np,[det,a],[ap,[adj,black]],[noun,cat]]]]) * buffer([[np,[det,the],[noun,ball],[pp,[prep,under],[np,[det,the],[noun,table]]]]]) -------- Cycle 25 / attach_NP_to_VP * stack([[vp,[verb,chased],[np,[det,the],[noun,ball],[pp,[prep,under],[np,[det,the],[noun,table]]]]],[s,[np,[det,a],[ap,[adj,black]],[noun,cat]]]]) * buffer([]) -------- Cycle 26 / drop_node_into_empty_buffer * stack([[s,[np,[det,a],[ap,[adj,black]],[noun,cat]]]]) * buffer([[vp,[verb,chased],[np,[det,the],[noun,ball],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) -------- Cycle 27 / attach_VP_to_S * stack([[s,[np,[det,a],[ap,[adj,black]],[noun,cat]],[vp,[verb,chased],[np,[det,the],[noun,ball],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]]) * buffer([]) -------- Cycle 28 / successful_parse Success! The parse tree is: [s,[np,[det,a],[ap,[adj,black]],[noun,cat]],[vp,[verb,chased],[np,[det,the],[noun,ball],[pp,[prep,under],[np,[det,the],[noun,table]]]]]] * stack([]) * buffer([]) -------- true. ?- run. * stack([]) * buffer([]) -------- Cycle 1 / ask_for_input What is the next sentence? |: [the, eager, frog, under, the, table, may, meditate, on, the, problem, throughout, the, night, despite, the, poisonous, fumes]. * stack([[s]]) * buffer([the,eager,frog,under,the,table,may,meditate,on,the,problem,throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 2 / create_NP_in_S_for_D * stack([[np],[s]]) * buffer([the,eager,frog,under,the,table,may,meditate,on,the,problem,throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 3 / attach_D_to_NP * stack([[np,[det,the]],[s]]) * buffer([eager,frog,under,the,table,may,meditate,on,the,problem,throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 4 / create_AP_in_NP_for_ADJ * stack([[ap],[np,[det,the]],[s]]) * buffer([eager,frog,under,the,table,may,meditate,on,the,problem,throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 5 / attach_ADJ_to_AP * stack([[ap,[adj,eager]],[np,[det,the]],[s]]) * buffer([frog,under,the,table,may,meditate,on,the,problem,throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 6 / drop_AP_for_N * stack([[np,[det,the]],[s]]) * buffer([[ap,[adj,eager]],frog,under,the,table,may,meditate,on,the,problem,throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 7 / attach_AP_to_NP * stack([[np,[det,the],[ap,[adj,eager]]],[s]]) * buffer([frog,under,the,table,may,meditate,on,the,problem,throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 8 / attach_N_to_NP * stack([[np,[det,the],[ap,[adj,eager]],[noun,frog]],[s]]) * buffer([under,the,table,may,meditate,on,the,problem,throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 9 / create_PP_for_NP * stack([[pp],[np,[det,the],[ap,[adj,eager]],[noun,frog]],[s]]) * buffer([under,the,table,may,meditate,on,the,problem,throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 10 / attach_P_to_PP * stack([[pp,[prep,under]],[np,[det,the],[ap,[adj,eager]],[noun,frog]],[s]]) * buffer([the,table,may,meditate,on,the,problem,throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 11 / create_NP_in_PP_for_D * stack([[np],[pp,[prep,under]],[np,[det,the],[ap,[adj,eager]],[noun,frog]],[s]]) * buffer([the,table,may,meditate,on,the,problem,throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 12 / attach_D_to_NP * stack([[np,[det,the]],[pp,[prep,under]],[np,[det,the],[ap,[adj,eager]],[noun,frog]],[s]]) * buffer([table,may,meditate,on,the,problem,throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 13 / attach_N_to_NP * stack([[np,[det,the],[noun,table]],[pp,[prep,under]],[np,[det,the],[ap,[adj,eager]],[noun,frog]],[s]]) * buffer([may,meditate,on,the,problem,throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 14 / drop_NP_for_AUX * stack([[pp,[prep,under]],[np,[det,the],[ap,[adj,eager]],[noun,frog]],[s]]) * buffer([[np,[det,the],[noun,table]],may,meditate,on,the,problem,throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 15 / attach_NP_to_PP_and_drop_PP * stack([[np,[det,the],[ap,[adj,eager]],[noun,frog]],[s]]) * buffer([[pp,[prep,under],[np,[det,the],[noun,table]]],may,meditate,on,the,problem,throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 16 / attach_PP_to_NP * stack([[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]],[s]]) * buffer([may,meditate,on,the,problem,throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 17 / drop_NP_for_AUX * stack([[s]]) * buffer([[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]],may,meditate,on,the,problem,throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 18 / attach_NP_to_S_for_AUX * stack([[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([may,meditate,on,the,problem,throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 19 / create_VP_in_S_for_AUX * stack([[vp],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([may,meditate,on,the,problem,throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 20 / attach_AUX_and_V_to_VP * stack([[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([on,the,problem,throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 21 / create_PP_in_VP * stack([[pp],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([on,the,problem,throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 22 / attach_P_to_PP * stack([[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([the,problem,throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 23 / create_NP_in_PP_for_D * stack([[np],[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([the,problem,throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 24 / attach_D_to_NP * stack([[np,[det,the]],[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([problem,throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 25 / attach_N_to_NP * stack([[np,[det,the],[noun,problem]],[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 26 / create_PP_for_NP * stack([[pp],[np,[det,the],[noun,problem]],[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([throughout,the,night,despite,the,poisonous,fumes]) -------- Cycle 27 / attach_P_to_PP * stack([[pp,[prep,throughout]],[np,[det,the],[noun,problem]],[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([the,night,despite,the,poisonous,fumes]) -------- Cycle 28 / create_NP_in_PP_for_D * stack([[np],[pp,[prep,throughout]],[np,[det,the],[noun,problem]],[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([the,night,despite,the,poisonous,fumes]) -------- Cycle 29 / attach_D_to_NP * stack([[np,[det,the]],[pp,[prep,throughout]],[np,[det,the],[noun,problem]],[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([night,despite,the,poisonous,fumes]) -------- Cycle 30 / attach_N_to_NP * stack([[np,[det,the],[noun,night]],[pp,[prep,throughout]],[np,[det,the],[noun,problem]],[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([despite,the,poisonous,fumes]) -------- Cycle 31 / create_PP_for_NP * stack([[pp],[np,[det,the],[noun,night]],[pp,[prep,throughout]],[np,[det,the],[noun,problem]],[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([despite,the,poisonous,fumes]) -------- Cycle 32 / attach_P_to_PP * stack([[pp,[prep,despite]],[np,[det,the],[noun,night]],[pp,[prep,throughout]],[np,[det,the],[noun,problem]],[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([the,poisonous,fumes]) -------- Cycle 33 / create_NP_in_PP_for_D * stack([[np],[pp,[prep,despite]],[np,[det,the],[noun,night]],[pp,[prep,throughout]],[np,[det,the],[noun,problem]],[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([the,poisonous,fumes]) -------- Cycle 34 / attach_D_to_NP * stack([[np,[det,the]],[pp,[prep,despite]],[np,[det,the],[noun,night]],[pp,[prep,throughout]],[np,[det,the],[noun,problem]],[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([poisonous,fumes]) -------- Cycle 35 / create_AP_in_NP_for_ADJ * stack([[ap],[np,[det,the]],[pp,[prep,despite]],[np,[det,the],[noun,night]],[pp,[prep,throughout]],[np,[det,the],[noun,problem]],[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([poisonous,fumes]) -------- Cycle 36 / attach_ADJ_to_AP * stack([[ap,[adj,poisonous]],[np,[det,the]],[pp,[prep,despite]],[np,[det,the],[noun,night]],[pp,[prep,throughout]],[np,[det,the],[noun,problem]],[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([fumes]) -------- Cycle 37 / drop_AP_for_N * stack([[np,[det,the]],[pp,[prep,despite]],[np,[det,the],[noun,night]],[pp,[prep,throughout]],[np,[det,the],[noun,problem]],[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([[ap,[adj,poisonous]],fumes]) -------- Cycle 38 / attach_AP_to_NP * stack([[np,[det,the],[ap,[adj,poisonous]]],[pp,[prep,despite]],[np,[det,the],[noun,night]],[pp,[prep,throughout]],[np,[det,the],[noun,problem]],[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([fumes]) -------- Cycle 39 / attach_N_to_NP * stack([[np,[det,the],[ap,[adj,poisonous]],[noun,fumes]],[pp,[prep,despite]],[np,[det,the],[noun,night]],[pp,[prep,throughout]],[np,[det,the],[noun,problem]],[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([]) -------- Cycle 40 / drop_node_into_empty_buffer * stack([[pp,[prep,despite]],[np,[det,the],[noun,night]],[pp,[prep,throughout]],[np,[det,the],[noun,problem]],[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([[np,[det,the],[ap,[adj,poisonous]],[noun,fumes]]]) -------- Cycle 41 / attach_NP_to_PP_and_drop_PP * stack([[np,[det,the],[noun,night]],[pp,[prep,throughout]],[np,[det,the],[noun,problem]],[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([[pp,[prep,despite],[np,[det,the],[ap,[adj,poisonous]],[noun,fumes]]]]) -------- Cycle 42 / attach_PP_to_NP * stack([[np,[det,the],[noun,night],[pp,[prep,despite],[np,[det,the],[ap,[adj,poisonous]],[noun,fumes]]]],[pp,[prep,throughout]],[np,[det,the],[noun,problem]],[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([]) -------- Cycle 43 / drop_node_into_empty_buffer * stack([[pp,[prep,throughout]],[np,[det,the],[noun,problem]],[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([[np,[det,the],[noun,night],[pp,[prep,despite],[np,[det,the],[ap,[adj,poisonous]],[noun,fumes]]]]]) -------- Cycle 44 / attach_NP_to_PP_and_drop_PP * stack([[np,[det,the],[noun,problem]],[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([[pp,[prep,throughout],[np,[det,the],[noun,night],[pp,[prep,despite],[np,[det,the],[ap,[adj,poisonous]],[noun,fumes]]]]]]) -------- Cycle 45 / attach_PP_to_NP * stack([[np,[det,the],[noun,problem],[pp,[prep,throughout],[np,[det,the],[noun,night],[pp,[prep,despite],[np,[det,the],[ap,[adj,poisonous]],[noun,fumes]]]]]],[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([]) -------- Cycle 46 / drop_node_into_empty_buffer * stack([[pp,[prep,on]],[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([[np,[det,the],[noun,problem],[pp,[prep,throughout],[np,[det,the],[noun,night],[pp,[prep,despite],[np,[det,the],[ap,[adj,poisonous]],[noun,fumes]]]]]]]) -------- Cycle 47 / attach_NP_to_PP_and_drop_PP * stack([[vp,[aux,may],[verb,meditate]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([[pp,[prep,on],[np,[det,the],[noun,problem],[pp,[prep,throughout],[np,[det,the],[noun,night],[pp,[prep,despite],[np,[det,the],[ap,[adj,poisonous]],[noun,fumes]]]]]]]]) -------- Cycle 48 / attach_PP_to_VP * stack([[vp,[aux,may],[verb,meditate],[pp,[prep,on],[np,[det,the],[noun,problem],[pp,[prep,throughout],[np,[det,the],[noun,night],[pp,[prep,despite],[np,[det,the],[ap,[adj,poisonous]],[noun,fumes]]]]]]]],[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([]) -------- Cycle 49 / drop_node_into_empty_buffer * stack([[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]]]]) * buffer([[vp,[aux,may],[verb,meditate],[pp,[prep,on],[np,[det,the],[noun,problem],[pp,[prep,throughout],[np,[det,the],[noun,night],[pp,[prep,despite],[np,[det,the],[ap,[adj,poisonous]],[noun,fumes]]]]]]]]]) -------- Cycle 50 / attach_VP_to_S * stack([[s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]],[vp,[aux,may],[verb,meditate],[pp,[prep,on],[np,[det,the],[noun,problem],[pp,[prep,throughout],[np,[det,the],[noun,night],[pp,[prep,despite],[np,[det,the],[ap,[adj,poisonous]],[noun,fumes]]]]]]]]]]) * buffer([]) -------- Cycle 51 / successful_parse Success! The parse tree is: [s,[np,[det,the],[ap,[adj,eager]],[noun,frog],[pp,[prep,under],[np,[det,the],[noun,table]]]],[vp,[aux,may],[verb,meditate],[pp,[prep,on],[np,[det,the],[noun,problem],[pp,[prep,throughout],[np,[det,the],[noun,night],[pp,[prep,despite],[np,[det,the],[ap,[adj,poisonous]],[noun,fumes]]]]]]]]] * stack([]) * buffer([]) -------- true. ?- halt. >