#ifndef TOKEN_H #define TOKEN_H #include enum token_type { // STEP 1 TOKEN_NEWLINE, TOKEN_EOF, TOKEN_ERROR, TOKEN_WORD, TOKEN_IF, TOKEN_THEN, TOKEN_ELIF, TOKEN_ELSE, TOKEN_SEMICOLON, TOKEN_FI, TOKEN_HASHTAG, // STEP 2 TOKEN_REDIR, TOKEN_PIPE, TOKEN_NEG, TOKEN_WHILE, TOKEN_UNTIL, TOKEN_DO, TOKEN_FOR, TOKEN_DONE, TOKEN_AND, TOKEN_OR, TOKEN_ESCAPE, TOKEN_ASS_WORD, TOKEN_DOUBLEQUOTE, TOKEN_DOLLAR, TOKEN_IN, TOKEN_IONUMBER, // STEP 3 TOKEN_PAR_RIGHT, TOKEN_PAR_LEFT, TOKEN_CURLY_RIGHT, TOKEN_CURLY_LEFT, // STEP 4 }; struct token { enum token_type type; struct string *value; }; #endif /* ! TOKEN_H */