feat(ast): add ast_assignements. Similar to how redirections are handled.
This commit is contained in:
parent
75d417eecf
commit
fde653ac5d
5 changed files with 59 additions and 3 deletions
36
src/utils/ast/ast_assignement.c
Normal file
36
src/utils/ast/ast_assignement.c
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
#include "ast_assignement.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
bool ast_is_assignement(struct ast *node)
|
||||
{
|
||||
return node != NULL && node->type == AST_ASSIGNEMENT;
|
||||
}
|
||||
|
||||
struct ast_assignement *ast_get_assignement(struct ast *node)
|
||||
{
|
||||
if (node == NULL || node->type != AST_ASSIGNEMENT)
|
||||
return NULL;
|
||||
return (struct ast_assignement *)node->data;
|
||||
}
|
||||
|
||||
struct ast *ast_create_assignement(char *name, char *value)
|
||||
{
|
||||
struct ast_assignement *assignement_data = malloc(sizeof(struct ast_assignement));
|
||||
if (!assignement_data)
|
||||
return NULL;
|
||||
|
||||
assignement_data->name = name;
|
||||
assignement_data->value = value;
|
||||
|
||||
return ast_create(AST_ASSIGNEMENT, assignement_data);
|
||||
}
|
||||
|
||||
void ast_free_assignement(struct ast_assignement *assignement_data)
|
||||
{
|
||||
if (assignement_data == NULL)
|
||||
return;
|
||||
free(assignement_data->name);
|
||||
free(assignement_data->value);
|
||||
free(assignement_data);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue