Home | History | Annotate | Download | only in grammars
      1 <?xml version="1.0" encoding="ISO8859-1" ?>
      2 <grammar xml:lang="en-us" version="1.0" root="ROOT">
      3 <!-- 
      4 	ipaq_commands.grxml ... this is a sample which shows how to use 
      5 	natural numbers in a grammar.  It allows phrases such as
      6 	go to step $N .. where $N can range from 0 to 99
      7 -->
      8  
      9 <rule id="ROOT" scope="public">
     10   <one-of>
     11 	<item>
     12 	    <item>center</item>
     13 	    <item repeat="0-1">
     14 	      <one-of>
     15 		<item>here <tag>MEANING='CTR'</tag></item>
     16 		<item>of this <tag>MEANING='CTR'</tag></item>
     17 		<item>on this <tag>MEANING='CTR'</tag></item>
     18 		<item>on this point <tag>MEANING='CTR'</tag></item>
     19 	      </one-of>
     20 	    </item>
     21 	</item>
     22 	<item>
     23 	    <item>get</item>
     24 	    <one-of>
     25 		<item>a map <tag>MEANING='MAP'</tag> </item>
     26 		<item>directions <tag>MEANING='DIR'</tag></item>
     27 		<item>map <tag>MEANING='MAP'</tag></item>
     28 		<item>maps <tag>MEANING='MAP'</tag></item>
     29 	    </one-of>
     30 	</item>
     31 	<item>
     32 	    <one-of> 
     33 	      <item>
     34       	        <item repeat="0-1">go to</item>
     35 	        <item>
     36 	         <one-of>
     37 		  <item>step</item>
     38 		  <item>steps</item>
     39 	         </one-of>
     40 	        </item>
     41 	      </item>
     42               <item>go to</item>
     43 	    </one-of>
     44 	    <ruleref uri="#NUMBER"/>
     45 	    <tag>MEANING='STEP' + NUMBER.X;</tag>
     46 	</item>
     47 	<item>map <tag>V='MAP'</tag> </item>
     48 	<item>
     49             <item> <one-of>
     50 	      <item>map <tag>V='MAP'</tag> </item>
     51 	      <item>map of<tag>V='MAP'</tag> </item>
     52 	      <item>map of the<tag>V='MAP'</tag> </item>
     53 	      <item>map the<tag>V='MAP'</tag> </item>
     54 	    </one-of> </item>
     55             <item>
     56 	       <one-of>
     57 		<item> arrival             <tag>V=V+' AP';</tag></item>
     58 		<item> destination         <tag>V=V+' DP';</tag></item>
     59 		<item> end                 <tag>V=V+' EP';</tag></item>
     60 		<item> ending              <tag>V=V+' EP';</tag></item>
     61 		<item> origin              <tag>V=V+' SP';</tag></item>
     62 		<item> start               <tag>V=V+' SP';</tag></item>
     63 		<item> starting            <tag>V=V+' SP';</tag></item>
     64 	       </one-of>
     65              </item>
     66 	     <item repeat="0-1"> point </item>
     67 	</item>
     68 
     69 	<item>
     70 	  <item>move</item>
     71 	  <one-of>
     72 		<item>down</item>
     73 		<item>left</item>
     74 		<item>right</item>
     75 		<item>up</item>
     76 	  </one-of>
     77 	</item>
     78 
     79 	<item>next step</item>
     80 
     81 	<item>route map</item>
     82 
     83 	<item>
     84 	  <item>zoom <tag>V='ZOOM'</tag></item>
     85 	  <one-of>
     86 		<item>in               <tag>V=' IN'</tag></item>
     87 		<item>in here          <tag>V=' INH'</tag></item>
     88 		<item>in on this       <tag>V=' INH'</tag></item>
     89 		<item>in on this point <tag>V=' INH'</tag></item>
     90 		<item>on this          <tag>V=' ONH'</tag></item>
     91 		<item>out              <tag>V=' OUT'</tag></item>
     92 	  </one-of>
     93 	</item>
     94 
     95   </one-of>
     96 </rule>
     97 
     98    <rule id="NUMBER">
     99      <one-of>
    100       <item repeat="1-">
    101           <ruleref uri="#DIGIT"/>
    102 	  <tag>X=X?X:'';X=X+DIGIT.V;</tag>
    103       </item>
    104       <item>
    105 	  <ruleref uri="#TEEN"/>
    106 	  <tag>X=X?X:'';X=X+TEEN.V;</tag>
    107       </item>
    108       <item>
    109 	  <ruleref uri="#TY"/>
    110 	  <ruleref uri="#NZ_DIGIT"/>
    111 	  <tag>X=X?X:'';X=X+TY.V+NZ_DIGIT.V;</tag>
    112       </item>
    113       <item>
    114 	  <ruleref uri="#TY"/>
    115 	  <tag>X=X?X:'';X=X+TY.V+'0';</tag>
    116       </item>
    117      </one-of>
    118    </rule>
    119 
    120    <rule id="DIGIT">
    121       <one-of>
    122          <item>            oh              <tag>V='0'</tag>         </item>
    123          <item>            zero            <tag>V='0'</tag>         </item>
    124          <item>            one             <tag>V='1'</tag>         </item>
    125          <item>            two             <tag>V='2'</tag>         </item>
    126          <item>            three           <tag>V='3'</tag>         </item>
    127          <item>            four            <tag>V='4'</tag>         </item>
    128          <item>            five            <tag>V='5'</tag>         </item>
    129          <item>            six             <tag>V='6'</tag>         </item>
    130          <item>            seven           <tag>V='7'</tag>         </item>
    131          <item>            eight           <tag>V='8'</tag>         </item>
    132          <item>            nine            <tag>V='9'</tag>         </item>
    133       </one-of>   
    134    </rule>
    135 
    136    <rule id="NZ_DIGIT">
    137       <one-of>
    138          <item>            one             <tag>V='1'</tag>         </item>
    139          <item>            two             <tag>V='2'</tag>         </item>
    140          <item>            three           <tag>V='3'</tag>         </item>
    141          <item>            four            <tag>V='4'</tag>         </item>
    142          <item>            five            <tag>V='5'</tag>         </item>
    143          <item>            six             <tag>V='6'</tag>         </item>
    144          <item>            seven           <tag>V='7'</tag>         </item>
    145          <item>            eight           <tag>V='8'</tag>         </item>
    146          <item>            nine            <tag>V='9'</tag>         </item>
    147       </one-of>   
    148    </rule>
    149 
    150   <rule id="TEEN">
    151     <one-of>
    152 	<item>		nineteen		<tag>V='19'</tag>	</item>
    153 	<item>		eighteen                <tag>V='18'</tag>	</item>
    154 	<item>		seventeen               <tag>V='17'</tag>	</item>
    155 	<item>		sixteen                 <tag>V='16'</tag>	</item>
    156 	<item>		fifteen                 <tag>V='15'</tag>	</item>
    157 	<item>		fourteen                <tag>V='14'</tag>	</item>
    158 	<item>		thirteen                <tag>V='13'</tag>	</item>
    159 	<item>		twelve                  <tag>V='12'</tag>	</item>
    160 	<item>		eleven                  <tag>V='11'</tag>	</item>
    161 	<item>		ten                     <tag>V='10'</tag>	</item>
    162     </one-of>
    163   </rule>
    164 
    165   <rule id="TY">
    166     <one-of>
    167 	<item>		ninety               <tag>V='9'</tag>	</item>
    168 	<item>		eighty               <tag>V='8'</tag>	</item>
    169 	<item>		seventy              <tag>V='7'</tag>	</item>
    170 	<item>		sixty                <tag>V='6'</tag>	</item>
    171 	<item>		fifty                <tag>V='5'</tag>	</item>
    172 	<item>		forty                <tag>V='4'</tag>	</item>
    173 	<item>		thirty               <tag>V='3'</tag>	</item>
    174 	<item>		twenty               <tag>V='2'</tag>	</item>
    175     </one-of>
    176   </rule>
    177 
    178 
    179 </grammar>
    180