While I am still trying to digest this excellent article, I think I found a slight error.
In The Grammar section, the article lists 7 rules. One of them is...
PrimaryExpression ::= Term
| '-' Term
| Phrase
| '(' OrExpression ')'
| '<' ( Term | Phrase )+ '>'
To more closely match the code in the Conversion Engine section, I think it should be more like the following.
Note the addition of the ExactExpression option.
PrimaryExpression ::= Term
| '-' Term
| ExactExpression
| '(' OrExpression ')'
| Phrase
| '<' ( Term | Phrase )+ '>'
A minor point, I know. I just want to make sure that I am not missing something here. 😀
Paul DB