| ▼ doc | |
| pages | |
| ▼ includes | |
| ast.h | AST node creation and destruction prototypes |
| builtins.h | Shell builtin commands prototypes |
| env.h | Environment variable management prototypes |
| executor.h | Executor prototypes for commands, pipes, redirections & heredocs |
| minishell_ui.h | UI mode structures, macros & function prototypes |
| parser.h | Parser entry point & sub parser prototypes |
| signals.h | Signal handler prototypes |
| structs.h | Central type definitions for mandatory part |
| token.h | Lexer, tokenizer, expander, and quote handling prototypes |
| welcome_ui.h | Welcome screen structures & prototypes |
| ▼ src | |
| ▼ builtins | |
| builtin_cd.c | Implements cd: changes directory and updates OLDPWD/PWD |
| builtin_echo.c | Implements echo: prints arguments with optional -n flag |
| builtin_env.c | Implements env: displays all env variables |
| builtin_exit.c | Implements exit: shell exit with optional status |
| builtin_export.c | Implements export: sets and displays env variables |
| builtin_pwd.c | Implements pwd: prints current working directory |
| builtin_unset.c | Implements unset: removes env variables |
| export_ops.c | Export helpers |
| export_utils.c | Export utilities |
| ▼ env | |
| env_conversion.c | Converts env linked list to envp array |
| env_init.c | Initializes env list from envp array |
| env_operations.c | Environment queries: searches, gets, and sets variables |
| env_utils.c | Environment utilities: handles SHLVL increment & PWD validation |
| ▼ executor | |
| exec_cmd.c | Command execution: forks and execs external commands |
| exec_utils.c | Execution utilities |
| executor.c | Main executor (dispatches to pipe/redir/command handlers) |
| executor_pipe.c | Pipe execution: forks and handles left / right sides of pipes |
| executor_redir.c | Redirection execution (opens files & applies redirections) |
| heredoc.c | Heredoc processing: reads lines and applies variable expansion |
| heredoc_collect.c | Heredoc collection (pre processes all heredocs in AST) |
| path.c | Command path resolution: searches PATH & validates permissions |
| ▼ lexer | |
| expander.c | Variable expansion: replaces $VARIABLES and $? |
| expander_utils.c | Expansion utilities: identifies variables & handles special patterns |
| tilde_expand.c | Tilde expansion: converts ~ to $HOME in unquoted words |
| token.c | Token allocation and management: creates & frees token nodes |
| tokenizer.c | Tokenizes input string: extracts quoted or unquoted text & operators |
| tokenizer_utils.c | Tokenizer helpers: detects operators, whitespace or word boundaries |
| ▼ parser | |
| ast.c | AST node creation: allocates command, pipe & redirection nodes |
| ast_utils.c | AST utilities: frees entire AST tree recursively |
| parser.c | Entry point to parser (validates syntax & builds parse tree) |
| parser_cmd.c | Command parsing: builds command nodes from argument tokens |
| parser_grammar.c | Syntax validation: validates pipe / redirection positions |
| parser_grammar_error.c | Error reporting (maps syntax errors to user messages) |
| parser_pipeline.c | Pipeline parsing: builds left associative pipe tree |
| parser_redir.c | Redirection parsing: parses <, >, >>, << tokens & files |
| parser_redir_utils.c | Redirection utilities |
| ▼ signals | |
| heredoc_signals.c | Heredoc signal handling: SIGINT handler for heredoc input |
| signals.c | Signal handlers: SIGINT / SIGQUIT for interactive & exec modes |
| ▼ ui | |
| ▼ core | |
| output.c | Output buffer management: adds / clears command output lines |
| terminal.c | Terminal control: dimensions, raw mode, cursor management |
| terminal_init.c | Terminal initialization: sets up UI state and terminal mode |
| ui_main.c | UI main loop: draws interface, reads input, handles resize |
| ui_signals.c | |
| waifu.c | Waifu character management |
| waifu_art.c | Waifu ASCII art (defines happy, upset or proud neko character designs) |
| ▼ draw | |
| drawing.c | Main drawing (renders command box, output & waifu) |
| drawing_box.c | Box drawing (renders bordered containers with titles) |
| drawing_output.c | Output rendering (draws command output in scrollable box) |
| drawing_text.c | Text utilities: truncates lines & handles UTF-8 display width |
| drawing_utils.c | Drawing primitives: prints at coordinates & draws lines |
| ▼ input | |
| command.c | Command input handling |
| execute.c | Command execution from UI (forks, captures output, updates mood) |
| execute_utils.c | Execution output capture |
| input.c | Key input reading (decodes escape sequences & arrow keys) |
| ▼ welcome | |
| welcome.c | Welcome animation |
| welcome_demon.c | Demon ASCII art |
| welcome_effects.c | Welcome effects |
| welcome_loading.c | Loading animation |
| welcome_utils.c | Welcome utilities |
| main.c | Shell entry point |