35 *tokens = (*tokens)->
next;
t_ast * create_pipe_node(t_ast *left, t_ast *right)
Create a pipe AST node connecting 2 subtrees.
AST node creation and destruction prototypes.
void free_ast(t_ast *node)
Recursively free an entire AST tree.
Parser entry point & sub parser prototypes.
t_ast * parse_pipeline(t_token **tokens)
Parse a pipeline of commands connected by pipes.
t_ast * parse_command(t_token **tokens)
Parse a command with all its redirections.
Lexer token (singly linked list)
t_token_type type
Token type (word, pipe, redir)
struct s_token * next
Next token.