automatic and manual syntax checking