custom syntax checker