Generating the analythic component parts of syntax-directed editors