From 5c4bc19107fcdf7d3920b62a57ac8985e1970ce1 Mon Sep 17 00:00:00 2001 From: Antoine Riard Date: Mon, 27 Mar 2017 18:07:24 +0200 Subject: [PATCH] sample script --- 42sh/Makefile | 4 +- 42sh/another_file | 248 +++++++++++++++++++++ 42sh/file | 20 ++ 42sh/sample/again.sh | 2 + 42sh/sample/andor.sh | 8 + 42sh/sample/brace | 1 - 42sh/sample/brace.sh | 9 + 42sh/sample/case.sh | 22 +- 42sh/sample/comment.sh | 7 + 42sh/sample/eof.sh | 3 + 42sh/sample/for.sh | 13 +- 42sh/sample/func.sh | 11 +- 42sh/sample/if.sh | 26 ++- 42sh/sample/if/02_if_elif.sh | 10 - 42sh/sample/if/03_if_else.sh | 5 - 42sh/sample/if/04_if_elseelsif.sh | 11 - 42sh/sample/infinite.sh | 2 - 42sh/sample/ls | 1 - 42sh/sample/mix.sh | 30 +++ 42sh/sample/mix/mix.sh | 21 -- 42sh/sample/muchloop.sh | 31 +++ 42sh/sample/multiredir | 3 - 42sh/sample/redir/redir.sh | 1 - 42sh/sample/script.sh | 16 ++ 42sh/sample/stack.sh | 3 - 42sh/sample/{subshell_pipe => subshell.sh} | 7 + 42sh/sample/subshell/subshell01.sh | 2 - 42sh/sample/toomuchdone.sh | 4 + 42sh/sample/until.sh | 32 ++- 42sh/sample/until/01_until.sh | 11 - 42sh/sample/until2.sh | 11 - 42sh/sample/var.sh | 11 + 42sh/sample/var_01.sh | 1 - 42sh/sample/while.sh | 28 ++- 42sh/sample/while/while01.sh | 11 - 42sh/sample/while/while02.sh | 5 - 42sh/sample/while/while03.sh | 5 - 42sh/sample/while2.sh | 16 -- 42sh/sample/while_error.sh | 6 - 42sh/sample/yale/yale0.ex | 1 - 42sh/sample/yale/yale1.ex | 1 - 42sh/sample/yale/yale2.ex | 1 - 42sh/sample/yale/yale3.ex | 1 - 42sh/sample/yale/yale5.ex | 1 - 42sh/sample/yale1.sh | 1 - 42sh/src/main/main.c | 3 +- 42sh/src/parser/aggregate_sym.c | 4 +- 42sh/src/parser/eval_sym.c | 3 +- 42sh/src/parser/produce_sym.c | 5 +- 49 files changed, 512 insertions(+), 167 deletions(-) create mode 100644 42sh/another_file create mode 100644 42sh/file create mode 100644 42sh/sample/again.sh create mode 100644 42sh/sample/andor.sh delete mode 100644 42sh/sample/brace create mode 100644 42sh/sample/brace.sh create mode 100644 42sh/sample/eof.sh delete mode 100644 42sh/sample/if/02_if_elif.sh delete mode 100644 42sh/sample/if/03_if_else.sh delete mode 100644 42sh/sample/if/04_if_elseelsif.sh delete mode 100644 42sh/sample/infinite.sh delete mode 100644 42sh/sample/ls create mode 100644 42sh/sample/mix.sh delete mode 100644 42sh/sample/mix/mix.sh create mode 100644 42sh/sample/muchloop.sh delete mode 100644 42sh/sample/multiredir delete mode 100644 42sh/sample/redir/redir.sh create mode 100644 42sh/sample/script.sh delete mode 100644 42sh/sample/stack.sh rename 42sh/sample/{subshell_pipe => subshell.sh} (84%) delete mode 100644 42sh/sample/subshell/subshell01.sh create mode 100644 42sh/sample/toomuchdone.sh delete mode 100644 42sh/sample/until/01_until.sh delete mode 100644 42sh/sample/until2.sh create mode 100644 42sh/sample/var.sh delete mode 100644 42sh/sample/var_01.sh delete mode 100644 42sh/sample/while/while01.sh delete mode 100644 42sh/sample/while/while02.sh delete mode 100644 42sh/sample/while/while03.sh delete mode 100644 42sh/sample/while2.sh delete mode 100644 42sh/sample/while_error.sh delete mode 100644 42sh/sample/yale/yale0.ex delete mode 100644 42sh/sample/yale/yale1.ex delete mode 100644 42sh/sample/yale/yale2.ex delete mode 100644 42sh/sample/yale/yale3.ex delete mode 100644 42sh/sample/yale/yale5.ex delete mode 100644 42sh/sample/yale1.sh diff --git a/42sh/Makefile b/42sh/Makefile index c81ce63e..507dca2e 100644 --- a/42sh/Makefile +++ b/42sh/Makefile @@ -6,14 +6,14 @@ # By: wescande +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2016/08/29 21:32:58 by wescande #+# #+# # -# Updated: 2017/03/27 15:09:22 by ariard ### ########.fr # +# Updated: 2017/03/27 15:12:02 by ariard ### ########.fr # # # # **************************************************************************** # NAME = 42sh CC = gcc -FLAGS = -Wall -Wextra -Werror -fsanitize=address +FLAGS = -Wall -Wextra -Werror #-fsanitize=address D_FLAGS = -g DELTA = $$(echo "$$(tput cols)-47"|bc) diff --git a/42sh/another_file b/42sh/another_file new file mode 100644 index 00000000..ab0fd48c --- /dev/null +++ b/42sh/another_file @@ -0,0 +1,248 @@ +hello$$ +hello$$ +bonjour$$ +salut$$ +comment$$ +src/builtin/bt_env_opt.c$$ +src/builtin/bt_read_get.c$$ +src/builtin/bt_read_term.c$$ +src/builtin/builtin_cd.c$$ +src/builtin/builtin_echo.c$$ +src/builtin/builtin_env.c$$ +src/builtin/builtin_exit.c$$ +src/builtin/builtin_export.c$$ +src/builtin/builtin_func.c$$ +src/builtin/builtin_hash.c$$ +src/builtin/builtin_history.c$$ +src/builtin/builtin_math.c$$ +src/builtin/builtin_read.c$$ +src/builtin/builtin_setenv.c$$ +src/builtin/builtin_unset.c$$ +src/builtin/builtin_unsetenv.c$$ +src/builtin/is_builtin.c$$ +src/completion/c_arrow.c$$ +src/completion/c_clear.c$$ +src/completion/c_find_abspath.c$$ +src/completion/c_find_binary.c$$ +src/completion/c_find_env.c$$ +src/completion/c_find_files.c$$ +src/completion/c_init.c$$ +src/completion/c_match.c$$ +src/completion/c_match_glob.c$$ +src/completion/c_match_update.c$$ +src/completion/c_misc.c$$ +src/completion/c_output.c$$ +src/completion/c_parser.c$$ +src/completion/c_pathsolver.c$$ +src/completion/c_printer.c$$ +src/completion/c_sizing.c$$ +src/completion/c_terminal.c$$ +src/completion/completion.c$$ +src/exec/ast_free.c$$ +src/exec/bad_fd.c$$ +src/exec/exec_ampersand.c$$ +src/exec/exec_and_if.c$$ +src/exec/exec_bang.c$$ +src/exec/exec_case_branch.c$$ +src/exec/exec_destroy.c$$ +src/exec/exec_elif.c$$ +src/exec/exec_else.c$$ +src/exec/exec_func.c$$ +src/exec/exec_init.c$$ +src/exec/exec_leaf.c$$ +src/exec/exec_or_if.c$$ +src/exec/exec_pipe.c$$ +src/exec/exec_popfds.c$$ +src/exec/exec_pushfds.c$$ +src/exec/exec_semi.c$$ +src/exec/exec_var.c$$ +src/exec/fd_is_valid.c$$ +src/exec/ft_exec.c$$ +src/exec/ft_findexec.c$$ +src/exec/is_function.c$$ +src/exec/mark_process_status.c$$ +src/exec/node_copy.c$$ +src/exec/pfree_cmd.c$$ +src/exec/pfree_cond.c$$ +src/exec/pfree_func.c$$ +src/exec/pfree_list.c$$ +src/exec/pfree_subshell.c$$ +src/exec/plaunch_brace.c$$ +src/exec/plaunch_builtin.c$$ +src/exec/plaunch_case.c$$ +src/exec/plaunch_empty.c$$ +src/exec/plaunch_file.c$$ +src/exec/plaunch_for.c$$ +src/exec/plaunch_function.c$$ +src/exec/plaunch_if.c$$ +src/exec/plaunch_subshell.c$$ +src/exec/plaunch_until.c$$ +src/exec/plaunch_while.c$$ +src/exec/process_launch.c$$ +src/exec/process_redirect.c$$ +src/exec/process_set.c$$ +src/exec/process_setgroup.c$$ +src/exec/process_setsig.c$$ +src/exec/pset_brace.c$$ +src/exec/pset_case.c$$ +src/exec/pset_cmd.c$$ +src/exec/pset_for.c$$ +src/exec/pset_if.c$$ +src/exec/pset_subshell.c$$ +src/exec/pset_until.c$$ +src/exec/pset_while.c$$ +src/exec/redir_copy.c$$ +src/exec/redir_free.c$$ +src/exec/redirect_dgreat.c$$ +src/exec/redirect_dless.c$$ +src/exec/redirect_great.c$$ +src/exec/redirect_greatand.c$$ +src/exec/redirect_less.c$$ +src/exec/redirect_lessand.c$$ +src/exec/set_exitstatus.c$$ +src/exec/token_to_argv.c$$ +src/glob/command_getoutput.c$$ +src/glob/dir_glob.c$$ +src/glob/esc_print.c$$ +src/glob/expand_bquote.c$$ +src/glob/expand_brace.c$$ +src/glob/expand_esc.c$$ +src/glob/expand_home.c$$ +src/glob/expand_var.c$$ +src/glob/ft_strsplit_esc.c$$ +src/glob/ft_strsplit_spe.c$$ +src/glob/gen_tab_esc.c$$ +src/glob/glob.c$$ +src/glob/is_char_esc.c$$ +src/glob/match_pattern.c$$ +src/glob/tab_esc_copy.c$$ +src/glob/word_is_assignment.c$$ +src/hash_table/ft_add_hash.c$$ +src/hash_table/hash.c$$ +src/hash_table/hash_free.c$$ +src/hash_table/hash_str.c$$ +src/hash_table/is_hash.c$$ +src/history/add_str_in_history.c$$ +src/history/history.c$$ +src/history/history_parsing.c$$ +src/history/history_parsing_toolz.c$$ +src/history/history_parsing_toolz_2.c$$ +src/history/list_toolz.c$$ +src/history/surch_in_history.c$$ +src/job_control/builtin_bg.c$$ +src/job_control/builtin_fg.c$$ +src/job_control/builtin_jobs.c$$ +src/job_control/do_job_notification.c$$ +src/job_control/has_running_job.c$$ +src/job_control/has_stopped_job.c$$ +src/job_control/job_addprocess.c$$ +src/job_control/job_cmp_id.c$$ +src/job_control/job_format.c$$ +src/job_control/job_format_head.c$$ +src/job_control/job_free.c$$ +src/job_control/job_getprocess.c$$ +src/job_control/job_getrank.c$$ +src/job_control/job_hup_all.c$$ +src/job_control/job_is_completed.c$$ +src/job_control/job_is_stopped.c$$ +src/job_control/job_notify_change.c$$ +src/job_control/job_notify_new.c$$ +src/job_control/job_remove.c$$ +src/job_control/job_run.c$$ +src/job_control/job_update_id.c$$ +src/job_control/job_update_status.c$$ +src/job_control/job_wait.c$$ +src/job_control/jobc_destroy.c$$ +src/job_control/mark_job_as_running.c$$ +src/job_control/pprint_brace.c$$ +src/job_control/pprint_case.c$$ +src/job_control/pprint_cmd.c$$ +src/job_control/pprint_for.c$$ +src/job_control/pprint_function.c$$ +src/job_control/pprint_if.c$$ +src/job_control/pprint_subshell.c$$ +src/job_control/pprint_until.c$$ +src/job_control/pprint_while.c$$ +src/job_control/process_cmp_pid.c$$ +src/job_control/process_format.c$$ +src/job_control/process_free.c$$ +src/job_control/put_job_in_background.c$$ +src/job_control/put_job_in_foreground.c$$ +src/job_control/sigchld_handler.c$$ +src/job_control/sigint_handler.c$$ +src/job_control/sigtstp_handler.c$$ +src/job_control/sigttin_handler.c$$ +src/job_control/sigttou_handler.c$$ +src/lexer/do_lexer_routine.c$$ +src/lexer/get_lexer_stack.c$$ +src/lexer/get_lexer_stack2.c$$ +src/lexer/get_reserved_words.c$$ +src/lexer/get_state_global.c$$ +src/lexer/get_state_redir.c$$ +src/lexer/insert_newline.c$$ +src/lexer/isrw_delim.c$$ +src/lexer/keep_last_type.c$$ +src/lexer/lexer_backslash.c$$ +src/lexer/lexer_bquote.c$$ +src/lexer/lexer_curly_braces.c$$ +src/lexer/lexer_default.c$$ +src/lexer/lexer_delim.c$$ +src/lexer/lexer_destroy.c$$ +src/lexer/lexer_dquote.c$$ +src/lexer/lexer_end.c$$ +src/lexer/lexer_great.c$$ +src/lexer/lexer_heredoc.c$$ +src/lexer/lexer_init.c$$ +src/lexer/lexer_less.c$$ +src/lexer/lexer_lex.c$$ +src/lexer/lexer_newline.c$$ +src/lexer/lexer_number.c$$ +src/lexer/lexer_paren.c$$ +src/lexer/lexer_quote.c$$ +src/lexer/lexer_sep.c$$ +src/lexer/lexer_word.c$$ +src/lexer/token_append.c$$ +src/lexer/token_cmp_type.c$$ +src/lexer/token_free.c$$ +src/lexer/token_init.c$$ +src/lexer/token_print.c$$ +src/line_editing/control_features.c$$ +src/line_editing/ft_prompt.c$$ +src/line_editing/get_key.c$$ +src/line_editing/readline.c$$ +src/line_editing/resize.c$$ +src/main/data_exit.c$$ +src/main/data_init.c$$ +src/main/data_singleton.c$$ +src/main/ft_putast.c$$ +src/main/main.c$$ +src/main/shell_init.c$$ +src/main/shell_reset.c$$ +src/parser/add_bang.c$$ +src/parser/add_case.c$$ +src/parser/add_cmd.c$$ +src/parser/add_condition.c$$ +src/parser/add_func.c$$ +src/parser/add_loop.c$$ +src/parser/add_number.c$$ +src/parser/add_redir.c$$ +src/parser/add_sep.c$$ +src/parser/add_subshell.c$$ +src/parser/aggregate_sym.c$$ +src/parser/build_tree.c$$ +src/parser/do_parser_routine.c$$ +src/parser/error_syntax.c$$ +src/parser/eval_sym.c$$ +src/parser/ft_parse.c$$ +src/parser/heredoc_parser.c$$ +src/parser/parser_destroy.c$$ +src/parser/parser_init.c$$ +src/parser/pop_stack.c$$ +src/parser/produce_sym.c$$ +src/parser/push_stack.c$$ +src/parser/read_stack.c$$ +src/parser/redir_init.c$$ +src/parser/stack_init.c$$ +src/parser/sym_free.c$$ +src/parser/tree_func_free.c$$ +src/parser/tree_wrapper.c$$ diff --git a/42sh/file b/42sh/file new file mode 100644 index 00000000..4b2174a6 --- /dev/null +++ b/42sh/file @@ -0,0 +1,20 @@ +/Users/ariard/Projects/42sh +/Users/ariard/Projects/42sh +42ShellTester +42sh +Makefile +README.md +STDBUG +another_file +auteur +donovan_segaults_06-02 +file +includes +libft +objs +pdf +sample +scriptheader.sh +src +test +update_makefile.sh diff --git a/42sh/sample/again.sh b/42sh/sample/again.sh new file mode 100644 index 00000000..1a85b88c --- /dev/null +++ b/42sh/sample/again.sh @@ -0,0 +1,2 @@ +echo "echo hello" >> sample/again.sh +echo hello diff --git a/42sh/sample/andor.sh b/42sh/sample/andor.sh new file mode 100644 index 00000000..76759a12 --- /dev/null +++ b/42sh/sample/andor.sh @@ -0,0 +1,8 @@ +pwd > file && pwd >> file || ls | cat && ls | cat >> file || ls +cat -e file + +sleep 2 +echo "My sample :" +echo +cat sample/andor.sh + diff --git a/42sh/sample/brace b/42sh/sample/brace deleted file mode 100644 index 54b84d56..00000000 --- a/42sh/sample/brace +++ /dev/null @@ -1 +0,0 @@ -{ ls | cat } diff --git a/42sh/sample/brace.sh b/42sh/sample/brace.sh new file mode 100644 index 00000000..6f0a47f3 --- /dev/null +++ b/42sh/sample/brace.sh @@ -0,0 +1,9 @@ +{ ls ; pwd } > file +cat -e file + +sleep 2 +echo +echo "My sample :" +sleep 2 +echo +cat sample/brace.sh diff --git a/42sh/sample/case.sh b/42sh/sample/case.sh index 14b13108..420f2235 100644 --- a/42sh/sample/case.sh +++ b/42sh/sample/case.sh @@ -1,8 +1,16 @@ -case van in - ( "bus" ) echo Hello world ;; - ( "velo" ) echo Comment va ;; - ( "van" ) case tutu in - ( toto ) pwd ;; - ( tutu ) ls ;; +case toto in + ( tutu ) echo PERDU ;; + ( titi ) echo PERDU ;; + ( toto ) case lala in + ( lolo ) echo PERDU ;; + ( lala ) echo GAGNE ;; esac ;; -esac +esac > file +cat -e file + +sleep 2 +echo +echo "My sample :" +sleep 2 +echo +cat sample/case.sh diff --git a/42sh/sample/comment.sh b/42sh/sample/comment.sh index 0680845f..e4d6764f 100644 --- a/42sh/sample/comment.sh +++ b/42sh/sample/comment.sh @@ -1,2 +1,9 @@ ls # Da comment pwd + +sleep 2 +echo +echo "My sample :" +sleep 2 +echo +cat sample/comment.sh diff --git a/42sh/sample/eof.sh b/42sh/sample/eof.sh new file mode 100644 index 00000000..e7c86456 --- /dev/null +++ b/42sh/sample/eof.sh @@ -0,0 +1,3 @@ +while [ 1 ] +do + ls diff --git a/42sh/sample/for.sh b/42sh/sample/for.sh index c38dab32..2d6dbe87 100644 --- a/42sh/sample/for.sh +++ b/42sh/sample/for.sh @@ -1,4 +1,13 @@ -for i in hello bonjour salut comment +for i in src/*/*.c do - echo $i | cat -e + echo $i | cat -e > file + cat -e file >> another_file + cat -e another_file done + +sleep 2 +echo +echo "My sample :" +sleep 2 +echo +cat sample/for.sh diff --git a/42sh/sample/func.sh b/42sh/sample/func.sh index fefce167..585f90a0 100644 --- a/42sh/sample/func.sh +++ b/42sh/sample/func.sh @@ -1,5 +1,14 @@ hello() ( - echo HELLO + hello() ( + echo hello ; hello ) + hello ) hello + +sleep 2 +echo +echo "My sample :" +sleep 2 +echo +cat sample/func.sh diff --git a/42sh/sample/if.sh b/42sh/sample/if.sh index 198b0a62..6364a745 100644 --- a/42sh/sample/if.sh +++ b/42sh/sample/if.sh @@ -1,9 +1,25 @@ -if cat wef4eeef +if false then - echo Conditon 1 -elif cat yulu + echo PERDU +elif false then - echo Condition 2 + echo PERDU +elif true +then + if false + then + echo PERDU + elif + echo GAGNE + fi > file else - echo Condition 3 + echo PERDU fi +cat -e file + +sleep 2 +echo +echo "My sample :" +sleep 2 +echo +cat sample/if.sh diff --git a/42sh/sample/if/02_if_elif.sh b/42sh/sample/if/02_if_elif.sh deleted file mode 100644 index ae93a37e..00000000 --- a/42sh/sample/if/02_if_elif.sh +++ /dev/null @@ -1,10 +0,0 @@ -if ls ; -then - pwd -elif ls -then - pwd -elif ls -then - pwd -fi diff --git a/42sh/sample/if/03_if_else.sh b/42sh/sample/if/03_if_else.sh deleted file mode 100644 index a02520e0..00000000 --- a/42sh/sample/if/03_if_else.sh +++ /dev/null @@ -1,5 +0,0 @@ -if cat yolo ; -then - pwd -else ls -fi diff --git a/42sh/sample/if/04_if_elseelsif.sh b/42sh/sample/if/04_if_elseelsif.sh deleted file mode 100644 index a52c07e3..00000000 --- a/42sh/sample/if/04_if_elseelsif.sh +++ /dev/null @@ -1,11 +0,0 @@ -if cat yolo ; -then - pwd -elif ls -then - pwd -elif pwd -then - ls -else ls -fi diff --git a/42sh/sample/infinite.sh b/42sh/sample/infinite.sh deleted file mode 100644 index 740015ae..00000000 --- a/42sh/sample/infinite.sh +++ /dev/null @@ -1,2 +0,0 @@ -echo "echo hello" >> sample/infinite.sh -echo hello diff --git a/42sh/sample/ls b/42sh/sample/ls deleted file mode 100644 index 9e2740c6..00000000 --- a/42sh/sample/ls +++ /dev/null @@ -1 +0,0 @@ -ls diff --git a/42sh/sample/mix.sh b/42sh/sample/mix.sh new file mode 100644 index 00000000..9cfd3fc2 --- /dev/null +++ b/42sh/sample/mix.sh @@ -0,0 +1,30 @@ +VAR=10 +if true +then + echo "Salut" ; echo "Correcteur" + while [ $VAR -gt 0 ] + do + until true + do + echo KO SI JE M AFFICHE + done + if true + then + echo OK SI JE M AFFICHE + elif [ -f Makefile ] + then + echo KO SI JE M AFFICHE + else + echo KO SI JE M AFFICHE + fi + echo "Encore un tour" + math VAR - 1 + done +fi + +sleep 2 +echo +echo "My sample :" +sleep 3 +echo +cat sample/mix/mix.sh diff --git a/42sh/sample/mix/mix.sh b/42sh/sample/mix/mix.sh deleted file mode 100644 index 795c1e37..00000000 --- a/42sh/sample/mix/mix.sh +++ /dev/null @@ -1,21 +0,0 @@ -if ls -then - pwd ; echo "Salut" - while ls - do - until pwd - do - echo KO SI JE M AFFICHE - done - if cat faux - then - echo BONJOUR MAKEFILE - elif [ -f Makefile ] - then - echo BONJOUR MAKEFILE - else - echo KO SI JE M M AFFICHE - fi - echo "Encore une" - done -fi diff --git a/42sh/sample/muchloop.sh b/42sh/sample/muchloop.sh new file mode 100644 index 00000000..a4bd4192 --- /dev/null +++ b/42sh/sample/muchloop.sh @@ -0,0 +1,31 @@ +while [ 1 ] +do + while [ 1 ] + do + while [ 1 ] + do + while [ 1 ] + do + while [ 1 ] + do + while [ 1 ] + do + while [ 1 ] + do + while [ 1 ] + do + while [ 1 ] + do + while [ 1 ] + do + echo "SO MUCH LOOOOP" + done + done + done + done + done + done + done + done + done +done diff --git a/42sh/sample/multiredir b/42sh/sample/multiredir deleted file mode 100644 index 0350bb6f..00000000 --- a/42sh/sample/multiredir +++ /dev/null @@ -1,3 +0,0 @@ -cat < file1 < file2 > file3 > file4 - - diff --git a/42sh/sample/redir/redir.sh b/42sh/sample/redir/redir.sh deleted file mode 100644 index 8b137891..00000000 --- a/42sh/sample/redir/redir.sh +++ /dev/null @@ -1 +0,0 @@ - diff --git a/42sh/sample/script.sh b/42sh/sample/script.sh new file mode 100644 index 00000000..d45d0907 --- /dev/null +++ b/42sh/sample/script.sh @@ -0,0 +1,16 @@ +clear +YES=y +NO=n +echo "Welcome in 42Zash, new corrector, what is your login ?" + +until [ $REP == $YES ] +do + read -p "> " LOGIN + echo + read -p "Ok, fine, your login is $LOGIN, right ?(y/n) " REP + if [ $REP = $NO ] + then + echo + echo "Don't worry let's do it again" + fi +done diff --git a/42sh/sample/stack.sh b/42sh/sample/stack.sh deleted file mode 100644 index 5b2b1f27..00000000 --- a/42sh/sample/stack.sh +++ /dev/null @@ -1,3 +0,0 @@ -cat && ls || ls | cat && ls | cat || ls - - diff --git a/42sh/sample/subshell_pipe b/42sh/sample/subshell.sh similarity index 84% rename from 42sh/sample/subshell_pipe rename to 42sh/sample/subshell.sh index 36c34cd1..8c386eed 100644 --- a/42sh/sample/subshell_pipe +++ b/42sh/sample/subshell.sh @@ -8,3 +8,10 @@ echo aaa \ | (echo bbb 7; cat -e ;echo ccc 7) \ | (echo bbb 8; cat -e ;echo ccc 8) \ | (echo bbb 9; cat -e ;echo ccc 9) + + +sleep 2 +echo "My sample :" +echo +sleep 2 +cat sample/subshell.sh diff --git a/42sh/sample/subshell/subshell01.sh b/42sh/sample/subshell/subshell01.sh deleted file mode 100644 index f1f04671..00000000 --- a/42sh/sample/subshell/subshell01.sh +++ /dev/null @@ -1,2 +0,0 @@ -(ls | cat -pwd ; ls) diff --git a/42sh/sample/toomuchdone.sh b/42sh/sample/toomuchdone.sh new file mode 100644 index 00000000..069b98ff --- /dev/null +++ b/42sh/sample/toomuchdone.sh @@ -0,0 +1,4 @@ +while [ 1 ] +do + ls +done done diff --git a/42sh/sample/until.sh b/42sh/sample/until.sh index c9394c45..845b901e 100644 --- a/42sh/sample/until.sh +++ b/42sh/sample/until.sh @@ -1,8 +1,30 @@ -until [ 1 ] +VAR1=0 +until [ $VAR1 -gt 10 ] do - echo LOOP1 - until [ 1 ] + VAR2=0 + until [ $VAR2 -gt 10 ] do - echo hello + VAR3=0 + until [ $VAR3 -gt 10 ] + do + math VAR3 + 1 + echo "3rd is $VAR3" + done + math VAR2 + 1 + echo "2nd is $VAR2" done -done > file1 + math VAR1 + 1 + echo "1st is $VAR1" + sleep 1 +done +echo +echo "VAR1: $VAR1" +echo "VAR2: $VAR2" +echo "VAR3: $VAR3" + +sleep 2 +echo +echo "My sample :" +sleep 2 +echo +cat sample/until.sh diff --git a/42sh/sample/until/01_until.sh b/42sh/sample/until/01_until.sh deleted file mode 100644 index 2a531998..00000000 --- a/42sh/sample/until/01_until.sh +++ /dev/null @@ -1,11 +0,0 @@ -until cat wefwef -do - until ls - do - pwd ; ls - done - until cat eqwfewf - do - ls | cat - done -done diff --git a/42sh/sample/until2.sh b/42sh/sample/until2.sh deleted file mode 100644 index a8a568d1..00000000 --- a/42sh/sample/until2.sh +++ /dev/null @@ -1,11 +0,0 @@ -ONE=0 -while [ $ONE -le 10 ] -do - TWO=0 - while [ $TWO -le 10 ] - do - echo world - math TWO + 1; - done - math ONE + 1; -done > file1 diff --git a/42sh/sample/var.sh b/42sh/sample/var.sh new file mode 100644 index 00000000..e1dca148 --- /dev/null +++ b/42sh/sample/var.sh @@ -0,0 +1,11 @@ +HELLO=WORLD HELLO=SALUT HELLO="BUENOS DIAS" +echo $HELLO +SALUT=$HELLO +echo $SALUT + +sleep 2 +echo +echo "My sample :" +sleep 2 +echo +cat sample/var.sh diff --git a/42sh/sample/var_01.sh b/42sh/sample/var_01.sh deleted file mode 100644 index d77e8f12..00000000 --- a/42sh/sample/var_01.sh +++ /dev/null @@ -1 +0,0 @@ -HELLO=WORLD diff --git a/42sh/sample/while.sh b/42sh/sample/while.sh index d0fd226b..2f1448c6 100644 --- a/42sh/sample/while.sh +++ b/42sh/sample/while.sh @@ -1,12 +1,24 @@ +VAR=10 while - while - while ls | cat + while [ $VAR -gt 0 ] do - ls - done - do - ls | cat - done + echo "Inside inner loop" | cat -e + math VAR - 1 + done + if [ $VAR -eq -42 ] + then + false + else + true + fi do - pwd + echo "I'm the execution block" + VAR=-42 done + +sleep 2 +echo +echo "My sample :" +sleep 3 +echo +cat sample/while.sh diff --git a/42sh/sample/while/while01.sh b/42sh/sample/while/while01.sh deleted file mode 100644 index 403f8702..00000000 --- a/42sh/sample/while/while01.sh +++ /dev/null @@ -1,11 +0,0 @@ -while ls -do - while cat rwgwghe - do - echo Hello World - done - while pwd - do - echo Bonjour ca va - done -done diff --git a/42sh/sample/while/while02.sh b/42sh/sample/while/while02.sh deleted file mode 100644 index 49c24084..00000000 --- a/42sh/sample/while/while02.sh +++ /dev/null @@ -1,5 +0,0 @@ -ls -while [ 1 ] ; -do - ls | cat -done diff --git a/42sh/sample/while/while03.sh b/42sh/sample/while/while03.sh deleted file mode 100644 index 599bc530..00000000 --- a/42sh/sample/while/while03.sh +++ /dev/null @@ -1,5 +0,0 @@ -ls -for HELLLO in yolo ; -do - ls -done > file1 diff --git a/42sh/sample/while2.sh b/42sh/sample/while2.sh deleted file mode 100644 index 6549f933..00000000 --- a/42sh/sample/while2.sh +++ /dev/null @@ -1,16 +0,0 @@ -ONE=11 -while [ $ONE -gt 1 ] -do - TWO=11 - while [ $TWO -gt 1 ] - do - THREE=11 - while [ $THREE -gt 1 ] - do - echo hello - ((THREE--)) - done - ((TWO--)) - done - ((ONE--)) -done > file1 diff --git a/42sh/sample/while_error.sh b/42sh/sample/while_error.sh deleted file mode 100644 index c8102bb8..00000000 --- a/42sh/sample/while_error.sh +++ /dev/null @@ -1,6 +0,0 @@ -echo hello -while || -do - pwd ; -done -ls | cat diff --git a/42sh/sample/yale/yale0.ex b/42sh/sample/yale/yale0.ex deleted file mode 100644 index 8d12c570..00000000 --- a/42sh/sample/yale/yale0.ex +++ /dev/null @@ -1 +0,0 @@ -< A B | ( C 2> D & E < F ) > G ; H=I J K diff --git a/42sh/sample/yale/yale1.ex b/42sh/sample/yale/yale1.ex deleted file mode 100644 index 372d7e63..00000000 --- a/42sh/sample/yale/yale1.ex +++ /dev/null @@ -1 +0,0 @@ -< A B | C | D | E > F diff --git a/42sh/sample/yale/yale2.ex b/42sh/sample/yale/yale2.ex deleted file mode 100644 index 71e5a6d8..00000000 --- a/42sh/sample/yale/yale2.ex +++ /dev/null @@ -1 +0,0 @@ - A && B || C && D diff --git a/42sh/sample/yale/yale3.ex b/42sh/sample/yale/yale3.ex deleted file mode 100644 index 260a8b62..00000000 --- a/42sh/sample/yale/yale3.ex +++ /dev/null @@ -1 +0,0 @@ -A ; B & C ; D || E diff --git a/42sh/sample/yale/yale5.ex b/42sh/sample/yale/yale5.ex deleted file mode 100644 index 4cd3a71e..00000000 --- a/42sh/sample/yale/yale5.ex +++ /dev/null @@ -1 +0,0 @@ -(A ; B &) | (C || D) && E diff --git a/42sh/sample/yale1.sh b/42sh/sample/yale1.sh deleted file mode 100644 index 8b137891..00000000 --- a/42sh/sample/yale1.sh +++ /dev/null @@ -1 +0,0 @@ - diff --git a/42sh/src/main/main.c b/42sh/src/main/main.c index 73156a39..00d047bc 100644 --- a/42sh/src/main/main.c +++ b/42sh/src/main/main.c @@ -6,7 +6,7 @@ /* By: gwojda +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/03/20 14:45:40 by gwojda #+# #+# */ -/* Updated: 2017/03/26 21:57:37 by jhalford ### ########.fr */ +/* Updated: 2017/03/27 15:18:20 by ariard ### ########.fr */ /* */ /* ************************************************************************** */ @@ -46,6 +46,7 @@ static int handle_instruction(t_list **token, t_btree **ast) return (ret); if (do_lexer_routine(token, stream) > 0) continue ; + token_print(*token); if ((ret = do_parser_routine(token, ast)) == 1 && SH_NO_INTERACTIVE(data->opts)) return (ret); diff --git a/42sh/src/parser/aggregate_sym.c b/42sh/src/parser/aggregate_sym.c index d589639d..7fc190fd 100644 --- a/42sh/src/parser/aggregate_sym.c +++ b/42sh/src/parser/aggregate_sym.c @@ -6,7 +6,7 @@ /* By: ariard +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/03/11 15:58:38 by ariard #+# #+# */ -/* Updated: 2017/03/24 23:26:22 by ariard ### ########.fr */ +/* Updated: 2017/03/27 17:23:36 by ariard ### ########.fr */ /* */ /* ************************************************************************** */ @@ -89,6 +89,7 @@ static t_aggrematch g_aggrematch[] = {NEWLINE_LIST, TK_ELIF, TK_ELIF, TK_ELIF}, {NEWLINE_LIST, TK_ELSE, TK_ELSE, TK_ELSE}, {NEWLINE_LIST, TK_WHILE, TK_WHILE, TK_WHILE}, + {NEWLINE_LIST, LOOP, LOOP, LOOP}, {NEWLINE_LIST, TK_LBRACE, TK_LBRACE, TK_LBRACE}, {NEWLINE_LIST, TK_UNTIL, TK_UNTIL, TK_UNTIL}, {NEWLINE_LIST, CASE_LIST_NS, CASE_LIST_NS, CASE_LIST_NS}, @@ -148,6 +149,7 @@ static t_aggrematch g_aggrematch[] = {CMD_SUFFIX, CMD_WORD, SIMPLE_COMMAND, CMD_PREFIX}, {CMD_SUFFIX, CMD_NAME, SIMPLE_COMMAND, CMD_NAME}, {CMD_SUFFIX, CMD_SUPERIOR, CMD_SUPERIOR, CMD_SUPERIOR}, + {CMD_SUFFIX, COMPOUND_LIST, COMPOUND_LIST, COMPOUND_LIST}, {CMD_SUFFIX, PIPE_SEMI_SEQUENCE, PIPE_SEMI_SEQUENCE, PIPE_SEMI_SEQUENCE}, {CMD_SUFFIX, PIPE_CLOSE_SEQUENCE, PIPE_CLOSE_SEQUENCE, PIPE_CLOSE_SEQUENCE}, {CMD_PREFIX, LINEBREAK, SIMPLE_COMMAND, 0}, diff --git a/42sh/src/parser/eval_sym.c b/42sh/src/parser/eval_sym.c index a8582698..94747a30 100644 --- a/42sh/src/parser/eval_sym.c +++ b/42sh/src/parser/eval_sym.c @@ -6,7 +6,7 @@ /* By: ariard +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/03/11 16:11:21 by ariard #+# #+# */ -/* Updated: 2017/03/24 23:26:06 by ariard ### ########.fr */ +/* Updated: 2017/03/27 17:29:01 by ariard ### ########.fr */ /* */ /* ************************************************************************** */ @@ -605,6 +605,7 @@ static t_stackmatch g_stackmatch[] = {NEWLINE_LIST, FOR_WORDLIST}, {NEWLINE_LIST, TK_IN}, {NEWLINE_LIST, TK_WHILE}, + {NEWLINE_LIST, LOOP}, {NEWLINE_LIST, FUNC_NAME}, {NEWLINE_LIST, TK_UNTIL}, {NEWLINE_LIST, TK_IF}, diff --git a/42sh/src/parser/produce_sym.c b/42sh/src/parser/produce_sym.c index ab5feb97..3a989fb5 100644 --- a/42sh/src/parser/produce_sym.c +++ b/42sh/src/parser/produce_sym.c @@ -6,7 +6,7 @@ /* By: ariard +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/02/09 17:58:34 by ariard #+# #+# */ -/* Updated: 2017/03/23 16:47:59 by ariard ### ########.fr */ +/* Updated: 2017/03/27 17:22:10 by ariard ### ########.fr */ /* */ /* ************************************************************************** */ @@ -71,7 +71,7 @@ static t_prodmatch g_prodmatch[] = {TK_ASSIGNMENT_WORD, NEWLINE_LIST, CMD_PREFIX}, {TK_ASSIGNMENT_WORD, CMD_NAME, CMD_SUFFIX}, {TK_ASSIGNMENT_WORD, CMD_SUPERIOR, CMD_SUFFIX}, - {TK_ASSIGNMENT_WORD, COMPOUND_LIST, CMD_SUFFIX}, + {TK_ASSIGNMENT_WORD, COMPOUND_LIST, CMD_PREFIX}, {TK_ASSIGNMENT_WORD, COMPLETE_CONDITION, CMD_PREFIX}, {TK_ASSIGNMENT_WORD, CONDITION, CMD_PREFIX}, {TK_ASSIGNMENT_WORD, AND_OR, CMD_PREFIX}, @@ -94,6 +94,7 @@ static t_prodmatch g_prodmatch[] = {TK_NEWLINE, TK_RBRACE, CMD_NAME}, {TK_NEWLINE, TK_IN, NEWLINE_LIST}, {TK_NEWLINE, TK_WHILE, NEWLINE_LIST}, + {TK_NEWLINE, LOOP, NEWLINE_LIST}, {TK_NEWLINE, TK_UNTIL, NEWLINE_LIST}, {TK_NEWLINE, TK_FOR, NEWLINE_LIST}, {TK_NEWLINE, TK_IF, NEWLINE_LIST},