#include #include #include #include #include #include "syntax.h" #include "stages.h" #include "utils.h" int main() { ShellState shstate = {.shell_vars = make_KeyValMap(256), .aliases = make_KeyValMap(256)}; char* line; while (1) { line = readline("$ "); if (line[0] == '\0') continue; if (strcmp(line, "exit") == 0) exit(0); add_history(line); Ast ast = lex(line); PipelineTree pltree = process_ast(ast, &shstate); execute_pipeline_tree(pltree); } free(line); }