From 1d455c5b8ba3ecd7fa0b0a5a6718bc6cd7fbd8d9 Mon Sep 17 00:00:00 2001 From: nass1pro Date: Sun, 14 Jun 2020 09:39:13 +0200 Subject: Change LTAG -> TAG in lexer.h --- include/ast.h | 15 +++++++++++---- include/lexer.h | 26 +++++++++++++------------- src/lexer/lexer.c | 8 ++++---- src/lexer/lexer_utils.c | 18 +++++++++--------- src/parse/parse.c | 7 +++++-- 5 files changed, 42 insertions(+), 32 deletions(-) diff --git a/include/ast.h b/include/ast.h index a5e55bb..8127930 100644 --- a/include/ast.h +++ b/include/ast.h @@ -31,6 +31,12 @@ ** \param SEP_OR `||` Execute right if left status != 0 */ +typedef enum e_bool +{ + TRUE, + FALSE, +} t_bool; + typedef enum e_sep { SEP_END, @@ -66,9 +72,9 @@ typedef struct s_line typedef struct s_cmd { - char **argv; // change to t_ftvec of t_token - char *in; // change to t_token - char *out; // change to t_token + t_ftlst *argv; // change to t_ftvec of t_token + t_token *in; // change to t_token + t_token *out; // change to t_token bool is_append; } t_cmd; @@ -103,9 +109,10 @@ typedef struct s_ast typedef struct s_ret { + t_bool failed; t_ast *as; t_ftlst *rest; -} +} t_ret; t_ast *ast_new(t_ast_tag tag, void *data); void ast_destroy(t_ast *ast); diff --git a/include/lexer.h b/include/lexer.h index 90f9353..e2abe28 100644 --- a/include/lexer.h +++ b/include/lexer.h @@ -8,19 +8,19 @@ enum e_token_tag { - LTAG_AND = 1 << 0, - LTAG_END = 1 << 1, - LTAG_OR = 1 << 2, - LTAG_PIPE = 1 << 3, - LTAG_REDIR_IN = 1 << 4, - LTAG_REDIR_OUT = 1 << 5, - LTAG_REDIR_APPEND = 1 << 6, - LTAG_PARENT_OPEN = 1 << 7, - LTAG_PARENT_CLOSE = 1 << 8, - LTAG_STR = 1 << 9, - LTAG_STR_DOUBLE = 1 << 10, - LTAG_STR_SINGLE = 1 << 11, - LTAG_STICK = 1 << 12, + TAG_AND = 1 << 0, + TAG_END = 1 << 1, + TAG_OR = 1 << 2, + TAG_PIPE = 1 << 3, + TAG_REDIR_IN = 1 << 4, + TAG_REDIR_OUT = 1 << 5, + TAG_REDIR_APPEND = 1 << 6, + TAG_PARENT_OPEN = 1 << 7, + TAG_PARENT_CLOSE = 1 << 8, + TAG_STR = 1 << 9, + TAG_STR_DOUBLE = 1 << 10, + TAG_STR_SINGLE = 1 << 11, + TAG_STICK = 1 << 12, }; typedef struct diff --git a/src/lexer/lexer.c b/src/lexer/lexer.c index 47856c5..29cea9c 100644 --- a/src/lexer/lexer.c +++ b/src/lexer/lexer.c @@ -97,7 +97,7 @@ enum e_token_tag token_verif_stick(t_token *lst_token) if (i > 0) if (lst_token->content[i - 1] == ' ') return(lst_token->tag); - return(lst_token->tag | LTAG_STICK); + return(lst_token->tag | TAG_STICK); } enum e_token_tag token_str_or_cote(t_token *lst_token) @@ -109,17 +109,17 @@ enum e_token_tag token_str_or_cote(t_token *lst_token) { if(lst_token->content[i] == '\'') { - lst_token->tag = LTAG_STR_SINGLE; + lst_token->tag = TAG_STR_SINGLE; return(token_verif_stick(lst_token)); } if(lst_token->content[i] == '"') { - lst_token->tag = LTAG_STR_DOUBLE; + lst_token->tag = TAG_STR_DOUBLE; return(token_verif_stick(lst_token)); } else { - lst_token->tag = LTAG_STR; + lst_token->tag = TAG_STR; return(token_verif_stick(lst_token)); } i++; diff --git a/src/lexer/lexer_utils.c b/src/lexer/lexer_utils.c index 986db50..c6bf54a 100644 --- a/src/lexer/lexer_utils.c +++ b/src/lexer/lexer_utils.c @@ -3,29 +3,29 @@ enum e_token_tag ret_token_sep_redir_append(char *input, int i) { if (input[i + 1] == '>') - return(LTAG_REDIR_APPEND); - return (LTAG_REDIR_OUT); + return(TAG_REDIR_APPEND); + return (TAG_REDIR_OUT); } enum e_token_tag ret_token(char *input, int i) { if (input[i] == ';') - return(LTAG_AND); + return(TAG_AND); if (input[i] == '&') - return(LTAG_END); + return(TAG_END); if (input[i] == '|' && input[i + 1] == '|') - return(LTAG_OR); + return(TAG_OR); if(input[i] == '|') - return(LTAG_PIPE); + return(TAG_PIPE); if (input[i] == '>') return(ret_token_sep_redir_append(input,i)); if (input[i] == '<') - return(LTAG_REDIR_IN); + return(TAG_REDIR_IN); if (input[i] == '(') - return(LTAG_PARENT_OPEN); + return(TAG_PARENT_OPEN); if (input[i] == ')') - return(LTAG_PARENT_CLOSE); + return(TAG_PARENT_CLOSE); return(0); } diff --git a/src/parse/parse.c b/src/parse/parse.c index 6f9c99b..a240377 100644 --- a/src/parse/parse.c +++ b/src/parse/parse.c @@ -6,11 +6,14 @@ #include "parse.h" #include -t_ast *parse(t_ftlst *lst) + + +t_ret *parse(t_ftlst *lst) { t_ret *ret; + if(!(ret = malloc(sizeof(t_ret) * 1))) + return(NULL); ret->rest = lst; - ret = return NULL; } -- cgit