2 * CDE - Common Desktop Environment
4 * Copyright (c) 1993-2012, The Open Group. All rights reserved.
6 * These libraries and programs are free software; you can
7 * redistribute them and/or modify them under the terms of the GNU
8 * Lesser General Public License as published by the Free Software
9 * Foundation; either version 2 of the License, or (at your option)
12 * These libraries and programs are distributed in the hope that
13 * they will be useful, but WITHOUT ANY WARRANTY; without even the
14 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU Lesser General Public License for more
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with these librararies and programs; if not, write
20 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21 * Floor, Boston, MA 02110-1301 USA
23 /* $XConsortium: lexstates.c /main/3 1995/11/01 16:32:39 rswiston $ */
24 /***************************************************************
26 * AT&T - PROPRIETARY *
28 * THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF *
29 * AT&T BELL LABORATORIES *
30 * AND IS NOT TO BE DISCLOSED OR USED EXCEPT IN *
31 * ACCORDANCE WITH APPLICABLE AGREEMENTS *
33 * Copyright (c) 1995 AT&T Corp. *
34 * Unpublished & Not for Publication *
35 * All Rights Reserved *
37 * The copyright notice above does not evidence any *
38 * actual or intended publication of such source code *
40 * This software was created by the *
41 * Advanced Software Technology Department *
42 * AT&T Bell Laboratories *
44 * For further information contact *
45 * {research,attmail}!dgk *
47 ***************************************************************/
49 /* : : generated by proto : : */
51 #if !defined(__PROTO__)
52 #if defined(__STDC__) || defined(__cplusplus) || defined(_proto) || defined(c_plusplus)
53 #if defined(__cplusplus)
54 #define __MANGLE__ "C"
59 #define __PROTO__(x) x
61 #define __PARAM__(n,o) n
62 #if !defined(__STDC__) && !defined(__cplusplus)
63 #if !defined(c_plusplus)
74 #define __PROTO__(x) ()
75 #define __OTORP__(x) x
76 #define __PARAM__(n,o) o
84 #if defined(__cplusplus) || defined(c_plusplus)
85 #define __VARARG__ ...
89 #if defined(__STDARG__)
90 #define __VA_START__(p,a) va_start(p,a)
92 #define __VA_START__(p,a) va_start(p)
95 #include "FEATURE/options"
96 #include "lexstates.h"
100 * This is the initial state for tokens
102 static const char sh_lexstate0[256] =
104 S_EOF, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
106 S_REG, 0, S_NLTOK,S_REG, S_REG, 0, S_REG, S_REG,
108 S_REG, 0, S_NLTOK,S_REG, S_REG, S_REG, S_REG, S_REG,
109 #endif /* SHOPT_CRNL */
110 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
111 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
113 0, S_REG, S_REG, S_COM, S_REG, S_REG, S_OP, S_REG,
114 S_OP, S_OP, S_REG, S_REG, S_REG, S_REG, S_NAME, S_REG,
115 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
116 S_REG, S_REG, S_REG, S_OP, S_OP, S_REG, S_OP, S_REG,
118 S_REG, S_NAME, S_NAME, S_NAME, S_NAME, S_NAME, S_NAME, S_NAME,
119 S_NAME, S_NAME, S_NAME, S_NAME, S_NAME, S_NAME, S_NAME, S_NAME,
120 S_NAME, S_NAME, S_NAME, S_NAME, S_NAME, S_NAME, S_NAME, S_NAME,
121 S_NAME, S_NAME, S_NAME, S_REG, S_REG, S_REG, S_REG, S_NAME,
123 S_REG, S_NAME, S_NAME, S_RES, S_RES, S_RES, S_RES, S_NAME,
124 S_NAME, S_RES, S_NAME, S_NAME, S_NAME, S_NAME, S_NAME, S_NAME,
125 S_NAME, S_NAME, S_NAME, S_RES, S_RES, S_RES, S_NAME, S_RES,
126 S_NAME, S_NAME, S_NAME, S_REG, S_OP, S_REG, S_TILDE,S_REG,
128 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
129 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
130 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
131 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
132 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
133 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
134 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
135 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
136 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
137 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
138 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
139 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
140 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
141 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
142 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
143 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
147 * This state is for identifiers
149 static const char sh_lexstate1[256] =
151 S_EOF, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
153 S_REG, S_BREAK,S_BREAK,S_REG, S_REG, S_BREAK,S_REG, S_REG,
155 S_REG, S_BREAK,S_BREAK,S_REG, S_REG, S_REG, S_REG, S_REG,
156 #endif /* SHOPT_CRNL */
157 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
158 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
160 S_BREAK,S_EPAT, S_QUOTE,S_REG, S_DOL, S_REG, S_BREAK,S_LIT,
161 S_BREAK,S_BREAK,S_PAT, S_EPAT, S_REG, S_REG, S_DOT, S_REG,
162 0, 0, 0, 0, 0, 0, 0, 0,
163 0, 0, S_LABEL,S_BREAK,S_BREAK,S_EQ, S_BREAK,S_PAT,
165 S_EPAT, 0, 0, 0, 0, 0, 0, 0,
166 0, 0, 0, 0, 0, 0, 0, 0,
167 0, 0, 0, 0, 0, 0, 0, 0,
168 0, 0, 0, S_BRACT,S_ESC, S_REG, S_REG, 0,
170 S_GRAVE,0, 0, 0, 0, 0, 0, 0,
171 0, 0, 0, 0, 0, 0, 0, 0,
172 0, 0, 0, 0, 0, 0, 0, 0,
173 0, 0, 0, S_BRACE,S_BREAK,S_BRACE,S_REG, S_REG,
175 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
176 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
177 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
178 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
179 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
180 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
181 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
182 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
183 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
184 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
185 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
186 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
187 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
188 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
189 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
190 S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
193 static const char sh_lexstate2[256] =
195 S_EOF, 0, 0, 0, 0, 0, 0, 0,
197 0, S_BREAK,S_BREAK,0, 0, S_BREAK,0, 0,
199 0, S_BREAK,S_BREAK,0, 0, 0, 0, 0,
200 #endif /* SHOPT_CRNL */
201 0, 0, 0, 0, 0, 0, 0, 0,
202 0, 0, 0, 0, 0, 0, 0, 0,
204 S_BREAK,S_EPAT, S_QUOTE,0, S_DOL, 0, S_BREAK,S_LIT,
205 S_BREAK,S_BREAK,S_PAT, S_EPAT, 0, 0, 0, 0,
206 0, 0, 0, 0, 0, 0, 0, 0,
207 0, 0, S_COLON,S_BREAK,S_BREAK,0, S_BREAK,S_PAT,
209 S_EPAT, 0, 0, 0, 0, 0, 0, 0,
210 0, 0, 0, 0, 0, 0, 0, 0,
211 0, 0, 0, 0, 0, 0, 0, 0,
212 0, 0, 0, S_PAT, S_ESC, 0, 0, 0,
214 S_GRAVE,0, 0, 0, 0, 0, 0, 0,
215 0, 0, 0, 0, 0, 0, 0, 0,
216 0, 0, 0, 0, 0, 0, 0, 0,
217 0, 0, 0, S_BRACE,S_BREAK,S_BRACE,0, 0,
221 * for skipping over '...'
223 static const char sh_lexstate3[256] =
225 S_EOF, 0, 0, 0, 0, 0, 0, 0,
226 0, 0, S_NL, 0, 0, 0, 0, 0,
227 0, 0, 0, 0, 0, 0, 0, 0,
228 0, 0, 0, 0, 0, 0, 0, 0,
230 0, 0, 0, 0, 0, 0, 0, S_LIT,
231 0, 0, 0, 0, 0, 0, 0, 0,
232 0, 0, 0, 0, 0, 0, 0, 0,
233 0, 0, 0, 0, 0, 0, 0, 0,
235 0, 0, 0, 0, 0, 0, 0, 0,
236 0, 0, 0, 0, 0, 0, 0, 0,
237 0, 0, 0, 0, 0, 0, 0, 0,
238 0, 0, 0, 0, S_ESC2, 0, 0, 0
242 * for skipping over "..." and `...`
244 static const char sh_lexstate4[256] =
246 S_EOF, 0, 0, 0, 0, 0, 0, 0,
247 0, 0, S_NL, 0, 0, 0, 0, 0,
248 0, 0, 0, 0, 0, 0, 0, 0,
249 0, 0, 0, 0, 0, 0, 0, 0,
250 0, 0, S_QUOTE,0, S_DOL, 0, 0, 0,
251 0, 0, 0, 0, 0, 0, 0, 0,
252 0, 0, 0, 0, 0, 0, 0, 0,
253 0, 0, 0, 0, 0, 0, 0, 0,
254 0, 0, 0, 0, 0, 0, 0, 0,
255 0, 0, 0, 0, 0, 0, 0, 0,
256 0, 0, 0, 0, 0, 0, 0, 0,
257 0, 0, 0, 0, S_ESC, 0, 0, 0,
258 S_GRAVE,0, 0, 0, 0, 0, 0, 0,
259 0, 0, 0, 0, 0, 0, 0, 0,
260 0, 0, 0, 0, 0, 0, 0, 0,
261 0, 0, 0, 0, 0, S_RBRA, 0, 0
265 * for skipping over ?(...), [...]
267 static const char sh_lexstate5[256] =
269 S_EOF, 0, 0, 0, 0, 0, 0, 0,
270 0, 0, S_NL, 0, 0, 0, 0, 0,
271 0, 0, 0, 0, 0, 0, 0, 0,
272 0, 0, 0, 0, 0, 0, 0, 0,
273 0, 0, S_QUOTE,0, S_DOL, 0, S_META, S_LIT,
274 S_PUSH, S_POP, 0, 0, 0, 0, 0, 0,
275 0, 0, 0, 0, 0, 0, 0, 0,
276 0, 0, 0, S_POP, S_META, 0, S_META, 0,
277 0, 0, 0, 0, 0, 0, 0, 0,
278 0, 0, 0, 0, 0, 0, 0, 0,
279 0, 0, 0, 0, 0, 0, 0, 0,
280 0, 0, 0, S_BRACT,S_ESC, S_POP, 0, 0,
281 S_GRAVE,0, 0, 0, 0, 0, 0, 0,
282 0, 0, 0, 0, 0, 0, 0, 0,
283 0, 0, 0, 0, 0, 0, 0, 0,
284 0, 0, 0, 0, S_META, S_POP, 0, 0
288 * Defines valid expansion characters
290 static const char sh_lexstate6[256] =
292 S_EOF, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
293 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
294 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
295 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
297 S_ERR, S_SPC1, S_ERR, S_SPC1, S_SPC2, S_ERR, S_ERR, S_LIT,
299 S_PAR, S_ERR, S_SPC2, S_ERR, S_ERR, S_SPC1, S_ALP, S_ERR,
301 S_PAR, S_ERR, S_SPC2, S_ERR, S_ERR, S_SPC2, S_ALP, S_ERR,
302 #endif /* SHOPT_OO */
303 S_DIG, S_DIG, S_DIG, S_DIG, S_DIG, S_DIG, S_DIG, S_DIG,
304 S_DIG, S_DIG, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_SPC2,
306 S_SPC2, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP,
307 S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP,
308 S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP,
309 S_ALP, S_ALP, S_ALP, S_ERR, S_ERR, S_ERR, S_ERR, S_ALP,
311 S_ERR, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP,
312 S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP,
313 S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP,
314 S_ALP, S_ALP, S_ALP, S_LBRA, S_ERR, S_RBRA, S_ERR, S_ERR,
316 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
317 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
318 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
319 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
320 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
321 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
322 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
323 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
324 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
325 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
326 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
327 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
328 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
329 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
330 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
331 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
335 * for skipping over ${...} until modifier
337 static const char sh_lexstate7[256] =
339 S_EOF, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
340 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
341 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
342 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
344 S_ERR, S_ERR, S_ERR, S_MOD2, S_ERR, S_MOD2, S_ERR, S_ERR,
345 S_ERR, S_ERR, S_MOD1, S_MOD1, S_ERR, S_MOD1, S_DOT, S_MOD2,
346 0, 0, 0, 0, 0, 0, 0, 0,
347 0, 0, S_MOD1, S_ERR, S_ERR, S_MOD1, S_ERR, S_MOD1,
349 0, 0, 0, 0, 0, 0, 0, 0,
350 0, 0, 0, 0, 0, 0, 0, 0,
351 0, 0, 0, 0, 0, 0, 0, 0,
352 0, 0, 0, S_BRACT,S_ESC, S_ERR, S_ERR, 0,
354 S_ERR, 0, 0, 0, 0, 0, 0, 0,
355 0, 0, 0, 0, 0, 0, 0, 0,
356 0, 0, 0, 0, 0, 0, 0, 0,
357 0, 0, 0, S_ERR, S_ERR, S_POP, S_ERR, S_ERR,
359 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
360 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
361 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
362 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
363 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
364 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
365 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
366 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
367 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
368 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
369 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
370 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
371 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
372 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
373 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
374 S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
378 * This state is for $name
380 static const char sh_lexstate8[256] =
382 S_EOF, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
383 S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
384 S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
385 S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
387 S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
388 S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
389 0, 0, 0, 0, 0, 0, 0, 0,
390 0, 0, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
392 S_EDOL, 0, 0, 0, 0, 0, 0, 0,
393 0, 0, 0, 0, 0, 0, 0, 0,
394 0, 0, 0, 0, 0, 0, 0, 0,
395 0, 0, 0, S_EDOL, S_EDOL, S_EDOL, S_EDOL, 0,
397 S_EDOL,0, 0, 0, 0, 0, 0, 0,
398 0, 0, 0, 0, 0, 0, 0, 0,
399 0, 0, 0, 0, 0, 0, 0, 0,
400 0, 0, 0, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
402 S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
403 S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
404 S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
405 S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
406 S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
407 S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
408 S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
409 S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
410 S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
411 S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
412 S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
413 S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
414 S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
415 S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
416 S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
417 S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
421 * This is used for macro expansion
423 static const char sh_lexstate9[256] =
425 S_EOF, 0, 0, 0, 0, 0, 0, 0,
426 0, 0, 0, 0, 0, 0, 0, 0,
427 0, 0, 0, 0, 0, 0, 0, 0,
428 0, 0, 0, 0, 0, 0, 0, 0,
429 0, 0, S_QUOTE,0, S_DOL, 0, S_PAT, S_LIT,
430 S_PAT, S_PAT, S_PAT, 0, 0, 0, 0, S_SLASH,
431 0, S_DIG, S_DIG, S_DIG, S_DIG, S_DIG, S_DIG, S_DIG,
432 S_DIG, S_DIG, S_COLON,0, 0, S_EQ, 0, S_PAT,
433 0, 0, 0, 0, 0, 0, 0, 0,
434 0, 0, 0, 0, 0, 0, 0, 0,
435 0, 0, 0, 0, 0, 0, 0, 0,
436 0, 0, 0, S_BRACT,S_ESC, S_ENDCH,0, 0,
437 S_GRAVE,0, 0, 0, 0, 0, 0, 0,
438 0, 0, 0, 0, 0, 0, 0, 0,
439 0, 0, 0, 0, 0, 0, 0, 0,
440 #ifdef SHOPT_BRACEPAT
441 0, 0, 0, S_PAT, S_PAT, S_ENDCH,0, 0
443 0, 0, 0, 0, S_PAT, S_ENDCH,0, 0
444 #endif /* SHOPT_BRACEPAT */
447 const char *sh_lexrstates[ST_NONE] =
449 sh_lexstate0, sh_lexstate1, sh_lexstate2, sh_lexstate3,
450 sh_lexstate4, sh_lexstate5, sh_lexstate6, sh_lexstate7,
451 sh_lexstate8, sh_lexstate9, sh_lexstate5
455 const char e_lexversion[] = "%d: invalid binary script version";
456 const char e_lexspace[] = "line %d: use space or tab to separate operators %c and %c";
457 const char e_lexslash[] = "line %d: $ not preceeded by \\";
458 const char e_lexsyntax1[] = "syntax error at line %d: `%s' %s";
459 const char e_lexsyntax2[] = "syntax error: `%s' %s";
460 const char e_lexsyntax3[] = "syntax error at line %d: duplicate label %s";
461 const char e_lexlabignore[] = "line %d: label %s ignored";
462 const char e_lexlabunknown[] = "line %d: %s unknown label";
463 const char e_lexobsolete1[] = "line %d: `...` obsolete, use $(...)";
464 const char e_lexobsolete2[] = "line %d: -a obsolete, use -e";
465 const char e_lexobsolete3[] = "line %d: '=' obsolete, use '=='";
466 const char e_lexobsolete4[] = "line %d: %s within [[...]] obsolete, use ((...))";
467 const char e_lexobsolete5[] = "line %d: set %s obsolete";
468 const char e_lexobsolete6[] = "line %d: `{' instead of `in' is obsolete";
469 const char e_lexusebrace[] = "line %d: use braces to avoid ambiguities with $id[...]";
470 const char e_lexusequote[] = "line %d: %c within ${} should be quoted";
471 const char e_lexescape[] = "line %d: escape %c to avoid ambiguities";
472 const char e_lexquote[] = "line %d: quote %c to avoid ambiguities";
473 const char e_lexnested[] = "line %d: spaces required for nested subshell";
474 const char e_lexbadchar[] = "%c: invalid character in expression - %s";
475 const char e_lexfuture[] = "line %d: \\ in front of %c reserved for future use";
476 const char e_lexlongquote[] = "line %d: %c quote may be missing";
477 const char e_lexzerobyte[] = "zero byte";