#include "parser.h"
#include "shell.h"
#include "syntax.h"
const char basesyntax[SYNBASE + CHAR_MAX + 1] = {
[SYNBASE + PEOF] = CEOF,
[SYNBASE + CTLESC] = CCTL,
[SYNBASE + CTLVAR] = CCTL,
[SYNBASE + CTLENDVAR] = CCTL,
[SYNBASE + CTLBACKQ] = CCTL,
[SYNBASE + CTLBACKQ + CTLQUOTE] = CCTL,
[SYNBASE + CTLARI] = CCTL,
[SYNBASE + CTLENDARI] = CCTL,
[SYNBASE + CTLQUOTEMARK] = CCTL,
[SYNBASE + CTLQUOTEEND] = CCTL,
[SYNBASE + '\n'] = CNL,
[SYNBASE + '\\'] = CBACK,
[SYNBASE + '\''] = CSQUOTE,
[SYNBASE + '"'] = CDQUOTE,
[SYNBASE + '`'] = CBQUOTE,
[SYNBASE + '$'] = CVAR,
[SYNBASE + '}'] = CENDVAR,
[SYNBASE + '<'] = CSPCL,
[SYNBASE + '>'] = CSPCL,
[SYNBASE + '('] = CSPCL,
[SYNBASE + ')'] = CSPCL,
[SYNBASE + ';'] = CSPCL,
[SYNBASE + '&'] = CSPCL,
[SYNBASE + '|'] = CSPCL,
[SYNBASE + ' '] = CSPCL,
[SYNBASE + '\t'] = CSPCL,
};
const char dqsyntax[SYNBASE + CHAR_MAX + 1] = {
[SYNBASE + PEOF] = CEOF,
[SYNBASE + CTLESC] = CCTL,
[SYNBASE + CTLVAR] = CCTL,
[SYNBASE + CTLENDVAR] = CCTL,
[SYNBASE + CTLBACKQ] = CCTL,
[SYNBASE + CTLBACKQ + CTLQUOTE] = CCTL,
[SYNBASE + CTLARI] = CCTL,
[SYNBASE + CTLENDARI] = CCTL,
[SYNBASE + CTLQUOTEMARK] = CCTL,
[SYNBASE + CTLQUOTEEND] = CCTL,
[SYNBASE + '\n'] = CQNL,
[SYNBASE + '\\'] = CBACK,
[SYNBASE + '"'] = CENDQUOTE,
[SYNBASE + '`'] = CBQUOTE,
[SYNBASE + '$'] = CVAR,
[SYNBASE + '}'] = CENDVAR,
[SYNBASE + '!'] = CCTL,
[SYNBASE + '*'] = CCTL,
[SYNBASE + '?'] = CCTL,
[SYNBASE + '['] = CCTL,
[SYNBASE + ']'] = CCTL,
[SYNBASE + '='] = CCTL,
[SYNBASE + '~'] = CCTL,
[SYNBASE + ':'] = CCTL,
[SYNBASE + '/'] = CCTL,
[SYNBASE + '-'] = CCTL,
[SYNBASE + '^'] = CCTL,
};
const char sqsyntax[SYNBASE + CHAR_MAX + 1] = {
[SYNBASE + PEOF] = CEOF,
[SYNBASE + CTLESC] = CCTL,
[SYNBASE + CTLVAR] = CCTL,
[SYNBASE + CTLENDVAR] = CCTL,
[SYNBASE + CTLBACKQ] = CCTL,
[SYNBASE + CTLBACKQ + CTLQUOTE] = CCTL,
[SYNBASE + CTLARI] = CCTL,
[SYNBASE + CTLENDARI] = CCTL,
[SYNBASE + CTLQUOTEMARK] = CCTL,
[SYNBASE + CTLQUOTEEND] = CCTL,
[SYNBASE + '\n'] = CQNL,
[SYNBASE + '\\'] = CSBACK,
[SYNBASE + '\''] = CENDQUOTE,
[SYNBASE + '!'] = CCTL,
[SYNBASE + '*'] = CCTL,
[SYNBASE + '?'] = CCTL,
[SYNBASE + '['] = CCTL,
[SYNBASE + ']'] = CCTL,
[SYNBASE + '='] = CCTL,
[SYNBASE + '~'] = CCTL,
[SYNBASE + ':'] = CCTL,
[SYNBASE + '/'] = CCTL,
[SYNBASE + '-'] = CCTL,
[SYNBASE + '^'] = CCTL,
};
const char arisyntax[SYNBASE + CHAR_MAX + 1] = {
[SYNBASE + PEOF] = CEOF,
[SYNBASE + CTLESC] = CCTL,
[SYNBASE + CTLVAR] = CCTL,
[SYNBASE + CTLENDVAR] = CCTL,
[SYNBASE + CTLBACKQ] = CCTL,
[SYNBASE + CTLBACKQ + CTLQUOTE] = CCTL,
[SYNBASE + CTLARI] = CCTL,
[SYNBASE + CTLENDARI] = CCTL,
[SYNBASE + CTLQUOTEMARK] = CCTL,
[SYNBASE + CTLQUOTEEND] = CCTL,
[SYNBASE + '\n'] = CQNL,
[SYNBASE + '\\'] = CBACK,
[SYNBASE + '`'] = CBQUOTE,
[SYNBASE + '"'] = CIGN,
[SYNBASE + '$'] = CVAR,
[SYNBASE + '}'] = CENDVAR,
[SYNBASE + '('] = CLP,
[SYNBASE + ')'] = CRP,
};
const char is_type[SYNBASE + CHAR_MAX + 1] = {
[SYNBASE + '0'] = ISDIGIT,
[SYNBASE + '1'] = ISDIGIT,
[SYNBASE + '2'] = ISDIGIT,
[SYNBASE + '3'] = ISDIGIT,
[SYNBASE + '4'] = ISDIGIT,
[SYNBASE + '5'] = ISDIGIT,
[SYNBASE + '6'] = ISDIGIT,
[SYNBASE + '7'] = ISDIGIT,
[SYNBASE + '8'] = ISDIGIT,
[SYNBASE + '9'] = ISDIGIT,
[SYNBASE + 'a'] = ISLOWER,
[SYNBASE + 'b'] = ISLOWER,
[SYNBASE + 'c'] = ISLOWER,
[SYNBASE + 'd'] = ISLOWER,
[SYNBASE + 'e'] = ISLOWER,
[SYNBASE + 'f'] = ISLOWER,
[SYNBASE + 'g'] = ISLOWER,
[SYNBASE + 'h'] = ISLOWER,
[SYNBASE + 'i'] = ISLOWER,
[SYNBASE + 'j'] = ISLOWER,
[SYNBASE + 'k'] = ISLOWER,
[SYNBASE + 'l'] = ISLOWER,
[SYNBASE + 'm'] = ISLOWER,
[SYNBASE + 'n'] = ISLOWER,
[SYNBASE + 'o'] = ISLOWER,
[SYNBASE + 'p'] = ISLOWER,
[SYNBASE + 'q'] = ISLOWER,
[SYNBASE + 'r'] = ISLOWER,
[SYNBASE + 's'] = ISLOWER,
[SYNBASE + 't'] = ISLOWER,
[SYNBASE + 'u'] = ISLOWER,
[SYNBASE + 'v'] = ISLOWER,
[SYNBASE + 'w'] = ISLOWER,
[SYNBASE + 'x'] = ISLOWER,
[SYNBASE + 'y'] = ISLOWER,
[SYNBASE + 'z'] = ISLOWER,
[SYNBASE + 'A'] = ISUPPER,
[SYNBASE + 'B'] = ISUPPER,
[SYNBASE + 'C'] = ISUPPER,
[SYNBASE + 'D'] = ISUPPER,
[SYNBASE + 'E'] = ISUPPER,
[SYNBASE + 'F'] = ISUPPER,
[SYNBASE + 'G'] = ISUPPER,
[SYNBASE + 'H'] = ISUPPER,
[SYNBASE + 'I'] = ISUPPER,
[SYNBASE + 'J'] = ISUPPER,
[SYNBASE + 'K'] = ISUPPER,
[SYNBASE + 'L'] = ISUPPER,
[SYNBASE + 'M'] = ISUPPER,
[SYNBASE + 'N'] = ISUPPER,
[SYNBASE + 'O'] = ISUPPER,
[SYNBASE + 'P'] = ISUPPER,
[SYNBASE + 'Q'] = ISUPPER,
[SYNBASE + 'R'] = ISUPPER,
[SYNBASE + 'S'] = ISUPPER,
[SYNBASE + 'T'] = ISUPPER,
[SYNBASE + 'U'] = ISUPPER,
[SYNBASE + 'V'] = ISUPPER,
[SYNBASE + 'W'] = ISUPPER,
[SYNBASE + 'X'] = ISUPPER,
[SYNBASE + 'Y'] = ISUPPER,
[SYNBASE + 'Z'] = ISUPPER,
[SYNBASE + '_'] = ISUNDER,
[SYNBASE + '#'] = ISSPECL,
[SYNBASE + '?'] = ISSPECL,
[SYNBASE + '$'] = ISSPECL,
[SYNBASE + '!'] = ISSPECL,
[SYNBASE + '-'] = ISSPECL,
[SYNBASE + '*'] = ISSPECL,
[SYNBASE + '@'] = ISSPECL,
};