1da2e3ebdSchin /***********************************************************************
2da2e3ebdSchin *                                                                      *
3da2e3ebdSchin *               This software is part of the ast package               *
4*b30d1939SAndy Fiddaman *          Copyright (c) 1982-2012 AT&T Intellectual Property          *
5da2e3ebdSchin *                      and is licensed under the                       *
6*b30d1939SAndy Fiddaman *                 Eclipse Public License, Version 1.0                  *
77c2fbfb3SApril Chin *                    by AT&T Intellectual Property                     *
8da2e3ebdSchin *                                                                      *
9da2e3ebdSchin *                A copy of the License is available at                 *
10*b30d1939SAndy Fiddaman *          http://www.eclipse.org/org/documents/epl-v10.html           *
11*b30d1939SAndy Fiddaman *         (with md5 checksum b35adb5213ca9657e911e9befb180842)         *
12da2e3ebdSchin *                                                                      *
13da2e3ebdSchin *              Information and Software Systems Research               *
14da2e3ebdSchin *                            AT&T Research                             *
15da2e3ebdSchin *                           Florham Park NJ                            *
16da2e3ebdSchin *                                                                      *
17da2e3ebdSchin *                  David Korn <dgk@research.att.com>                   *
18da2e3ebdSchin *                                                                      *
19da2e3ebdSchin ***********************************************************************/
20da2e3ebdSchin #pragma prototyped
21*b30d1939SAndy Fiddaman #include	"shell.h"
22da2e3ebdSchin #include	"shlex.h"
23da2e3ebdSchin #include	"FEATURE/options"
24da2e3ebdSchin 
25da2e3ebdSchin /*
26da2e3ebdSchin  * table of reserved words in shell language
27da2e3ebdSchin  * This list must be in in ascii sorted order
28da2e3ebdSchin  */
29da2e3ebdSchin 
30da2e3ebdSchin const Shtable_t shtab_reserved[] =
31da2e3ebdSchin {
32da2e3ebdSchin 		"!",		NOTSYM,
33da2e3ebdSchin 		"[[",		BTESTSYM,
34da2e3ebdSchin 		"case",		CASESYM,
35da2e3ebdSchin 		"do",		DOSYM,
36da2e3ebdSchin 		"done",		DONESYM,
37da2e3ebdSchin 		"elif",		ELIFSYM,
38da2e3ebdSchin 		"else",		ELSESYM,
39da2e3ebdSchin 		"esac",		ESACSYM,
40da2e3ebdSchin 		"fi",		FISYM,
41da2e3ebdSchin 		"for",		FORSYM,
42da2e3ebdSchin 		"function",	FUNCTSYM,
43da2e3ebdSchin 		"if",		IFSYM,
44da2e3ebdSchin 		"in",		INSYM,
45da2e3ebdSchin #if SHOPT_NAMESPACE
46da2e3ebdSchin 		"namespace",	NSPACESYM,
47da2e3ebdSchin #endif /* SHOPT_NAMESPACE */
48da2e3ebdSchin 		"select",	SELECTSYM,
49da2e3ebdSchin 		"then",		THENSYM,
50da2e3ebdSchin 		"time",		TIMESYM,
51da2e3ebdSchin 		"until",	UNTILSYM,
52da2e3ebdSchin 		"while",	WHILESYM,
53da2e3ebdSchin 		"{",		LBRACE,
54da2e3ebdSchin 		"}",		RBRACE,
55da2e3ebdSchin 		"",		0,
56da2e3ebdSchin };
57da2e3ebdSchin 
58da2e3ebdSchin const char	e_unexpected[]	= "unexpected";
59da2e3ebdSchin const char	e_unmatched[]	= "unmatched";
60da2e3ebdSchin const char	e_endoffile[]	= "end of file";
61da2e3ebdSchin const char	e_newline[]	= "newline";
62da2e3ebdSchin 
63