on-the-fly syntax checking - experimental