aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornass1pro <nass1pro@gmail.com>2020-06-14 09:39:13 +0200
committernass1pro <nass1pro@gmail.com>2020-06-14 09:39:13 +0200
commit1d455c5b8ba3ecd7fa0b0a5a6718bc6cd7fbd8d9 (patch)
treed8f54d290f2e301ff689dae879305eee5d2a0394
parentcadd588473f82cdbbfdb7210bddd22262561faf3 (diff)
downloadminishell-1d455c5b8ba3ecd7fa0b0a5a6718bc6cd7fbd8d9.tar.gz
minishell-1d455c5b8ba3ecd7fa0b0a5a6718bc6cd7fbd8d9.tar.bz2
minishell-1d455c5b8ba3ecd7fa0b0a5a6718bc6cd7fbd8d9.zip
Change LTAG -> TAG in lexer.h
-rw-r--r--include/ast.h15
-rw-r--r--include/lexer.h26
-rw-r--r--src/lexer/lexer.c8
-rw-r--r--src/lexer/lexer_utils.c18
-rw-r--r--src/parse/parse.c7
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 <stdio.h>
-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;
}