Section: Appendix B (Operator Precedence Table), Appendix C.8 (RelOp production)
Current text:
RelOp = ... | 'in' | 'is' | 'not' 'in' | 'is' 'not' ;
(and the corresponding rows in the Appendix B precedence table)
Problem:
Object Pascal has no compound not in or is not operators. Negated membership/type-tests must be written as not (X in Y) and not (X is Y). This is fabricated syntax that would mislead a compiler implementer using this spec, which is the document's stated purpose.
Suggested fix:
Remove not in and is not from both the precedence table and the RelOp EBNF production.
Section: Appendix B (Operator Precedence Table), Appendix C.8 (RelOp production)
Current text:
RelOp = ... | 'in' | 'is' | 'not' 'in' | 'is' 'not' ;
(and the corresponding rows in the Appendix B precedence table)
Problem:
Object Pascal has no compound
not inoris notoperators. Negated membership/type-tests must be written asnot (X in Y)andnot (X is Y). This is fabricated syntax that would mislead a compiler implementer using this spec, which is the document's stated purpose.Suggested fix:
Remove
not inandis notfrom both the precedence table and theRelOpEBNF production.