diff --git a/42sh/STDEBUG b/42sh/STDEBUG index e10d17e6..4f628983 100644 --- a/42sh/STDEBUG +++ b/42sh/STDEBUG @@ -1,22 +1,14 @@ - ft_parse.c 42 new sym CMD_NAME + shell_init.c 28 interactive shell settings + ft_parse.c 34 new sym CMD_NAME  eval_sym.c 637eval head LINEBREAK && sym CMD_NAME  eval_sym.c 637eval head LINEBREAK && sym CMD_SUPERIOR  build_tree.c 60 func TK : 'TK_WORD' TK : 'TK_WORD'  add_cmd.c 21 add cmd - ft_parse.c 42 new sym CMD_SUFFIX - eval_sym.c 637eval head CMD_SUPERIOR && sym CMD_SUFFIX - eval_sym.c 637eval head LINEBREAK && sym SIMPLE_COMMAND - eval_sym.c 637eval head LINEBREAK && sym COMMAND - eval_sym.c 637eval head LINEBREAK && sym PIPE_SEMI_SEQUENCE - build_tree.c 60 func TK : 'TK_WORD' TK : 'TK_WORD' - add_cmd.c 21 add cmd - add_loop.c 23 TEST LOOP - add_cmd.c 21 add cmd - TK_W - +----+ - TK_W - ft_parse.c 42 new sym LINEBREAK - eval_sym.c 637eval head PIPE_SEMI_SEQUENCE && sym LINEBREAK + ft_parse.c 34 new sym LINEBREAK + eval_sym.c 637eval head CMD_SUPERIOR && sym LINEBREAK + eval_sym.c 637eval head CMD_SUPERIOR && sym SEPARATOR_OP + eval_sym.c 637eval head CMD_SUPERIOR && sym SEPARATOR + eval_sym.c 637eval head LINEBREAK && sym END_COMMAND  eval_sym.c 637eval head LINEBREAK && sym PIPE_SEQUENCE  eval_sym.c 637eval head LINEBREAK && sym PIPELINE  eval_sym.c 637eval head LINEBREAK && sym AND_OR @@ -24,14 +16,6 @@  eval_sym.c 637eval head LINEBREAK && sym COMPLETE_COMMAND  eval_sym.c 637eval head LINEBREAK && sym COMPLETE_COMMANDS  eval_sym.c 637eval head NULL && sym PROGRAM - TK_W - +----+ - TK_W - ft_parse.c 42 new sym LINEBREAK + ft_parse.c 34 new sym LINEBREAK  eval_sym.c 637eval head PROGRAM && sym LINEBREAK - TK_W - +----+ - TK_W - TK_W - +----+ - TK_W + ft_exec.c 53 match : TK_WORD and TK_WORD diff --git a/42sh/includes/parser.h b/42sh/includes/parser.h index f11e925c..e87b47b1 100644 --- a/42sh/includes/parser.h +++ b/42sh/includes/parser.h @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/01 12:15:54 by jhalford #+# #+# */ -/* Updated: 2017/02/21 16:39:07 by ariard ### ########.fr */ +/* Updated: 2017/02/21 18:13:10 by ariard ### ########.fr */ /* */ /* ************************************************************************** */ @@ -187,6 +187,7 @@ int push_stack(t_sym *stack, t_sym new_sym); int pop_stack(t_sym **stack, t_sym erase_sym); int error_syntax(t_list **token); +int error_EOF(void); int ft_read_stack(t_sym *stack); char *read_state(t_sym current); diff --git a/42sh/src/exec/ft_exec.c b/42sh/src/exec/ft_exec.c index a2d83114..9a4888c1 100644 --- a/42sh/src/exec/ft_exec.c +++ b/42sh/src/exec/ft_exec.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/11/27 20:30:32 by jhalford #+# #+# */ -/* Updated: 2017/02/20 22:01:33 by jhalford ### ########.fr */ +/* Updated: 2017/02/21 18:11:01 by ariard ### ########.fr */ /* */ /* ************************************************************************** */ @@ -32,7 +32,7 @@ t_execmap g_execmap[] = {TK_ELSE, &exec_else}, {TK_UNTIL, &exec_until}, {TK_SUBSHELL, &exec_command}, - {TK_COMMAND, &exec_command}, + {TK_WORD, &exec_command}, {0, 0}, }; diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index b8148e1f..ee5d90b3 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2016/12/06 18:40:58 by jhalford #+# #+# */ -/* Updated: 2017/02/21 16:40:17 by ariard ### ########.fr */ +/* Updated: 2017/02/21 18:13:49 by ariard ### ########.fr */ /* */ /* ************************************************************************** */ @@ -28,8 +28,8 @@ int handle_instruction(int fd) while (1) { str = readline(fd, stack_to_prompt(lexer.stack)); -// if (parser.state == UNDEFINED && !str) -// return ((int)ft_putstr_fd("syntax error near unexpected EOF", 2)); + if (parser.state == UNDEFINED && !str) + return (error_EOF()); ft_strappend(&lexer.str, str); if (get_lexer_stack(lexer) == BACKSLASH) pop(&lexer.stack); diff --git a/42sh/src/parser/error_syntax.c b/42sh/src/parser/error_syntax.c index e08921c7..7bee58f9 100644 --- a/42sh/src/parser/error_syntax.c +++ b/42sh/src/parser/error_syntax.c @@ -6,7 +6,7 @@ /* By: ariard +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/09 20:15:35 by ariard #+# #+# */ -/* Updated: 2017/02/19 17:06:08 by ariard ### ########.fr */ +/* Updated: 2017/02/21 18:13:47 by ariard ### ########.fr */ /* */ /* ************************************************************************** */ @@ -70,3 +70,9 @@ int error_syntax(t_list **lst) ft_putstr_fd("grammar error, notify ariard", 2); return (1); } + +int error_EOF(void) +{ + ft_putstr_fd("syntax error near unexpected EOF", 2); + return (1); +}