root/bin/sh/pregenerated/token.h
#define TEOF 0
#define TNL 1
#define TSEMI 2
#define TBACKGND 3
#define TAND 4
#define TOR 5
#define TPIPE 6
#define TLP 7
#define TRP 8
#define TENDCASE 9
#define TFALLTHRU 10
#define TREDIR 11
#define TWORD 12
#define TIF 13
#define TTHEN 14
#define TELSE 15
#define TELIF 16
#define TFI 17
#define TWHILE 18
#define TUNTIL 19
#define TFOR 20
#define TDO 21
#define TDONE 22
#define TBEGIN 23
#define TEND 24
#define TCASE 25
#define TESAC 26
#define TNOT 27

/* Array indicating which tokens mark the end of a list */
static const char tokendlist[] = {
        1,
        0,
        0,
        0,
        0,
        0,
        0,
        0,
        1,
        1,
        1,
        0,
        0,
        0,
        1,
        1,
        1,
        1,
        0,
        0,
        0,
        1,
        1,
        0,
        1,
        0,
        1,
        0,
};

static const char *const tokname[] = {
        "end of file",
        "newline",
        "\";\"",
        "\"&\"",
        "\"&&\"",
        "\"||\"",
        "\"|\"",
        "\"(\"",
        "\")\"",
        "\";;\"",
        "\";&\"",
        "redirection",
        "word",
        "\"if\"",
        "\"then\"",
        "\"else\"",
        "\"elif\"",
        "\"fi\"",
        "\"while\"",
        "\"until\"",
        "\"for\"",
        "\"do\"",
        "\"done\"",
        "\"{\"",
        "\"}\"",
        "\"case\"",
        "\"esac\"",
        "\"!\"",
};

#define KWDOFFSET 13

const char *const parsekwd[] = {
        "if",
        "then",
        "else",
        "elif",
        "fi",
        "while",
        "until",
        "for",
        "do",
        "done",
        "{",
        "}",
        "case",
        "esac",
        "!",
        0
};