From cb914510d585cc4d2ce49ce1a537f4457c39ddbc Mon Sep 17 00:00:00 2001 From: Denis Date: Mon, 10 May 2021 18:00:27 +0300 Subject: [PATCH] parser complete --- philo_one/Makefile | 2 +- philo_one/includes/philo_header.h | 2 +- philo_one/obj/main.o | Bin 0 -> 832 bytes philo_one/obj/parser.o | Bin 0 -> 2144 bytes philo_one/obj/utilc.o | Bin 0 -> 1552 bytes philo_one/philo_one | Bin 0 -> 50470 bytes philo_one/srcs/main.c | 85 +++------------------------- philo_one/srcs/parser.c | 90 ++++++++++++++++++++++++++++++ 8 files changed, 101 insertions(+), 78 deletions(-) create mode 100644 philo_one/obj/main.o create mode 100644 philo_one/obj/parser.o create mode 100644 philo_one/obj/utilc.o create mode 100755 philo_one/philo_one create mode 100644 philo_one/srcs/parser.c diff --git a/philo_one/Makefile b/philo_one/Makefile index 8bd3076..942b953 100644 --- a/philo_one/Makefile +++ b/philo_one/Makefile @@ -1,6 +1,6 @@ .PHONY: all clean fclean re -SRCS = main.c utilc.c +SRCS = main.c utilc.c parser.c SRC_DIR = ./srcs/ diff --git a/philo_one/includes/philo_header.h b/philo_one/includes/philo_header.h index 2457013..90b7684 100644 --- a/philo_one/includes/philo_header.h +++ b/philo_one/includes/philo_header.h @@ -22,6 +22,6 @@ void *ft_calloc(size_t num, size_t size); t_all *structalloc_and_bzero(void); int parse_and_check_values(char **argv, int quantity); int ft_atoi(const char *str); -int check_f(char ch); +int check_f(char ch); #endif diff --git a/philo_one/obj/main.o b/philo_one/obj/main.o new file mode 100644 index 0000000000000000000000000000000000000000..330829f1b7398a679148dc992822c70e4a6ed9e5 GIT binary patch literal 832 zcma)4y-vbV6h2sg5;3?i=wv73AOs16F)^u869)!k7}#!VtwMy-v_(l+NL(Bt@c|s= z4PerQ2QV(i5gxz?zy$R>+^esC_)f6^Uw|lDipE~-Sw+J z{9~Fj^C5czyo5ZfBI`nUX3diTPKexbJ~zQZl$QbX%^@zp@Juibc7X_CxSmtAu4H1C zFW`yGdWy+HG6OM>Q7PNH;fbnsTeL2O$R35-$(BHs{saWP+daHoeTp)T+8T6Ri=r6{ z;U>;E5%B#mi3Z2jQz#4X%gSdLpi{)a|B;_NdK=Xv?a?8%o_iaeew4Zcg@%1a8xEpc z7aR{7Q3f;c74fsRIJZTOvnTZ9n{ht(*b|*m{h$rL){7$E&05h@&rL(Gx~6J6PQ_Wq zv5Clg=kcc`1GGq#NWo*T?Dp92tMJ${0mu2pJ^0x8(m3V+e=!UbyeIR7ags6aF#JBN zq4OMuAZ^ZI61MKRrqJ=^M!__$#f@I7nl6<@5@**)4tvDZHj&Y D7uI5g literal 0 HcmV?d00001 diff --git a/philo_one/obj/parser.o b/philo_one/obj/parser.o new file mode 100644 index 0000000000000000000000000000000000000000..01a56e751f12b1da195cc27a11fd987edf110e96 GIT binary patch literal 2144 zcmb_dO=uHA82#Fq+NA%|f>tn7^w1&^|4IuQjDMhzgO(n|%eYOqO)yQ;&Blse0*W9A zD)i8UV2`bM@Zh02DfHq^3!)y^;vpWq8?n~+?at^nO~8XgXWzW{zWHYMn{@W=k8i)) ziJAzFA3M-jcp%Wx_Mnftu1mK)T6qH6Cl#alPH5Z%Y@$hNn>TH5?D6sQSH}NxJsMRL zIA1eFCrGr9%^g%?&`ru@!M4)bX(dRxHJ{FtR(?0~_#5Z;H{{FB-Jryxr(tS=tbUj>bW(S1_*=_y$E<0J3`totwXQVQ^Jq z*ZbGU<{esd+Nk=ui^`R*c=AhovJ>qP7H&F{G5-+2E zk6#Dmhs{-5+qm7lyaBH3xgMY@*R&EqO#|^N1<{G-xqdis=)jOq3o5O{r-hW(r|pw+{b#U0x%EH9iMI&-6Nrt8!)I_L*hWpkXaI)=~9{^wI3; zW*T>}w{_%eb@R2l`5dBQ#6CiQ%yam6w}f{QsJUN%1#K^%6Y3k;L$d?Ee7XisgIpbT za<$fId^S$N+Y_%<`;NKmqF@`@NyD;*Rm_HI!k83>H61265X4;CPKjLJPUo^lCQPPf z`GY}cW*dl$*Jt6*H+ zI$yk5+kAmb3X4U1fwgd`jfW1oN_=r5K3 z0*JrFa}Q%rl)eDOmJ{ zD7>pMuP}}}VAvuQ0$lzO*a<^7{;qXmP5qs?r}#y@EVnsy_Qw=YDV|ciq`00x%N(Bm zPKE_C%1X)otsK|$5Mv=ZPEGX)s#0Q@`tu=AXIj>$xvf#>IjGl}h zjG!j;uxY(S!uF)Hhk7dXq30Pyn-Wy?umx-VzI)HbEhXrKbAI2y^PS)M?mg$judly% z6Db7YX&1&ID{UB%0~mQz+j$yME&sGxfylNS;O0>$mkFVVCUj{4gy_52-?wGk+Bdm? z>#d_)d8Ewh&h@*fB=Cjv<{BD8f`*9kSjQH8bNh$1tp8 zxRHzjVGiu?!a64~4eSSU^cn^W=kQ>j^->4?msEOaHP=Di`Htmo?{U&lu+P-nNlPeF zpCZj~>ps$QB>kPF8Mc0wv?=H($>_~{C<9*mD!`n_pTQn8%c}TTQI*y5q?#&cX(pk1 zi%Z!fX*<8-rczQB#Z>lLn!<%H9O7|;=u9$uBkgoha}v45N@c&D(}*0gNZK;?tns}f zZ4O*(e8`()p5Wplqs4jOb%;4u*RIZY;|yYjv`sfPD73)TB6u1Em(Qr4S3{Eu9(!|I_E9Fxdxk-3)@V-1|2rqG{x z^rt;M--SIMI#=j>9(`Ltk0R*N0($fwJuLx2Vclc(zTokf zcn$Z4dzDk2^ZXrh*n?v@(;Mzn5{P)|9nm7&(?H%c8TS^OB$yhVFG*Btu;4krabSdD;x9g}Jb<_EhDKv}S4A`w9Si9qI2a)@po@SW c3lpqRFd_y>M9mduBxtEadUT|dcs@n+2VLTMfB*mh literal 0 HcmV?d00001 diff --git a/philo_one/philo_one b/philo_one/philo_one new file mode 100755 index 0000000000000000000000000000000000000000..d5a26e70f09b3ea406c359c4e7044576299ba1c1 GIT binary patch literal 50470 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 literal 0 HcmV?d00001 diff --git a/philo_one/srcs/main.c b/philo_one/srcs/main.c index c10c0c5..3a36598 100644 --- a/philo_one/srcs/main.c +++ b/philo_one/srcs/main.c @@ -1,81 +1,14 @@ #include "../includes/philo_header.h" -int check_param(t_all *all, int optional) -{ - if (optional) - { - if (all->number_of_philosophers <= 0) - return(1); - if (all->time_to_die <= 0) - return(1); - if (all->time_to_eat <= 0) - return(1); - if (all->time_to_sleep <= 0) - return(1); - if (all->number_of_times_each_philosopher_must_eat <= 0) - return(1); - } - else - { - if (all->number_of_philosophers <= 0) - return(1); - if (all->time_to_die <= 0) - return(1); - if (all->time_to_eat <= 0) - return(1); - if (all->time_to_sleep <= 0) - return(1); - } - return (0); -} - -int parse_param(t_all *all, int optional, char **argv) -{ - if (optional) - { - all->number_of_philosophers = ft_atoi(argv[1]); - all->time_to_die = ft_atoi(argv[2]); - all->time_to_eat = ft_atoi(argv[3]); - all->time_to_sleep = ft_atoi(argv[4]); - all->number_of_times_each_philosopher_must_eat = ft_atoi(argv[5]); - return (check_param(all, 1)); - } - else - { - all->number_of_philosophers = ft_atoi(argv[1]); - all->time_to_die = ft_atoi(argv[2]); - all->time_to_eat = ft_atoi(argv[3]); - all->time_to_sleep = ft_atoi(argv[4]); - return (check_param(all, 0)); - } -} - -int parse_and_check_values(char **argv, int quantity) -{ - t_all *all; - - all = structalloc_and_bzero(); - if (quantity == 5) - { - printf("ok standart run\n"); - parse_param(all, 0, argv); - return(1); - } - else if (quantity == 6) - { - printf("ok run with optional\n"); - parse_param(all, 1, argv); - return(1); - } - else - { - printf("error please use argument 5 (optional) or 4 (standart) \n"); - free(all); - return(0); - } -} - int main(int argc, char **argv) { - parse_and_check_values(argv, argc); + if (parse_and_check_values(argv, argc)) + ; + else + { + printf("exit because error\n"); + return (1); + } + + return(0); } diff --git a/philo_one/srcs/parser.c b/philo_one/srcs/parser.c new file mode 100644 index 0000000..2c9ddc9 --- /dev/null +++ b/philo_one/srcs/parser.c @@ -0,0 +1,90 @@ +#include "../includes/philo_header.h" + +int check_param(t_all *all, int optional) +{ + if (optional) + { + if (all->number_of_philosophers <= 0) + return(1); + if (all->time_to_die <= 0) + return(1); + if (all->time_to_eat <= 0) + return(1); + if (all->time_to_sleep <= 0) + return(1); + if (all->number_of_times_each_philosopher_must_eat <= 0) + return(1); + } + else + { + if (all->number_of_philosophers <= 0) + return(1); + if (all->time_to_die <= 0) + return(1); + if (all->time_to_eat <= 0) + return(1); + if (all->time_to_sleep <= 0) + return(1); + } + return (0); +} + +int parse_param(t_all *all, int optional, char **argv) +{ + if (optional) + { + all->number_of_philosophers = ft_atoi(argv[1]); + all->time_to_die = ft_atoi(argv[2]); + all->time_to_eat = ft_atoi(argv[3]); + all->time_to_sleep = ft_atoi(argv[4]); + all->number_of_times_each_philosopher_must_eat = ft_atoi(argv[5]); + return (check_param(all, 1)); + } + else + { + all->number_of_philosophers = ft_atoi(argv[1]); + all->time_to_die = ft_atoi(argv[2]); + all->time_to_eat = ft_atoi(argv[3]); + all->time_to_sleep = ft_atoi(argv[4]); + return (check_param(all, 0)); + } +} + +int parse_and_check_values(char **argv, int quantity) +{ + t_all *all; + + all = structalloc_and_bzero(); + if (quantity == 5) + { + if (!parse_param(all, 0, argv)) + { + printf("ok standart run\n"); + return(1); + } + else + { + printf("bad arg\n"); + return (0); + } + } + else if (quantity == 6) + { + if (!parse_param(all, 1, argv)) + { + printf("ok run with optional\n"); + return(1); + } + else + { + printf("bad arg\n"); + return (0); + } + } + else + { + printf("error please use argument 5 (optional) or 4 (standart) \n"); + free(all); + return(0); + } +}