#JSGF V1.0;
grammar ToBI_GPSR;


public <main> = <getobjanddeliver> | <goroomandfindobj> | <findprsatandtalk>;


<getobjanddeliver> = <getobj> <fromplacement> and <deliverit> (<tome> | <totarget> | (<toprs> <atroom>));

<getobj>         = <vbtake> the <wcobject>;
<fromplacement>  = <vbfrom> the <wcplacement> ;

<deliverit>   = <vbdeliver> <wcit> ;
<tome>        = <vbto> <wcme>;
<totarget>    = <vbto> the <wcplacement>;
<toprs>       = <vbto> <wcnames>;
<atroom>      = (<vbat> | <vbisin>) the <wcroom>;



<goroomandfindobj> = <goroom> and <findobj>;

<goroom> = <vbgoto> the <wcroom>;
<findobj> = <vbfind> the <wcobject>;



<findprsatandtalk> = <findprs> <atroom> and <talk>;

<findprs> = <vbfind> <wcperson>;

<talk> = ( <vbspeak> ( <wctime>  | <wcdate> | <wcinfo> ) ) | (<vbanswer> a <wcquestion>);
<wcinfo> = ( your name ) | ( the name of your team );
<wctime> = ( the time ) | ( what time is it );
<wcdate> = ( [tell] the date ) | ( what day is <wcday> ) | ( [tell] the day of the (month |week) );



<vbdeliver> 	= bring | carry | deliver | take;
<vbfind>	= find | (look for);
<vbfollow> 	= follow;
<vbgoto> 	= (go to) | (navigate to) | reach | (get into);
<vbtake> 	= take | grasp | get ;
<vbspeak> 	= tell | say | speak ;
<vbanswer> 	= answer;
<vbfrom> 	= from;
<vbat> 		= at;
<vbisin>	= in | ((which | who) is in);
<vbto>		= to;



<wcobject> 	= coffee | milk | (orange juice) | beer | apple | banana | orange | pear | lays | crackers | pringles | chocolate | cloth | detergent | sponge | brush;
<wcplacement> 	= (kitchen table) | shelf | (dinner table) | (bathroom locker) | chair | bed | bin;
<wcnames> 	= beth | anna | carmen | jennifer | jessica | kimberly | kristina | laura | mary | sarah | alfred | charles | daniel | james | john | luis | paul | richard | robert | steve;
<wcme> 		= me;
<wcperson>	= (a person);
<wcroom> 	= kitchen | bathroom | hall | (dining room) | bedroom | corridor;
<wcquestion> 	= question;
<wcday> 	= today | tomorrow ;
<wcit>		= it;
<wcher>		= her;