da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin/***********************************************************************
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* This software is part of the ast package *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* Copyright (c) 1982-2010 AT&T Intellectual Property *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* and is licensed under the *
3e14f97f673e8a630f076077de35afdd43dc1587Roger A. Faulkner* Common Public License, Version 1.0 *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* by AT&T Intellectual Property *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* *
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin* A copy of the License is available at *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* http://www.opensource.org/licenses/cpl1.0.txt *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* Information and Software Systems Research *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* AT&T Research *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* Florham Park NJ *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* David Korn <dgk@research.att.com> *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin* *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin***********************************************************************/
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#pragma prototyped
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#include "shtable.h"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#include <shell.h>
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#include "shlex.h"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#include "FEATURE/options"
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin/*
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * table of reserved words in shell language
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * This list must be in in ascii sorted order
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin */
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinconst Shtable_t shtab_reserved[] =
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin{
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin "!", NOTSYM,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin "[[", BTESTSYM,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin "case", CASESYM,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin "do", DOSYM,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin "done", DONESYM,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin "elif", ELIFSYM,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin "else", ELSESYM,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin "esac", ESACSYM,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin "fi", FISYM,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin "for", FORSYM,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin "function", FUNCTSYM,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin "if", IFSYM,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin "in", INSYM,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#if SHOPT_NAMESPACE
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin "namespace", NSPACESYM,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin#endif /* SHOPT_NAMESPACE */
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin "select", SELECTSYM,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin "then", THENSYM,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin "time", TIMESYM,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin "until", UNTILSYM,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin "while", WHILESYM,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin "{", LBRACE,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin "}", RBRACE,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin "", 0,
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin};
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinconst char e_unexpected[] = "unexpected";
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinconst char e_unmatched[] = "unmatched";
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinconst char e_endoffile[] = "end of file";
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinconst char e_newline[] = "newline";
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin