#ifndef AST_COMMAND_H #define AST_COMMAND_H #include #include "utils/lists/lists.h" #include "utils/ast/ast_base.h" struct ast_cmd { struct list *cmd; // A list of words (char*) }; /** * Checks if the given AST node is a command. */ bool ast_is_cmd(struct ast *node); /** * Retrieves the command data from the given AST node. * Assumes that the node is of type AST_CMD. */ struct ast_cmd *ast_get_cmd(struct ast *node); /** * Creates a new AST node representing a command. */ struct ast *ast_create_cmd(struct list *cmd); /* * @brief: frees the given ast_cmd and sets the pointer to NULL. */ void ast_free_cmd(struct ast_cmd **cmd_data); #endif /* ! AST_COMMAND_H */