<?xml version="1.0"?><language name="SQL">  <lexer>    <match term="AND">"AND"</match>    <match term="NUMBER">-?[0-9]+</match>    <match term="WHERE">"WHERE"</match>    <match term="GE">">="</match>    <match term="EQ">"="</match>    <match term="LE">"<="</match>    <match term="GT">">"</match>    <match term="NE">"!="</match>    <match term="LT">"<"</match>    <match term="SELECT">"SELECT"</match>    <match term="FROM">"FROM"</match>    <match term="ID">"[a-zA-Z]"</match>    <match term="COMMA">","</match>    <ignore>"[ \t\n]"</ignore>    <error>.</error>    </lexer>  <parser start="selectStatement" expected_conflicts="0">       <nonterm name="selectStatement">      <production>        <symbol action="drop">SELECT</symbol>        <symbol action="content">columns</symbol>        <symbol action="drop">FROM</symbol>        <symbol action="content">tables</symbol>        <symbol action="drop">WHERE</symbol>        <symbol>whereExpression</symbol>        </production>      </nonterm>    <list name="columns">      <delimiter>        <symbol>COMMA</symbol>        </delimiter>      <production>        <symbol>column</symbol>        </production>      </list>    <nonterm name="column">      <production>        <symbol>ID</symbol>        </production>      </nonterm>    <list name="tables">      <delimiter>        <symbol>COMMA</symbol>        </delimiter>      <production>        <symbol>table</symbol>        </production>      </list>    <nonterm name="table">      <production>        <symbol>ID</symbol>        </production>      </nonterm>    <nonterm name="whereExpression">      <production>        <symbol>primaryExpression</symbol>        </production>      <production>        <symbol>whereExpression</symbol>        <symbol>AND</symbol>        <symbol>primaryExpression</symbol>        </production>      </nonterm>    <nonterm name="primaryExpression">      <production>        <symbol>filterExpression</symbol>        </production>      <production>        <symbol>joinExpression</symbol>        </production>      </nonterm>    <nonterm name="filterExpression">      <production>        <symbol>INT</symbol>        <symbol>binop</symbol>        <symbol>column</symbol>        </production>      <production>        <symbol>column</symbol>        <symbol>binop</symbol>        <symbol>INT</symbol>        </production>      </nonterm>    <nonterm name="filterExpression">      <production>        <symbol>EQ</symbol>        </production>      <production>        <symbol>NE</symbol>        </production>      <production>        <symbol>LT</symbol>        </production>      <production>        <symbol>LE</symbol>        </production>      <production>        <symbol>GT</symbol>        </production>      <production>        <symbol>GE</symbol>        </production>      </nonterm>    </parser>  </language>