<?xml version="1.0" encoding="ISO8859-1" ?> <!-- Test grammar, two slots in parallel with each other --> <grammar xml:lang="en-us" version="1.0" root="ROOT"> <meta name="word_penalty" content="40" /> <rule id="ROOT" scope="public"> <one-of> <item><ruleref uri="#Phone"/> <tag>meaning=Phone.V;</tag> </item> <item><ruleref uri="#Find"/> <tag>meaning=Find.V;</tag> </item> <item><ruleref uri="#OtherCommands"/> <tag>meaning=OtherCommands.V;</tag> </item> </one-of> </rule> <rule id="Phone"> <item> <tag>C=(C?C:''); V=C+V;</tag> <item> <item repeat="0-1">phone</item> <item> <one-of> <item> enter <tag>C='ENTER';</tag> </item> <item> delete <tag>C='DEL';</tag> </item> <item> remove <tag>C='DEL';</tag> </item> </one-of> </item> <item> <ruleref uri="#Names"/> <tag>V=Names.V;</tag> </item> </item> </item> </rule> <rule id="Find"> <item> <tag>C=(C?C:''); V=C+V;</tag> <item> <item > find </item> <one-of> <item> <ruleref uri="#Names"/> <tag>V=Names.V;</tag> </item> <item> <ruleref uri="#Places"/> <tag>V=Places.V;</tag> </item> </one-of> </item> </item> </rule> <rule id="Names" scope="public"> <item>__Names__</item> </rule> <rule id="Places" scope="public"> <item>__Places__</item> </rule> <rule id="OtherCommands"> <item> <tag>C=(C?C:''); V=C+V;</tag> <one-of> <item> hello <tag>V='HI';</tag> </item> <item> forward <tag>V='FWD';</tag> </item> <item> backward <tag>V='BAK';</tag> </item> <item> changer <tag>V='CHANGER';</tag> </item> <item> asterisk <tag>V='STAR';</tag> </item> <item> cd player <tag>V='CDPL';</tag> </item> <item> traffic information <tag>V='TRFI';</tag> </item> <item> traffic info <tag>V='TRFI';</tag> </item> <item> traffic <tag>V='TRFI';</tag> </item> <item> traffic memory <tag>V='TRFM';</tag> </item> <item> fahrenheit <tag>V='DEGF';</tag> </item> <item> celsius <tag>V='DEGC';</tag> </item> </one-of> </item> </rule> </grammar>