diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/ast.h | 11 | ||||
| -rw-r--r-- | include/eval.h | 4 | ||||
| -rw-r--r-- | include/lexer.h | 1 | ||||
| -rw-r--r-- | include/parser.h | 16 |
4 files changed, 22 insertions, 10 deletions
diff --git a/include/ast.h b/include/ast.h index cbbe061..53221fa 100644 --- a/include/ast.h +++ b/include/ast.h @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* ast.h :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* By: charles <charles@student.42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/04/01 17:05:38 by charles #+# #+# */ -/* Updated: 2020/06/17 16:34:45 by charles ### ########.fr */ +/* Updated: 2020/06/18 13:35:38 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -50,6 +50,7 @@ enum e_ast_tag { AST_CMD, AST_OP, + AST_OP_PARENT, }; /* @@ -65,11 +66,11 @@ enum e_ast_tag typedef struct s_ast { enum e_ast_tag tag; - // union - // { + union + { t_op op; t_ftlst *cmd_argv; - // }; + }; t_ftlst *redirs; } t_ast; diff --git a/include/eval.h b/include/eval.h index 79ebfeb..60d6f23 100644 --- a/include/eval.h +++ b/include/eval.h @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* eval.h :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: charles <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* By: charles <charles@student.42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/04/01 17:05:30 by charles #+# #+# */ -/* Updated: 2020/06/17 16:41:58 by charles ### ########.fr */ +/* Updated: 2020/06/18 13:38:53 by charles ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/include/lexer.h b/include/lexer.h index b0e7f65..43c3821 100644 --- a/include/lexer.h +++ b/include/lexer.h @@ -24,6 +24,7 @@ enum e_token_tag TAG_IS_STR = TAG_STR | TAG_STR_SINGLE | TAG_STR_DOUBLE, TAG_IS_REDIR = TAG_REDIR_IN | TAG_REDIR_OUT | TAG_REDIR_APPEND, + TAG_IS_SEP = TAG_AND | TAG_END | TAG_OR | TAG_PIPE, }; typedef struct diff --git a/include/parser.h b/include/parser.h index 2bfa9d5..302c45f 100644 --- a/include/parser.h +++ b/include/parser.h @@ -3,10 +3,10 @@ /* ::: :::::::: */ /* parser.h :+: :+: :+: */ /* +:+ +:+ +:+ */ -/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ +/* By: cacharle <cacharle@student.42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2020/02/28 09:00:00 by cacharle #+# #+# */ -/* Updated: 2020/06/14 10:31:20 by charles ### ########.fr */ +/* Updated: 2020/06/18 13:18:13 by charles ### ########.fr */ /* */ /* ************************************************************************** */ @@ -37,10 +37,20 @@ ** parse.c */ + t_ret *parse(t_ftlst *input); +t_ret *parse_op(t_ftlst *input); +t_ret *parse_expr(t_ftlst *input); +t_ret *parse_cmd(t_ftlst *input); + +// utils +t_ret *ret_wrap_ast(t_ast *ast, t_ftlst *rest); +t_ftlst *push_token(t_ftlst **tokens, t_token *pushed); + + + t_ast *push_cmd(t_ast *ast, t_ftlst *ret); t_ast *push_redir(t_ast *ast, t_ftlst *rest); - int parse_cmd_str_true_false(enum e_token_tag tag); int parse_redir_true_false(enum e_token_tag tag); |
