1N/A/***********************************************************************
1N/A* *
1N/A* This software is part of the ast package *
1N/A* Copyright (c) 1982-2011 AT&T Intellectual Property *
1N/A* and is licensed under the *
1N/A* Common Public License, Version 1.0 *
1N/A* by AT&T Intellectual Property *
1N/A* *
1N/A* A copy of the License is available at *
1N/A* http://www.opensource.org/licenses/cpl1.0.txt *
1N/A* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
1N/A* *
1N/A* Information and Software Systems Research *
1N/A* AT&T Research *
1N/A* Florham Park NJ *
1N/A* *
1N/A* David Korn <dgk@research.att.com> *
1N/A* *
1N/A***********************************************************************/
1N/A#pragma prototyped
1N/A
1N/A#include <ast.h>
1N/A
1N/A#include "FEATURE/options"
1N/A#include "lexstates.h"
1N/A
1N/A
1N/A/*
1N/A * This is the initial state for tokens
1N/A */
1N/Astatic const char sh_lexstate0[256] =
1N/A{
1N/A S_EOF, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A#if SHOPT_CRNL
1N/A S_REG, 0, S_NLTOK,S_REG, S_REG, 0, S_REG, S_REG,
1N/A#else
1N/A S_REG, 0, S_NLTOK,S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A#endif /* SHOPT_CRNL */
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A
1N/A 0, S_REG, S_REG, S_COM, S_REG, S_REG, S_OP, S_REG,
1N/A S_OP, S_OP, S_REG, S_REG, S_REG, S_REG, S_NAME, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_OP, S_OP, S_REG, S_OP, S_REG,
1N/A
1N/A S_REG, S_NAME, S_NAME, S_NAME, S_NAME, S_NAME, S_NAME, S_NAME,
1N/A S_NAME, S_NAME, S_NAME, S_NAME, S_NAME, S_NAME, S_NAME, S_NAME,
1N/A S_NAME, S_NAME, S_NAME, S_NAME, S_NAME, S_NAME, S_NAME, S_NAME,
1N/A S_NAME, S_NAME, S_NAME, S_REG, S_REG, S_REG, S_REG, S_NAME,
1N/A
1N/A S_REG, S_NAME, S_NAME, S_RES, S_RES, S_RES, S_RES, S_NAME,
1N/A#if SHOPT_NAMESPACE
1N/A S_NAME, S_RES, S_NAME, S_NAME, S_NAME, S_NAME, S_RES, S_NAME,
1N/A#else
1N/A S_NAME, S_RES, S_NAME, S_NAME, S_NAME, S_NAME, S_NAME, S_NAME,
1N/A#endif /* SHOPT_NAMESPACE */
1N/A S_NAME, S_NAME, S_NAME, S_RES, S_RES, S_RES, S_NAME, S_RES,
1N/A S_NAME, S_NAME, S_NAME, S_BRACE,S_OP, S_BRACE,S_TILDE,S_REG,
1N/A
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A};
1N/A
1N/A/*
1N/A * This state is for identifiers
1N/A */
1N/Astatic const char sh_lexstate1[256] =
1N/A{
1N/A S_EOF, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A#if SHOPT_CRNL
1N/A S_REG, S_BREAK,S_BREAK,S_REG, S_REG, S_BREAK,S_REG, S_REG,
1N/A#else
1N/A S_REG, S_BREAK,S_BREAK,S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A#endif /* SHOPT_CRNL */
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A
1N/A S_BREAK,S_EPAT, S_QUOTE,S_REG, S_DOL, S_EPAT, S_BREAK,S_LIT,
1N/A S_BREAK,S_BREAK,S_PAT, S_EPAT, S_REG, S_EPAT, S_DOT, S_REG,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, S_LABEL,S_BREAK,S_BREAK,S_EQ, S_BREAK,S_PAT,
1N/A
1N/A S_EPAT, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, S_BRACT,S_ESC, S_REG, S_REG, 0,
1N/A
1N/A S_GRAVE,0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, S_BRACE,S_BREAK,S_BRACE,S_EPAT, S_REG,
1N/A
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG, S_REG,
1N/A};
1N/A
1N/Astatic const char sh_lexstate2[256] =
1N/A{
1N/A S_EOF, 0, 0, 0, 0, 0, 0, 0,
1N/A#if SHOPT_CRNL
1N/A 0, S_BREAK,S_BREAK,0, 0, S_BREAK,0, 0,
1N/A#else
1N/A 0, S_BREAK,S_BREAK,0, 0, 0, 0, 0,
1N/A#endif /* SHOPT_CRNL */
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A
1N/A S_BREAK,S_EPAT, S_QUOTE,0, S_DOL, S_EPAT, S_BREAK,S_LIT,
1N/A S_BREAK,S_BREAK,S_PAT, S_EPAT, 0, S_EPAT, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, S_COLON,S_BREAK,S_BREAK,0, S_BREAK,S_PAT,
1N/A
1N/A S_EPAT, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, S_PAT, S_ESC, 0, 0, 0,
1N/A
1N/A S_GRAVE,0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, S_BRACE,S_BREAK,S_BRACE,S_EPAT, 0,
1N/A};
1N/A
1N/A/*
1N/A * for skipping over '...'
1N/A */
1N/Astatic const char sh_lexstate3[256] =
1N/A{
1N/A S_EOF, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, S_NL, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A
1N/A 0, 0, 0, 0, 0, 0, 0, S_LIT,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, S_ESC2, 0, 0, 0
1N/A};
1N/A
1N/A/*
1N/A * for skipping over "..." and `...`
1N/A */
1N/Astatic const char sh_lexstate4[256] =
1N/A{
1N/A S_EOF, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, S_NL, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, S_QUOTE,0, S_DOL, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, S_ESC, 0, 0, 0,
1N/A S_GRAVE,0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, S_RBRA, 0, 0
1N/A};
1N/A
1N/A/*
1N/A * for skipping over ?(...), [...]
1N/A */
1N/Astatic const char sh_lexstate5[256] =
1N/A{
1N/A S_EOF, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, S_BLNK, S_NL, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A S_BLNK, 0, S_QUOTE,0, S_DOL, 0, S_META, S_LIT,
1N/A S_PUSH, S_POP, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, S_POP, S_META, 0, S_META, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, S_BRACT,S_ESC, S_POP, 0, 0,
1N/A S_GRAVE,0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, S_BRACE,S_META, S_POP, S_TILDE,0
1N/A};
1N/A
1N/A/*
1N/A * Defines valid expansion characters
1N/A */
1N/Astatic const char sh_lexstate6[256] =
1N/A{
1N/A S_EOF, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A
1N/A S_ERR, S_SPC1, S_ERR, S_SPC1, S_SPC2, S_ERR, S_ERR, S_LIT,
1N/A S_PAR, S_ERR, S_SPC2, S_ERR, S_ERR, S_SPC2, S_ALP, S_ERR,
1N/A S_DIG, S_DIG, S_DIG, S_DIG, S_DIG, S_DIG, S_DIG, S_DIG,
1N/A S_DIG, S_DIG, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_SPC2,
1N/A
1N/A#if SHOPT_TYPEDEF
1N/A S_SPC1, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP,
1N/A#else
1N/A S_SPC2, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP,
1N/A#endif
1N/A S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP,
1N/A S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP,
1N/A S_ALP, S_ALP, S_ALP, S_ERR, S_ERR, S_ERR, S_ERR, S_ALP,
1N/A
1N/A S_ERR, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP,
1N/A S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP,
1N/A S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP, S_ALP,
1N/A S_ALP, S_ALP, S_ALP, S_LBRA, S_ERR, S_RBRA, S_ERR, S_ERR,
1N/A
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A};
1N/A
1N/A/*
1N/A * for skipping over ${...} until modifier
1N/A */
1N/Astatic const char sh_lexstate7[256] =
1N/A{
1N/A S_EOF, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A
1N/A S_ERR, S_ERR, S_ERR, S_MOD2, S_ERR, S_MOD2, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_MOD1, S_MOD1, S_ERR, S_MOD1, S_DOT, S_MOD2,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, S_MOD1, S_ERR, S_ERR, S_MOD1, S_ERR, S_MOD1,
1N/A
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, S_BRACT,S_ESC, S_ERR, S_ERR, 0,
1N/A
1N/A S_ERR, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, S_ERR, S_ERR, S_POP, S_ERR, S_ERR,
1N/A
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR, S_ERR,
1N/A};
1N/A
1N/A/*
1N/A * This state is for $name
1N/A */
1N/Astatic const char sh_lexstate8[256] =
1N/A{
1N/A S_EOF, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
1N/A S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
1N/A S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
1N/A S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
1N/A
1N/A S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
1N/A S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
1N/A
1N/A S_EDOL, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, S_EDOL, S_EDOL, S_EDOL, S_EDOL, 0,
1N/A
1N/A S_EDOL,0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
1N/A
1N/A S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
1N/A S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
1N/A S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
1N/A S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
1N/A S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
1N/A S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
1N/A S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
1N/A S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
1N/A S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
1N/A S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
1N/A S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
1N/A S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
1N/A S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
1N/A S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
1N/A S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
1N/A S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL, S_EDOL,
1N/A};
1N/A
1N/A/*
1N/A * This is used for macro expansion
1N/A */
1N/Astatic const char sh_lexstate9[256] =
1N/A{
1N/A S_EOF, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, S_QUOTE,0, S_DOL, 0, S_PAT, S_LIT,
1N/A S_PAT, S_PAT, S_PAT, 0, S_COM, 0, S_DOT, S_SLASH,
1N/A S_DIG, S_DIG, S_DIG, S_DIG, S_DIG, S_DIG, S_DIG, S_DIG,
1N/A S_DIG, S_DIG, S_COLON,0, 0, S_EQ, 0, S_PAT,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, S_BRACT,S_ESC, S_ENDCH,0, 0,
1N/A S_GRAVE,0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A 0, 0, 0, 0, 0, 0, 0, 0,
1N/A#if SHOPT_BRACEPAT
1N/A 0, 0, 0, S_BRACE,S_PAT, S_ENDCH,0, 0
1N/A#else
1N/A 0, 0, 0, 0, S_PAT, S_ENDCH,0, 0
1N/A#endif /* SHOPT_BRACEPAT */
1N/A};
1N/A
1N/Aconst char *sh_lexrstates[ST_NONE] =
1N/A{
1N/A sh_lexstate0, sh_lexstate1, sh_lexstate2, sh_lexstate3,
1N/A sh_lexstate4, sh_lexstate5, sh_lexstate6, sh_lexstate7,
1N/A sh_lexstate8, sh_lexstate9, sh_lexstate5
1N/A};
1N/A
1N/A
1N/Aconst char e_lexversion[] = "%d: invalid binary script version";
1N/Aconst char e_lexspace[] = "line %d: use space or tab to separate operators %c and %c";
1N/Aconst char e_lexslash[] = "line %d: $ not preceded by \\";
1N/Aconst char e_lexsyntax1[] = "syntax error at line %d: `%s' %s";
1N/Aconst char e_lexsyntax2[] = "syntax error: `%s' %s";
1N/Aconst char e_lexsyntax3[] = "syntax error at line %d: duplicate label %s";
1N/Aconst char e_lexsyntax4[] = "syntax error at line %d: invalid reference list";
1N/Aconst char e_lexwarnvar[] = "line %d: variable expansion makes arithmetic evaluation less efficient";
1N/Aconst char e_lexlabignore[] = "line %d: label %s ignored";
1N/Aconst char e_lexlabunknown[] = "line %d: %s unknown label";
1N/Aconst char e_lexobsolete1[] = "line %d: `...` obsolete, use $(...)";
1N/Aconst char e_lexobsolete2[] = "line %d: -a obsolete, use -e";
1N/Aconst char e_lexobsolete3[] = "line %d: '=' obsolete, use '=='";
1N/Aconst char e_lexobsolete4[] = "line %d: %s within [[...]] obsolete, use ((...))";
1N/Aconst char e_lexobsolete5[] = "line %d: set %s obsolete";
1N/Aconst char e_lexobsolete6[] = "line %d: `{' instead of `in' is obsolete";
1N/Aconst char e_lexnonstandard[] = "line %d: `&>file' is nonstandard -- interpreted as `>file 2>&1' for profile input only";
1N/Aconst char e_lexusebrace[] = "line %d: use braces to avoid ambiguities with $id[...]";
1N/Aconst char e_lexusequote[] = "line %d: %c within ${} should be quoted";
1N/Aconst char e_lexescape[] = "line %d: escape %c to avoid ambiguities";
1N/Aconst char e_lexquote[] = "line %d: quote %c to avoid ambiguities";
1N/Aconst char e_lexnested[] = "line %d: spaces required for nested subshell";
1N/Aconst char e_lexbadchar[] = "%c: invalid character in expression - %s";
1N/Aconst char e_lexfuture[] = "line %d: \\ in front of %c reserved for future use";
1N/Aconst char e_lexlongquote[] = "line %d: %c quote may be missing";
1N/Aconst char e_lexzerobyte[] = "zero byte";
1N/Aconst char e_lexemptyfor[] = "line %d: empty for list";
1N/Aconst char e_lextypeset[] = "line %d: %s invalid typeset option order";
1N/Aconst char e_lexcharclass[] = "line %d: '^' as first character in character class not portable";