annotate src/syntax.h @ 51242:661e2fe7e775

(autoconf-mode setups): Recognise AH_ and AU_ entries in "(autoconf)Autoconf Macro Index". Add "(autoconf)M4 Macro Index" and "(autoconf)Autotest Macro Index". Remove duplicate copy of "(automake)Macro and Variable Index". Keep automake after all autoconf possibilities, so as to prefer those.
author Juanma Barranquero <lekktu@gmail.com>
date Sun, 25 May 2003 21:03:57 +0000
parents 23a1cea22d13
children 695cf19ef79e d7ddb3e565de
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1 /* Declarations having to do with GNU Emacs syntax tables.
20708
ed9ed828415e Update copyright year.
Richard M. Stallman <rms@gnu.org>
parents: 20649
diff changeset
2 Copyright (C) 1985, 93, 94, 97, 1998 Free Software Foundation, Inc.
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
3
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4 This file is part of GNU Emacs.
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
5
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
6 GNU Emacs is free software; you can redistribute it and/or modify
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
7 it under the terms of the GNU General Public License as published by
12244
ac7375e60931 Update GPL to version 2.
Karl Heuer <kwzh@gnu.org>
parents: 7967
diff changeset
8 the Free Software Foundation; either version 2, or (at your option)
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
9 any later version.
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
10
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11 GNU Emacs is distributed in the hope that it will be useful,
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14 GNU General Public License for more details.
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 along with GNU Emacs; see the file COPYING. If not, write to
14186
ee40177f6c68 Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents: 13827
diff changeset
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
ee40177f6c68 Update FSF's address in the preamble.
Erik Naggum <erik@naggum.no>
parents: 13827
diff changeset
19 Boston, MA 02111-1307, USA. */
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
20
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
21
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
22 extern Lisp_Object Qsyntax_table_p;
20349
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 19826
diff changeset
23 extern void update_syntax_table P_ ((int, int, int, Lisp_Object));
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
24
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
25 /* The standard syntax table is stored where it will automatically
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
26 be used in all new buffers. */
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
27 #define Vstandard_syntax_table buffer_defaults.syntax_table
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
28
13143
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
29 /* A syntax table is a chartable whose elements are cons cells
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
30 (CODE+FLAGS . MATCHING-CHAR). MATCHING-CHAR can be nil if the char
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
31 is not a kind of parenthesis.
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
32
13143
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
33 The low 8 bits of CODE+FLAGS is a code, as follows: */
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
34
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
35 enum syntaxcode
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
36 {
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
37 Swhitespace, /* for a whitespace character */
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
38 Spunct, /* for random punctuation characters */
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
39 Sword, /* for a word constituent */
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
40 Ssymbol, /* symbol constituent but not word constituent */
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
41 Sopen, /* for a beginning delimiter */
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
42 Sclose, /* for an ending delimiter */
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
43 Squote, /* for a prefix character like Lisp ' */
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
44 Sstring, /* for a string-grouping character like Lisp " */
17465
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
45 Smath, /* for delimiters like $ in Tex. */
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
46 Sescape, /* for a character that begins a C-style escape */
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
47 Scharquote, /* for a character that quotes the following character */
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
48 Scomment, /* for a comment-starting character */
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
49 Sendcomment, /* for a comment-ending character */
5441
0af9674da850 (enum syntaxcode): Add Sinherit.
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
50 Sinherit, /* use the standard syntax table for this character */
17465
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
51 Scomment_fence, /* Starts/ends comment which is delimited on the
20487
c9224a343630 Comment changes.
Richard M. Stallman <rms@gnu.org>
parents: 20349
diff changeset
52 other side by any char with the same syntaxcode. */
17465
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
53 Sstring_fence, /* Starts/ends string which is delimited on the
20487
c9224a343630 Comment changes.
Richard M. Stallman <rms@gnu.org>
parents: 20349
diff changeset
54 other side by any char with the same syntaxcode. */
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
55 Smax /* Upper bound on codes that are meaningful */
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
56 };
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
57
17045
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
58 /* Set the syntax entry VAL for char C in table TABLE. */
13143
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
59
17127
ab43d13fdfd5 (SET_RAW_SYNTAX_ENTRY, SYNTAX_ENTRY): Cast arg C to
Kenichi Handa <handa@m17n.org>
parents: 17045
diff changeset
60 #define SET_RAW_SYNTAX_ENTRY(table, c, val) \
17181
156896ccc86e (SET_RAW_SYNTAX_ENTRY, SYNTAX_ENTRY): Adjusted for the change of
Kenichi Handa <handa@m17n.org>
parents: 17127
diff changeset
61 ((c) < CHAR_TABLE_SINGLE_BYTE_SLOTS \
17127
ab43d13fdfd5 (SET_RAW_SYNTAX_ENTRY, SYNTAX_ENTRY): Cast arg C to
Kenichi Handa <handa@m17n.org>
parents: 17045
diff changeset
62 ? (XCHAR_TABLE (table)->contents[(unsigned char) (c)] = (val)) \
ab43d13fdfd5 (SET_RAW_SYNTAX_ENTRY, SYNTAX_ENTRY): Cast arg C to
Kenichi Handa <handa@m17n.org>
parents: 17045
diff changeset
63 : Faset ((table), make_number (c), (val)))
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
64
17045
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
65 /* Fetch the syntax entry for char C in syntax table TABLE.
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
66 This macro is called only when C is less than CHAR_TABLE_ORDINARY_SLOTS.
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
67 Do inheritance. */
5441
0af9674da850 (enum syntaxcode): Add Sinherit.
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
68
0af9674da850 (enum syntaxcode): Add Sinherit.
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
69 #ifdef __GNUC__
17045
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
70 #define SYNTAX_ENTRY_FOLLOW_PARENT(table, c) \
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
71 ({ Lisp_Object tbl = table; \
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
72 Lisp_Object temp = XCHAR_TABLE (tbl)->contents[(c)]; \
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
73 while (NILP (temp)) \
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
74 { \
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
75 tbl = XCHAR_TABLE (tbl)->parent; \
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
76 if (NILP (tbl)) \
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
77 break; \
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
78 temp = XCHAR_TABLE (tbl)->contents[(c)]; \
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
79 } \
13143
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
80 temp; })
17045
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
81 #else
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
82 extern Lisp_Object syntax_temp;
20349
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 19826
diff changeset
83 extern Lisp_Object syntax_parent_lookup P_ ((Lisp_Object, int));
13143
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
84
17045
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
85 #define SYNTAX_ENTRY_FOLLOW_PARENT(table, c) \
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
86 (syntax_temp = XCHAR_TABLE (table)->contents[(c)], \
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
87 (NILP (syntax_temp) \
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
88 ? syntax_parent_lookup (table, (c)) \
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
89 : syntax_temp))
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
90 #endif
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
91
17465
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
92 /* SYNTAX_ENTRY fetches the information from the entry for character C
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46370
diff changeset
93 in syntax table TABLE, or from globally kept data (gl_state).
17465
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
94 Does inheritance. */
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
95 /* CURRENT_SYNTAX_TABLE gives the syntax table valid for current
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
96 position, it is either the buffer's syntax table, or syntax table
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
97 found in text properties. */
17045
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
98
17465
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
99 #ifdef SYNTAX_ENTRY_VIA_PROPERTY
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
100 # define SYNTAX_ENTRY(c) \
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
101 (gl_state.use_global ? gl_state.global_code : SYNTAX_ENTRY_INT (c))
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
102 # define CURRENT_SYNTAX_TABLE gl_state.current_syntax_table
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
103 #else
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
104 # define SYNTAX_ENTRY SYNTAX_ENTRY_INT
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
105 # define CURRENT_SYNTAX_TABLE current_buffer->syntax_table
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
106 #endif
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
107
26870
9ecd0716cf8a (SYNTAX_ENTRY_INT): Delete codes for a composite
Kenichi Handa <handa@m17n.org>
parents: 25640
diff changeset
108 #define SYNTAX_ENTRY_INT(c) \
9ecd0716cf8a (SYNTAX_ENTRY_INT): Delete codes for a composite
Kenichi Handa <handa@m17n.org>
parents: 25640
diff changeset
109 ((c) < CHAR_TABLE_SINGLE_BYTE_SLOTS \
9ecd0716cf8a (SYNTAX_ENTRY_INT): Delete codes for a composite
Kenichi Handa <handa@m17n.org>
parents: 25640
diff changeset
110 ? SYNTAX_ENTRY_FOLLOW_PARENT (CURRENT_SYNTAX_TABLE, \
9ecd0716cf8a (SYNTAX_ENTRY_INT): Delete codes for a composite
Kenichi Handa <handa@m17n.org>
parents: 25640
diff changeset
111 (unsigned char) (c)) \
9ecd0716cf8a (SYNTAX_ENTRY_INT): Delete codes for a composite
Kenichi Handa <handa@m17n.org>
parents: 25640
diff changeset
112 : Faref (CURRENT_SYNTAX_TABLE, \
9ecd0716cf8a (SYNTAX_ENTRY_INT): Delete codes for a composite
Kenichi Handa <handa@m17n.org>
parents: 25640
diff changeset
113 make_number (c)))
17045
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
114
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
115 /* Extract the information from the entry for character C
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
116 in the current syntax table. */
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
117
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
118 #ifdef __GNUC__
13143
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
119 #define SYNTAX(c) \
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
120 ({ Lisp_Object temp; \
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
121 temp = SYNTAX_ENTRY (c); \
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
122 (CONSP (temp) \
25640
69c2d34eb25c Use XCAR and XCDR.
Ken Raeburn <raeburn@raeburn.org>
parents: 25446
diff changeset
123 ? (enum syntaxcode) (XINT (XCAR (temp)) & 0xff) \
17045
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
124 : Swhitespace); })
13143
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
125
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
126 #define SYNTAX_WITH_FLAGS(c) \
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
127 ({ Lisp_Object temp; \
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
128 temp = SYNTAX_ENTRY (c); \
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
129 (CONSP (temp) \
25640
69c2d34eb25c Use XCAR and XCDR.
Ken Raeburn <raeburn@raeburn.org>
parents: 25446
diff changeset
130 ? XINT (XCAR (temp)) \
17045
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
131 : (int) Swhitespace); })
13143
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
132
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
133 #define SYNTAX_MATCH(c) \
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
134 ({ Lisp_Object temp; \
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
135 temp = SYNTAX_ENTRY (c); \
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
136 (CONSP (temp) \
25640
69c2d34eb25c Use XCAR and XCDR.
Ken Raeburn <raeburn@raeburn.org>
parents: 25446
diff changeset
137 ? XCDR (temp) \
17045
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
138 : Qnil); })
5441
0af9674da850 (enum syntaxcode): Add Sinherit.
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
139 #else
13143
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
140 #define SYNTAX(c) \
13318
94a4b6e9d310 (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Fix the non-GCC definitions.
Richard M. Stallman <rms@gnu.org>
parents: 13143
diff changeset
141 (syntax_temp = SYNTAX_ENTRY ((c)), \
13143
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
142 (CONSP (syntax_temp) \
25640
69c2d34eb25c Use XCAR and XCDR.
Ken Raeburn <raeburn@raeburn.org>
parents: 25446
diff changeset
143 ? (enum syntaxcode) (XINT (XCAR (syntax_temp)) & 0xff) \
17045
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
144 : Swhitespace))
13143
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
145
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
146 #define SYNTAX_WITH_FLAGS(c) \
13318
94a4b6e9d310 (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Fix the non-GCC definitions.
Richard M. Stallman <rms@gnu.org>
parents: 13143
diff changeset
147 (syntax_temp = SYNTAX_ENTRY ((c)), \
13143
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
148 (CONSP (syntax_temp) \
25640
69c2d34eb25c Use XCAR and XCDR.
Ken Raeburn <raeburn@raeburn.org>
parents: 25446
diff changeset
149 ? XINT (XCAR (syntax_temp)) \
17045
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
150 : (int) Swhitespace))
13143
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
151
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
152 #define SYNTAX_MATCH(c) \
13318
94a4b6e9d310 (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Fix the non-GCC definitions.
Richard M. Stallman <rms@gnu.org>
parents: 13143
diff changeset
153 (syntax_temp = SYNTAX_ENTRY ((c)), \
13143
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
154 (CONSP (syntax_temp) \
25640
69c2d34eb25c Use XCAR and XCDR.
Ken Raeburn <raeburn@raeburn.org>
parents: 25446
diff changeset
155 ? XCDR (syntax_temp) \
17045
1dfa84b25d3b (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
Karl Heuer <kwzh@gnu.org>
parents: 14186
diff changeset
156 : Qnil))
5441
0af9674da850 (enum syntaxcode): Add Sinherit.
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
157 #endif
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
158
25446
2a2d7ebaa018 (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
Richard M. Stallman <rms@gnu.org>
parents: 23713
diff changeset
159 /* Then there are seven single-bit flags that have the following meanings:
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
160 1. This character is the first of a two-character comment-start sequence.
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
161 2. This character is the second of a two-character comment-start sequence.
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
162 3. This character is the first of a two-character comment-end sequence.
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
163 4. This character is the second of a two-character comment-end sequence.
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
164 5. This character is a prefix, for backward-prefix-chars.
25446
2a2d7ebaa018 (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
Richard M. Stallman <rms@gnu.org>
parents: 23713
diff changeset
165 6. see below
2a2d7ebaa018 (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
Richard M. Stallman <rms@gnu.org>
parents: 23713
diff changeset
166 7. This character is part of a nestable comment sequence.
1073
721e4f57c8b0 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 720
diff changeset
167 Note that any two-character sequence whose first character has flag 1
721e4f57c8b0 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 720
diff changeset
168 and whose second character has flag 2 will be interpreted as a comment start.
721e4f57c8b0 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 720
diff changeset
169
721e4f57c8b0 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 720
diff changeset
170 bit 6 is used to discriminate between two different comment styles.
721e4f57c8b0 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 720
diff changeset
171 Languages such as C++ allow two orthogonal syntax start/end pairs
721e4f57c8b0 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 720
diff changeset
172 and bit 6 is used to determine whether a comment-end or Scommentend
17465
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
173 ends style a or b. Comment start sequences can start style a or b.
1073
721e4f57c8b0 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 720
diff changeset
174 Style a is always the default.
721e4f57c8b0 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 720
diff changeset
175 */
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
176
21206
dac44ee5f772 (SYNTAX_FLAGS_COMSTART_FIRST): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 21015
diff changeset
177 /* These macros extract a particular flag for a given character. */
dac44ee5f772 (SYNTAX_FLAGS_COMSTART_FIRST): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 21015
diff changeset
178
13143
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
179 #define SYNTAX_COMSTART_FIRST(c) ((SYNTAX_WITH_FLAGS (c) >> 16) & 1)
5441
0af9674da850 (enum syntaxcode): Add Sinherit.
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
180
13143
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
181 #define SYNTAX_COMSTART_SECOND(c) ((SYNTAX_WITH_FLAGS (c) >> 17) & 1)
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
182
13143
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
183 #define SYNTAX_COMEND_FIRST(c) ((SYNTAX_WITH_FLAGS (c) >> 18) & 1)
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
184
13143
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
185 #define SYNTAX_COMEND_SECOND(c) ((SYNTAX_WITH_FLAGS (c) >> 19) & 1)
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
186
13143
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
187 #define SYNTAX_PREFIX(c) ((SYNTAX_WITH_FLAGS (c) >> 20) & 1)
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
188
13143
ba670977cceb Use char tables as syntax tables.
Richard M. Stallman <rms@gnu.org>
parents: 12244
diff changeset
189 #define SYNTAX_COMMENT_STYLE(c) ((SYNTAX_WITH_FLAGS (c) >> 21) & 1)
1073
721e4f57c8b0 entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 720
diff changeset
190
25446
2a2d7ebaa018 (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
Richard M. Stallman <rms@gnu.org>
parents: 23713
diff changeset
191 #define SYNTAX_COMMENT_NESTED(c) ((SYNTAX_WITH_FLAGS (c) >> 22) & 1)
2a2d7ebaa018 (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
Richard M. Stallman <rms@gnu.org>
parents: 23713
diff changeset
192
21206
dac44ee5f772 (SYNTAX_FLAGS_COMSTART_FIRST): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 21015
diff changeset
193 /* These macros extract specific flags from an integer
dac44ee5f772 (SYNTAX_FLAGS_COMSTART_FIRST): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 21015
diff changeset
194 that holds the syntax code and the flags. */
dac44ee5f772 (SYNTAX_FLAGS_COMSTART_FIRST): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 21015
diff changeset
195
dac44ee5f772 (SYNTAX_FLAGS_COMSTART_FIRST): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 21015
diff changeset
196 #define SYNTAX_FLAGS_COMSTART_FIRST(flags) (((flags) >> 16) & 1)
dac44ee5f772 (SYNTAX_FLAGS_COMSTART_FIRST): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 21015
diff changeset
197
dac44ee5f772 (SYNTAX_FLAGS_COMSTART_FIRST): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 21015
diff changeset
198 #define SYNTAX_FLAGS_COMSTART_SECOND(flags) (((flags) >> 17) & 1)
dac44ee5f772 (SYNTAX_FLAGS_COMSTART_FIRST): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 21015
diff changeset
199
dac44ee5f772 (SYNTAX_FLAGS_COMSTART_FIRST): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 21015
diff changeset
200 #define SYNTAX_FLAGS_COMEND_FIRST(flags) (((flags) >> 18) & 1)
dac44ee5f772 (SYNTAX_FLAGS_COMSTART_FIRST): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 21015
diff changeset
201
dac44ee5f772 (SYNTAX_FLAGS_COMSTART_FIRST): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 21015
diff changeset
202 #define SYNTAX_FLAGS_COMEND_SECOND(flags) (((flags) >> 19) & 1)
dac44ee5f772 (SYNTAX_FLAGS_COMSTART_FIRST): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 21015
diff changeset
203
dac44ee5f772 (SYNTAX_FLAGS_COMSTART_FIRST): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 21015
diff changeset
204 #define SYNTAX_FLAGS_PREFIX(flags) (((flags) >> 20) & 1)
dac44ee5f772 (SYNTAX_FLAGS_COMSTART_FIRST): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 21015
diff changeset
205
dac44ee5f772 (SYNTAX_FLAGS_COMSTART_FIRST): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 21015
diff changeset
206 #define SYNTAX_FLAGS_COMMENT_STYLE(flags) (((flags) >> 21) & 1)
dac44ee5f772 (SYNTAX_FLAGS_COMSTART_FIRST): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 21015
diff changeset
207
25446
2a2d7ebaa018 (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
Richard M. Stallman <rms@gnu.org>
parents: 23713
diff changeset
208 #define SYNTAX_FLAGS_COMMENT_NESTED(flags) (((flags) >> 22) & 1)
2a2d7ebaa018 (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
Richard M. Stallman <rms@gnu.org>
parents: 23713
diff changeset
209
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
210 /* This array, indexed by a character, contains the syntax code which that
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
211 character signifies (as a char). For example,
17465
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
212 (enum syntaxcode) syntax_spec_code['w'] is Sword. */
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
213
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
214 extern unsigned char syntax_spec_code[0400];
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
215
17465
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
216 /* Indexed by syntax code, give the letter that describes it. */
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
217
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
218 extern char syntax_code_spec[16];
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
219
20649
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
220 /* Convert the byte offset BYTEPOS into a character position,
21015
9f8f791762a8 (UPDATE_SYNTAX_TABLE): Do nothing unless parse_sexp_lookup_properties.
Richard M. Stallman <rms@gnu.org>
parents: 20957
diff changeset
221 for the object recorded in gl_state with SETUP_SYNTAX_TABLE_FOR_OBJECT.
9f8f791762a8 (UPDATE_SYNTAX_TABLE): Do nothing unless parse_sexp_lookup_properties.
Richard M. Stallman <rms@gnu.org>
parents: 20957
diff changeset
222
9f8f791762a8 (UPDATE_SYNTAX_TABLE): Do nothing unless parse_sexp_lookup_properties.
Richard M. Stallman <rms@gnu.org>
parents: 20957
diff changeset
223 The value is meant for use in the UPDATE_SYNTAX_TABLE... macros.
9f8f791762a8 (UPDATE_SYNTAX_TABLE): Do nothing unless parse_sexp_lookup_properties.
Richard M. Stallman <rms@gnu.org>
parents: 20957
diff changeset
224 These macros do nothing when parse_sexp_lookup_properties is 0,
9f8f791762a8 (UPDATE_SYNTAX_TABLE): Do nothing unless parse_sexp_lookup_properties.
Richard M. Stallman <rms@gnu.org>
parents: 20957
diff changeset
225 so we return 0 in that case, for speed. */
20649
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
226
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
227 #define SYNTAX_TABLE_BYTE_TO_CHAR(bytepos) \
21015
9f8f791762a8 (UPDATE_SYNTAX_TABLE): Do nothing unless parse_sexp_lookup_properties.
Richard M. Stallman <rms@gnu.org>
parents: 20957
diff changeset
228 (! parse_sexp_lookup_properties \
9f8f791762a8 (UPDATE_SYNTAX_TABLE): Do nothing unless parse_sexp_lookup_properties.
Richard M. Stallman <rms@gnu.org>
parents: 20957
diff changeset
229 ? 0 \
9f8f791762a8 (UPDATE_SYNTAX_TABLE): Do nothing unless parse_sexp_lookup_properties.
Richard M. Stallman <rms@gnu.org>
parents: 20957
diff changeset
230 : STRINGP (gl_state.object) \
20649
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
231 ? string_byte_to_char (gl_state.object, (bytepos)) \
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
232 : BUFFERP (gl_state.object) \
21481
e53c0d01cf31 (SETUP_SYNTAX_TABLE_FOR_OBJECT): FROM counts chars.
Karl Heuer <kwzh@gnu.org>
parents: 21206
diff changeset
233 ? buf_bytepos_to_charpos (XBUFFER (gl_state.object), \
e53c0d01cf31 (SETUP_SYNTAX_TABLE_FOR_OBJECT): FROM counts chars.
Karl Heuer <kwzh@gnu.org>
parents: 21206
diff changeset
234 (bytepos) + BUF_BEGV_BYTE (XBUFFER (gl_state.object)) - 1) - BUF_BEGV (XBUFFER (gl_state.object)) + 1 \
20649
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
235 : NILP (gl_state.object) \
21481
e53c0d01cf31 (SETUP_SYNTAX_TABLE_FOR_OBJECT): FROM counts chars.
Karl Heuer <kwzh@gnu.org>
parents: 21206
diff changeset
236 ? BYTE_TO_CHAR ((bytepos) + BEGV_BYTE - 1) - BEGV + 1 \
20649
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
237 : (bytepos))
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
238
21481
e53c0d01cf31 (SETUP_SYNTAX_TABLE_FOR_OBJECT): FROM counts chars.
Karl Heuer <kwzh@gnu.org>
parents: 21206
diff changeset
239 /* Make syntax table state (gl_state) good for CHARPOS, assuming it is
e53c0d01cf31 (SETUP_SYNTAX_TABLE_FOR_OBJECT): FROM counts chars.
Karl Heuer <kwzh@gnu.org>
parents: 21206
diff changeset
240 currently good for a position before CHARPOS. */
17465
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
241
21481
e53c0d01cf31 (SETUP_SYNTAX_TABLE_FOR_OBJECT): FROM counts chars.
Karl Heuer <kwzh@gnu.org>
parents: 21206
diff changeset
242 #define UPDATE_SYNTAX_TABLE_FORWARD(charpos) \
21015
9f8f791762a8 (UPDATE_SYNTAX_TABLE): Do nothing unless parse_sexp_lookup_properties.
Richard M. Stallman <rms@gnu.org>
parents: 20957
diff changeset
243 (parse_sexp_lookup_properties \
21481
e53c0d01cf31 (SETUP_SYNTAX_TABLE_FOR_OBJECT): FROM counts chars.
Karl Heuer <kwzh@gnu.org>
parents: 21206
diff changeset
244 && (charpos) >= gl_state.e_property \
e53c0d01cf31 (SETUP_SYNTAX_TABLE_FOR_OBJECT): FROM counts chars.
Karl Heuer <kwzh@gnu.org>
parents: 21206
diff changeset
245 ? (update_syntax_table ((charpos) + gl_state.offset, 1, 0, \
20649
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
246 gl_state.object), \
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
247 1) \
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
248 : 0)
17465
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
249
21481
e53c0d01cf31 (SETUP_SYNTAX_TABLE_FOR_OBJECT): FROM counts chars.
Karl Heuer <kwzh@gnu.org>
parents: 21206
diff changeset
250 /* Make syntax table state (gl_state) good for CHARPOS, assuming it is
e53c0d01cf31 (SETUP_SYNTAX_TABLE_FOR_OBJECT): FROM counts chars.
Karl Heuer <kwzh@gnu.org>
parents: 21206
diff changeset
251 currently good for a position after CHARPOS. */
18678
d26f9720e55f (struct gl_state_s): New field `offset'.
Richard M. Stallman <rms@gnu.org>
parents: 18625
diff changeset
252
21481
e53c0d01cf31 (SETUP_SYNTAX_TABLE_FOR_OBJECT): FROM counts chars.
Karl Heuer <kwzh@gnu.org>
parents: 21206
diff changeset
253 #define UPDATE_SYNTAX_TABLE_BACKWARD(charpos) \
21015
9f8f791762a8 (UPDATE_SYNTAX_TABLE): Do nothing unless parse_sexp_lookup_properties.
Richard M. Stallman <rms@gnu.org>
parents: 20957
diff changeset
254 (parse_sexp_lookup_properties \
39795
b945bdff4f96 (struct gl_state_s): Change the meaning of b_property.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 26870
diff changeset
255 && (charpos) < gl_state.b_property \
21481
e53c0d01cf31 (SETUP_SYNTAX_TABLE_FOR_OBJECT): FROM counts chars.
Karl Heuer <kwzh@gnu.org>
parents: 21206
diff changeset
256 ? (update_syntax_table ((charpos) + gl_state.offset, -1, 0, \
20649
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
257 gl_state.object), \
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
258 1) \
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
259 : 0)
17465
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
260
21481
e53c0d01cf31 (SETUP_SYNTAX_TABLE_FOR_OBJECT): FROM counts chars.
Karl Heuer <kwzh@gnu.org>
parents: 21206
diff changeset
261 /* Make syntax table good for CHARPOS. */
18678
d26f9720e55f (struct gl_state_s): New field `offset'.
Richard M. Stallman <rms@gnu.org>
parents: 18625
diff changeset
262
21481
e53c0d01cf31 (SETUP_SYNTAX_TABLE_FOR_OBJECT): FROM counts chars.
Karl Heuer <kwzh@gnu.org>
parents: 21206
diff changeset
263 #define UPDATE_SYNTAX_TABLE(charpos) \
21015
9f8f791762a8 (UPDATE_SYNTAX_TABLE): Do nothing unless parse_sexp_lookup_properties.
Richard M. Stallman <rms@gnu.org>
parents: 20957
diff changeset
264 (parse_sexp_lookup_properties \
39795
b945bdff4f96 (struct gl_state_s): Change the meaning of b_property.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 26870
diff changeset
265 && (charpos) < gl_state.b_property \
21481
e53c0d01cf31 (SETUP_SYNTAX_TABLE_FOR_OBJECT): FROM counts chars.
Karl Heuer <kwzh@gnu.org>
parents: 21206
diff changeset
266 ? (update_syntax_table ((charpos) + gl_state.offset, -1, 0, \
20649
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
267 gl_state.object), \
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
268 1) \
21015
9f8f791762a8 (UPDATE_SYNTAX_TABLE): Do nothing unless parse_sexp_lookup_properties.
Richard M. Stallman <rms@gnu.org>
parents: 20957
diff changeset
269 : (parse_sexp_lookup_properties \
21481
e53c0d01cf31 (SETUP_SYNTAX_TABLE_FOR_OBJECT): FROM counts chars.
Karl Heuer <kwzh@gnu.org>
parents: 21206
diff changeset
270 && (charpos) >= gl_state.e_property \
e53c0d01cf31 (SETUP_SYNTAX_TABLE_FOR_OBJECT): FROM counts chars.
Karl Heuer <kwzh@gnu.org>
parents: 21206
diff changeset
271 ? (update_syntax_table ((charpos) + gl_state.offset, 1, 0,\
20649
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
272 gl_state.object), \
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
273 1) \
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
274 : 0))
17465
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
275
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
276 /* This macro should be called with FROM at the start of forward
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
277 search, or after the last position of the backward search. It
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
278 makes sure that the first char is picked up with correct table, so
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
279 one does not need to call UPDATE_SYNTAX_TABLE immediately after the
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46370
diff changeset
280 call.
17465
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
281 Sign of COUNT gives the direction of the search.
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
282 */
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
283
20649
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
284 #define SETUP_SYNTAX_TABLE(FROM, COUNT) \
21015
9f8f791762a8 (UPDATE_SYNTAX_TABLE): Do nothing unless parse_sexp_lookup_properties.
Richard M. Stallman <rms@gnu.org>
parents: 20957
diff changeset
285 if (1) \
9f8f791762a8 (UPDATE_SYNTAX_TABLE): Do nothing unless parse_sexp_lookup_properties.
Richard M. Stallman <rms@gnu.org>
parents: 20957
diff changeset
286 { \
39795
b945bdff4f96 (struct gl_state_s): Change the meaning of b_property.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 26870
diff changeset
287 gl_state.b_property = BEGV; \
21015
9f8f791762a8 (UPDATE_SYNTAX_TABLE): Do nothing unless parse_sexp_lookup_properties.
Richard M. Stallman <rms@gnu.org>
parents: 20957
diff changeset
288 gl_state.e_property = ZV + 1; \
9f8f791762a8 (UPDATE_SYNTAX_TABLE): Do nothing unless parse_sexp_lookup_properties.
Richard M. Stallman <rms@gnu.org>
parents: 20957
diff changeset
289 gl_state.object = Qnil; \
9f8f791762a8 (UPDATE_SYNTAX_TABLE): Do nothing unless parse_sexp_lookup_properties.
Richard M. Stallman <rms@gnu.org>
parents: 20957
diff changeset
290 gl_state.use_global = 0; \
9f8f791762a8 (UPDATE_SYNTAX_TABLE): Do nothing unless parse_sexp_lookup_properties.
Richard M. Stallman <rms@gnu.org>
parents: 20957
diff changeset
291 gl_state.offset = 0; \
9f8f791762a8 (UPDATE_SYNTAX_TABLE): Do nothing unless parse_sexp_lookup_properties.
Richard M. Stallman <rms@gnu.org>
parents: 20957
diff changeset
292 gl_state.current_syntax_table = current_buffer->syntax_table; \
9f8f791762a8 (UPDATE_SYNTAX_TABLE): Do nothing unless parse_sexp_lookup_properties.
Richard M. Stallman <rms@gnu.org>
parents: 20957
diff changeset
293 if (parse_sexp_lookup_properties) \
22438
917424c9c149 (SETUP_SYNTAX_TABLE): Don't call update_syntax_table
Richard M. Stallman <rms@gnu.org>
parents: 21481
diff changeset
294 if ((COUNT) > 0 || (FROM) > BEGV) \
917424c9c149 (SETUP_SYNTAX_TABLE): Don't call update_syntax_table
Richard M. Stallman <rms@gnu.org>
parents: 21481
diff changeset
295 update_syntax_table ((COUNT) > 0 ? (FROM) : (FROM) - 1, (COUNT),\
917424c9c149 (SETUP_SYNTAX_TABLE): Don't call update_syntax_table
Richard M. Stallman <rms@gnu.org>
parents: 21481
diff changeset
296 1, Qnil); \
21015
9f8f791762a8 (UPDATE_SYNTAX_TABLE): Do nothing unless parse_sexp_lookup_properties.
Richard M. Stallman <rms@gnu.org>
parents: 20957
diff changeset
297 } \
9f8f791762a8 (UPDATE_SYNTAX_TABLE): Do nothing unless parse_sexp_lookup_properties.
Richard M. Stallman <rms@gnu.org>
parents: 20957
diff changeset
298 else
17465
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
299
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
300 /* Same as above, but in OBJECT. If OBJECT is nil, use current buffer.
18678
d26f9720e55f (struct gl_state_s): New field `offset'.
Richard M. Stallman <rms@gnu.org>
parents: 18625
diff changeset
301 If it is t, ignore properties altogether.
d26f9720e55f (struct gl_state_s): New field `offset'.
Richard M. Stallman <rms@gnu.org>
parents: 18625
diff changeset
302
d26f9720e55f (struct gl_state_s): New field `offset'.
Richard M. Stallman <rms@gnu.org>
parents: 18625
diff changeset
303 This is meant for regex.c to use. For buffers, regex.c passes arguments
d26f9720e55f (struct gl_state_s): New field `offset'.
Richard M. Stallman <rms@gnu.org>
parents: 18625
diff changeset
304 to the UPDATE_SYNTAX_TABLE macros which are relative to BEGV.
20544
a884f0426ab9 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Call bytepos_to_charpos.
Richard M. Stallman <rms@gnu.org>
parents: 20487
diff changeset
305 So if it is a buffer, we set the offset field to BEGV. */
486
80cdb2387043 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
306
20649
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
307 #define SETUP_SYNTAX_TABLE_FOR_OBJECT(OBJECT, FROM, COUNT) \
20544
a884f0426ab9 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Call bytepos_to_charpos.
Richard M. Stallman <rms@gnu.org>
parents: 20487
diff changeset
308 if (1) \
a884f0426ab9 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Call bytepos_to_charpos.
Richard M. Stallman <rms@gnu.org>
parents: 20487
diff changeset
309 { \
20649
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
310 gl_state.object = (OBJECT); \
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
311 if (BUFFERP (gl_state.object)) \
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
312 { \
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
313 struct buffer *buf = XBUFFER (gl_state.object); \
39795
b945bdff4f96 (struct gl_state_s): Change the meaning of b_property.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 26870
diff changeset
314 gl_state.b_property = 1; \
20957
25bb3da85d05 (UPDATE_SYNTAX_TABLE_FORWARD): Fix condition.
Karl Heuer <kwzh@gnu.org>
parents: 20708
diff changeset
315 gl_state.e_property = BUF_ZV (buf) - BUF_BEGV (buf) + 1; \
20649
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
316 gl_state.offset = BUF_BEGV (buf) - 1; \
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
317 } \
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
318 else if (NILP (gl_state.object)) \
20544
a884f0426ab9 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Call bytepos_to_charpos.
Richard M. Stallman <rms@gnu.org>
parents: 20487
diff changeset
319 { \
39795
b945bdff4f96 (struct gl_state_s): Change the meaning of b_property.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 26870
diff changeset
320 gl_state.b_property = 1; \
20957
25bb3da85d05 (UPDATE_SYNTAX_TABLE_FORWARD): Fix condition.
Karl Heuer <kwzh@gnu.org>
parents: 20708
diff changeset
321 gl_state.e_property = ZV - BEGV + 1; \
20544
a884f0426ab9 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Call bytepos_to_charpos.
Richard M. Stallman <rms@gnu.org>
parents: 20487
diff changeset
322 gl_state.offset = BEGV - 1; \
a884f0426ab9 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Call bytepos_to_charpos.
Richard M. Stallman <rms@gnu.org>
parents: 20487
diff changeset
323 } \
20649
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
324 else if (EQ (gl_state.object, Qt)) \
20544
a884f0426ab9 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Call bytepos_to_charpos.
Richard M. Stallman <rms@gnu.org>
parents: 20487
diff changeset
325 { \
39795
b945bdff4f96 (struct gl_state_s): Change the meaning of b_property.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 26870
diff changeset
326 gl_state.b_property = 0; \
20544
a884f0426ab9 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Call bytepos_to_charpos.
Richard M. Stallman <rms@gnu.org>
parents: 20487
diff changeset
327 gl_state.e_property = 1500000000; \
a884f0426ab9 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Call bytepos_to_charpos.
Richard M. Stallman <rms@gnu.org>
parents: 20487
diff changeset
328 gl_state.offset = 0; \
a884f0426ab9 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Call bytepos_to_charpos.
Richard M. Stallman <rms@gnu.org>
parents: 20487
diff changeset
329 } \
a884f0426ab9 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Call bytepos_to_charpos.
Richard M. Stallman <rms@gnu.org>
parents: 20487
diff changeset
330 else \
a884f0426ab9 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Call bytepos_to_charpos.
Richard M. Stallman <rms@gnu.org>
parents: 20487
diff changeset
331 { \
39795
b945bdff4f96 (struct gl_state_s): Change the meaning of b_property.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 26870
diff changeset
332 gl_state.b_property = 0; \
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 39795
diff changeset
333 gl_state.e_property = 1 + SCHARS (gl_state.object); \
20544
a884f0426ab9 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Call bytepos_to_charpos.
Richard M. Stallman <rms@gnu.org>
parents: 20487
diff changeset
334 gl_state.offset = 0; \
a884f0426ab9 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Call bytepos_to_charpos.
Richard M. Stallman <rms@gnu.org>
parents: 20487
diff changeset
335 } \
a884f0426ab9 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Call bytepos_to_charpos.
Richard M. Stallman <rms@gnu.org>
parents: 20487
diff changeset
336 gl_state.use_global = 0; \
a884f0426ab9 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Call bytepos_to_charpos.
Richard M. Stallman <rms@gnu.org>
parents: 20487
diff changeset
337 gl_state.current_syntax_table = current_buffer->syntax_table; \
a884f0426ab9 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Call bytepos_to_charpos.
Richard M. Stallman <rms@gnu.org>
parents: 20487
diff changeset
338 if (parse_sexp_lookup_properties) \
21481
e53c0d01cf31 (SETUP_SYNTAX_TABLE_FOR_OBJECT): FROM counts chars.
Karl Heuer <kwzh@gnu.org>
parents: 21206
diff changeset
339 update_syntax_table (((FROM) + gl_state.offset \
20649
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
340 + (COUNT > 0 ? 0 : -1)), \
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
341 COUNT, 1, gl_state.object); \
20544
a884f0426ab9 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Call bytepos_to_charpos.
Richard M. Stallman <rms@gnu.org>
parents: 20487
diff changeset
342 } \
a884f0426ab9 (SETUP_SYNTAX_TABLE_FOR_OBJECT): Call bytepos_to_charpos.
Richard M. Stallman <rms@gnu.org>
parents: 20487
diff changeset
343 else
17465
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
344
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
345 struct gl_state_s
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
346 {
20649
388cedeebb88 (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 20544
diff changeset
347 Lisp_Object object; /* The object we are scanning. */
17465
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
348 int start; /* Where to stop. */
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
349 int stop; /* Where to stop. */
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
350 int use_global; /* Whether to use global_code
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
351 or c_s_t. */
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
352 Lisp_Object global_code; /* Syntax code of current char. */
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
353 Lisp_Object current_syntax_table; /* Syntax table for current pos. */
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
354 Lisp_Object old_prop; /* Syntax-table prop at prev pos. */
39795
b945bdff4f96 (struct gl_state_s): Change the meaning of b_property.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 26870
diff changeset
355 int b_property; /* First index where c_s_t is valid. */
17465
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
356 int e_property; /* First index where c_s_t is
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
357 not valid. */
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
358 INTERVAL forward_i; /* Where to start lookup on forward */
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
359 INTERVAL backward_i; /* or backward movement. The
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
360 data in c_s_t is valid
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
361 between these intervals,
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
362 and possibly at the
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
363 intervals too, depending
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
364 on: */
18678
d26f9720e55f (struct gl_state_s): New field `offset'.
Richard M. Stallman <rms@gnu.org>
parents: 18625
diff changeset
365 /* Offset for positions specified to UPDATE_SYNTAX_TABLE. */
d26f9720e55f (struct gl_state_s): New field `offset'.
Richard M. Stallman <rms@gnu.org>
parents: 18625
diff changeset
366 int offset;
17465
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
367 };
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
368
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
369 extern struct gl_state_s gl_state;
8a008f65c8d4 (enum syntaxcode): New members Scomment_fence, Sstring_fence.
Richard M. Stallman <rms@gnu.org>
parents: 17181
diff changeset
370 extern int parse_sexp_lookup_properties;
20349
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 19826
diff changeset
371 extern INTERVAL interval_of P_ ((int, Lisp_Object));
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 19826
diff changeset
372
6ab8801244c2 Add prototypes.
Andreas Schwab <schwab@suse.de>
parents: 19826
diff changeset
373 extern int scan_words P_ ((int, int));