(SYNTAX_ENTRY): Depending on the value of SYNTAX_ENTRY_VIA_PROPERTY
may do a lookup for syntax table in gl_state.
(UPDATE_SYNTAX_TABLE_FORWARD, UPDATE_SYNTAX_TABLE_BACKWARD,
UPDATE_SYNTAX_TABLE, SETUP_SYNTAX_TABLE,
SETUP_SYNTAX_TABLE_FOR_OBJECT): New macros.
(struct gl_state_s): New struct.
text property into account when doing SYNTAX (c).
(ST_COMMENT_STYLE, ST_STRING_STYLE): New codes to denote
delimiters for new types of strings and comments.
(Vparse_sexp_lookup_properties): New variable.
(struct lisp_parse_state): Comment updated.
(gl_state): New global variable.
(update_syntax_table): New function.
(char_quoted): Move earlier, update gl_state when needed.
(find_defun_start): Update gl_state when needed.
(back_comment): New function.
(Scomment_fence, Sstring_fence): New delimeter char classes
denoted by `!' and `|'.
(Fchar_syntax, Fmatching_paren): Update gl_state to whole-bufferstate.
(scan_words): update gl_state when needed.
(Fskip_chars_forward): Move from search.c.
(Fskip_chars_backward): Move from search.c.
(Fskip_syntax_forward): Move from search.c.
(Fskip_syntax_backward): Move from search.c.
(skip_chars): Move from search.c.
(Fforward_comment, scan_lists): Update gl_state when needed.
Handle Scomment_fence, Sstring_fence.
(Fbackward_prefix_chars) Update gl_state when needed.
(scan_sexps_forward): Update gl_state when needed.
Handle Scomment_fence, Sstring_fence. If comment_stop==-1, stop at start
or end of comment or string.
(Fparse-partial-sexp): Doc fix.
(syms_of_syntax): Move initialization of skip* from search.c.
(string_match_1): Set re_match_object.
(fast_string_match): Set re_match_object.
(Fskip_chars_forward): Move to syntax.c.
(Fskip_chars_backward): Move to syntax.c.
(Fskip_syntax_forward): Move to syntax.c.
(Fskip_syntax_backward): Move to syntax.c.
(skip_chars): Move to syntax.c.
(search_buffer): Set re_match_object.
(syms_of_search): Move initialization of skip* to syntax.c.