feat: toujours les mêmes qui font les pipes. Plus de assert dans ASTs (pour des raisons évidentes de stabilité du code) et nouveaux types (AST_PIPE et AST_NEG), + modifs random dans le parser

This commit is contained in:
Gu://em_ 2026-01-27 00:30:19 +01:00
parent 07e7d83c60
commit 96626d9850
27 changed files with 238 additions and 86 deletions

View file

@ -31,16 +31,13 @@ enum lexing_mode
enum token_type
{
// Special characters
// Blanks
TOKEN_NULL = 0,
TOKEN_EOF,
TOKEN_WORD,
TOKEN_NEWLINE,
// WARNING: quote and double quote should never be used inside a token.
TOKEN_QUOTE,
TOKEN_DOUBLE_QUOTE,
// SPecial characters
TOKEN_GRAVE,
TOKEN_SEMICOLON,
TOKEN_COMMENT,
@ -51,8 +48,14 @@ enum token_type
TOKEN_RIGHT_PAREN,
TOKEN_LEFT_BRACKET,
TOKEN_RIGHT_BRACKET,
TOKEN_PIPE,
TOKEN_NEGATION, // TODO handle
// redirections
// TODO merge into one and use the data field
// (Too difficult to handle in the parser because of firsts)
// TOKEN_REDIRECTION
//
// Redirections
TOKEN_REDIR_LEFT,
TOKEN_REDIR_RIGHT,
TOKEN_REDIR_LEFT_RIGHT,
@ -62,7 +65,6 @@ enum token_type
TOKEN_REDIR_RIGHT_PIPE,
TOKEN_IONUMBER,
TOKEN_PIPE,
// Keywords
TOKEN_IF,