feat(execution): var assign
This commit is contained in:
parent
6cdcf3f36b
commit
e32715ce13
3 changed files with 10 additions and 1 deletions
|
|
@ -40,6 +40,8 @@ int execution(struct ast *ast, struct hash_map *vars)
|
|||
return exec_ast_list(ast_get_list(ast), vars);
|
||||
case AST_AND_OR:
|
||||
return exec_ast_and_or(ast_get_and_or(ast), vars);
|
||||
case AST_ASSIGNMENT:
|
||||
return exec_ast_assignment(ast_get_assignment(ast), vars);
|
||||
default:
|
||||
return 127;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -203,6 +203,13 @@ int exec_ast_command(struct ast_command *command, struct hash_map *vars)
|
|||
return 1;
|
||||
}
|
||||
|
||||
|
||||
int exec_ast_assignment(struct ast_assignment *assign, struct hash_map *vars)
|
||||
{
|
||||
set_var_copy(vars, assign->name, assign->value);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int exec_ast_if(struct ast_if *if_node, struct hash_map *vars)
|
||||
{
|
||||
int cond = execution(if_node->condition, vars);
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ int exec_ast_command(struct ast_command *command, struct hash_map *vars);
|
|||
int exec_ast_if(struct ast_if *if_node, struct hash_map *vars);
|
||||
int exec_ast_list(struct ast_list *list_node, struct hash_map *vars);
|
||||
int exec_ast_and_or(struct ast_and_or *ao_node, struct hash_map *vars);
|
||||
int exec_ast_assignment(struct ast_assignment *assign, struct hash_map *vars);
|
||||
|
||||
void unset_all_redir(struct list *redir_list);
|
||||
|
||||
#endif // EXECUTION_HELPERS_H
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue