diff options
Diffstat (limited to 'userland/minibox/utilities/sh/lexer.h')
-rw-r--r-- | userland/minibox/utilities/sh/lexer.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/userland/minibox/utilities/sh/lexer.h b/userland/minibox/utilities/sh/lexer.h new file mode 100644 index 0000000..57fb30b --- /dev/null +++ b/userland/minibox/utilities/sh/lexer.h @@ -0,0 +1,24 @@ +#ifndef LEXER_H +#define LEXER_H +#include <stddef.h> + +typedef enum { + TOKEN_CHARS, + TOKEN_AND, + TOKEN_NOT, + TOKEN_NOOP, + TOKEN_PIPE, + TOKEN_STREAM, + TOKEN_STREAM_APPEND, +} token_type_t; + +struct TOKEN { + token_type_t type; + char string_rep[256]; + struct TOKEN *next; +}; + +struct TOKEN *lex(const char *code); +struct AST *generate_ast(struct TOKEN *token); +void free_tokens(struct TOKEN *token); +#endif // LEXER_H |