<?xml version="1.0" encoding="ISO8859-1" ?>
<grammar xml:lang="en-us" version="1.0" root="ROOT">
<!-- 
	ipaq_commands.grxml ... this is a sample which shows how to use 
	natural numbers in a grammar.  It allows phrases such as
	go to step $N .. where $N can range from 0 to 99
-->
 
<rule id="ROOT" scope="public">
  <one-of>
	<item>
	    <item>center</item>
	    <item repeat="0-1">
	      <one-of>
		<item>here <tag>MEANING='CTR'</tag></item>
		<item>of this <tag>MEANING='CTR'</tag></item>
		<item>on this <tag>MEANING='CTR'</tag></item>
		<item>on this point <tag>MEANING='CTR'</tag></item>
	      </one-of>
	    </item>
	</item>
	<item>
	    <item>get</item>
	    <one-of>
		<item>a map <tag>MEANING='MAP'</tag> </item>
		<item>directions <tag>MEANING='DIR'</tag></item>
		<item>map <tag>MEANING='MAP'</tag></item>
		<item>maps <tag>MEANING='MAP'</tag></item>
	    </one-of>
	</item>
	<item>
	    <one-of> 
	      <item>
      	        <item repeat="0-1">go to</item>
	        <item>
	         <one-of>
		  <item>step</item>
		  <item>steps</item>
	         </one-of>
	        </item>
	      </item>
              <item>go to</item>
	    </one-of>
	    <ruleref uri="#NUMBER"/>
	    <tag>MEANING='STEP' + NUMBER.X;</tag>
	</item>
	<item>map <tag>V='MAP'</tag> </item>
	<item>
            <item> <one-of>
	      <item>map <tag>V='MAP'</tag> </item>
	      <item>map of<tag>V='MAP'</tag> </item>
	      <item>map of the<tag>V='MAP'</tag> </item>
	      <item>map the<tag>V='MAP'</tag> </item>
	    </one-of> </item>
            <item>
	       <one-of>
		<item> arrival             <tag>V=V+' AP';</tag></item>
		<item> destination         <tag>V=V+' DP';</tag></item>
		<item> end                 <tag>V=V+' EP';</tag></item>
		<item> ending              <tag>V=V+' EP';</tag></item>
		<item> origin              <tag>V=V+' SP';</tag></item>
		<item> start               <tag>V=V+' SP';</tag></item>
		<item> starting            <tag>V=V+' SP';</tag></item>
	       </one-of>
             </item>
	     <item repeat="0-1"> point </item>
	</item>

	<item>
	  <item>move</item>
	  <one-of>
		<item>down</item>
		<item>left</item>
		<item>right</item>
		<item>up</item>
	  </one-of>
	</item>

	<item>next step</item>

	<item>route map</item>

	<item>
	  <item>zoom <tag>V='ZOOM'</tag></item>
	  <one-of>
		<item>in               <tag>V=' IN'</tag></item>
		<item>in here          <tag>V=' INH'</tag></item>
		<item>in on this       <tag>V=' INH'</tag></item>
		<item>in on this point <tag>V=' INH'</tag></item>
		<item>on this          <tag>V=' ONH'</tag></item>
		<item>out              <tag>V=' OUT'</tag></item>
	  </one-of>
	</item>

  </one-of>
</rule>

   <rule id="NUMBER">
     <one-of>
      <item repeat="1-">
          <ruleref uri="#DIGIT"/>
	  <tag>X=X?X:'';X=X+DIGIT.V;</tag>
      </item>
      <item>
	  <ruleref uri="#TEEN"/>
	  <tag>X=X?X:'';X=X+TEEN.V;</tag>
      </item>
      <item>
	  <ruleref uri="#TY"/>
	  <ruleref uri="#NZ_DIGIT"/>
	  <tag>X=X?X:'';X=X+TY.V+NZ_DIGIT.V;</tag>
      </item>
      <item>
	  <ruleref uri="#TY"/>
	  <tag>X=X?X:'';X=X+TY.V+'0';</tag>
      </item>
     </one-of>
   </rule>

   <rule id="DIGIT">
      <one-of>
         <item>            oh              <tag>V='0'</tag>         </item>
         <item>            zero            <tag>V='0'</tag>         </item>
         <item>            one             <tag>V='1'</tag>         </item>
         <item>            two             <tag>V='2'</tag>         </item>
         <item>            three           <tag>V='3'</tag>         </item>
         <item>            four            <tag>V='4'</tag>         </item>
         <item>            five            <tag>V='5'</tag>         </item>
         <item>            six             <tag>V='6'</tag>         </item>
         <item>            seven           <tag>V='7'</tag>         </item>
         <item>            eight           <tag>V='8'</tag>         </item>
         <item>            nine            <tag>V='9'</tag>         </item>
      </one-of>   
   </rule>

   <rule id="NZ_DIGIT">
      <one-of>
         <item>            one             <tag>V='1'</tag>         </item>
         <item>            two             <tag>V='2'</tag>         </item>
         <item>            three           <tag>V='3'</tag>         </item>
         <item>            four            <tag>V='4'</tag>         </item>
         <item>            five            <tag>V='5'</tag>         </item>
         <item>            six             <tag>V='6'</tag>         </item>
         <item>            seven           <tag>V='7'</tag>         </item>
         <item>            eight           <tag>V='8'</tag>         </item>
         <item>            nine            <tag>V='9'</tag>         </item>
      </one-of>   
   </rule>

  <rule id="TEEN">
    <one-of>
	<item>		nineteen		<tag>V='19'</tag>	</item>
	<item>		eighteen                <tag>V='18'</tag>	</item>
	<item>		seventeen               <tag>V='17'</tag>	</item>
	<item>		sixteen                 <tag>V='16'</tag>	</item>
	<item>		fifteen                 <tag>V='15'</tag>	</item>
	<item>		fourteen                <tag>V='14'</tag>	</item>
	<item>		thirteen                <tag>V='13'</tag>	</item>
	<item>		twelve                  <tag>V='12'</tag>	</item>
	<item>		eleven                  <tag>V='11'</tag>	</item>
	<item>		ten                     <tag>V='10'</tag>	</item>
    </one-of>
  </rule>

  <rule id="TY">
    <one-of>
	<item>		ninety               <tag>V='9'</tag>	</item>
	<item>		eighty               <tag>V='8'</tag>	</item>
	<item>		seventy              <tag>V='7'</tag>	</item>
	<item>		sixty                <tag>V='6'</tag>	</item>
	<item>		fifty                <tag>V='5'</tag>	</item>
	<item>		forty                <tag>V='4'</tag>	</item>
	<item>		thirty               <tag>V='3'</tag>	</item>
	<item>		twenty               <tag>V='2'</tag>	</item>
    </one-of>
  </rule>


</grammar>