parser done
This commit is contained in:
parent
5ecbfa4325
commit
30ad265779
4 changed files with 152 additions and 0 deletions
30
Makefile
Normal file
30
Makefile
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
NAME = codexion
|
||||||
|
|
||||||
|
SRCS = $(wildcard coders/*.c)
|
||||||
|
INCLUDES = coders/codexion.h
|
||||||
|
|
||||||
|
OBJS = $(SRCS:.c=.o)
|
||||||
|
|
||||||
|
CC = cc
|
||||||
|
CFLAGS = -Wall -Wextra -Werror
|
||||||
|
|
||||||
|
all: $(NAME)
|
||||||
|
|
||||||
|
$(NAME): $(OBJS)
|
||||||
|
$(CC) $(CFLAGS) -o $@ $^
|
||||||
|
|
||||||
|
%.o: %.c
|
||||||
|
$(CC) $(CFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
|
test: $(NAME)
|
||||||
|
./$(NAME) 0 1 2 3 4 5 6 7
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f $(OBJS)
|
||||||
|
|
||||||
|
fclean: clean
|
||||||
|
rm -f $(NAME)
|
||||||
|
|
||||||
|
re: fclean all
|
||||||
|
|
||||||
|
.PHONY: all clean fclean re
|
||||||
31
coders/codexion.h
Normal file
31
coders/codexion.h
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* codexion.h :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: semebrah <semebrah@student.42berlin.de> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2026/03/22 18:07:06 by semebrah #+# #+# */
|
||||||
|
/* Updated: 2026/03/22 18:07:31 by semebrah ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#ifndef CODEXION_H
|
||||||
|
# define CODEXION_H
|
||||||
|
|
||||||
|
typedef struct s_data
|
||||||
|
{
|
||||||
|
int number_of_coders;
|
||||||
|
int time_to_burnout;
|
||||||
|
int time_to_compile;
|
||||||
|
int time_to_debug;
|
||||||
|
int time_to_refactor;
|
||||||
|
int number_of_compiles_required;
|
||||||
|
int dongle_cooldown;
|
||||||
|
int scheduler;
|
||||||
|
} t_data;
|
||||||
|
|
||||||
|
// utils.h
|
||||||
|
t_data *parse_arguments(int count, char **args);
|
||||||
|
|
||||||
|
#endif
|
||||||
35
coders/main.c
Normal file
35
coders/main.c
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* main.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: semebrah <semebrah@student.42berlin.de> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2026/03/22 18:07:14 by semebrah #+# #+# */
|
||||||
|
/* Updated: 2026/03/22 18:07:31 by semebrah ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include "codexion.h"
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
t_data *data;
|
||||||
|
|
||||||
|
data = parse_arguments(argc - 1, &argv[1]);
|
||||||
|
if (!data)
|
||||||
|
return (0);
|
||||||
|
printf("d = [%d]\n", data->number_of_coders);
|
||||||
|
printf("d = [%d]\n", data->time_to_burnout);
|
||||||
|
printf("d = [%d]\n", data->time_to_compile);
|
||||||
|
printf("d = [%d]\n", data->time_to_debug);
|
||||||
|
printf("d = [%d]\n", data->time_to_refactor);
|
||||||
|
printf("d = [%d]\n", data->number_of_compiles_required);
|
||||||
|
printf("d = [%d]\n", data->dongle_cooldown);
|
||||||
|
printf("d = [%d]\n", data->scheduler);
|
||||||
|
if (data)
|
||||||
|
free(data);
|
||||||
|
data = NULL;
|
||||||
|
}
|
||||||
56
coders/utils.c
Normal file
56
coders/utils.c
Normal file
|
|
@ -0,0 +1,56 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* utils.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: semebrah <semebrah@student.42berlin.de> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2026/03/22 18:07:24 by semebrah #+# #+# */
|
||||||
|
/* Updated: 2026/03/22 18:07:31 by semebrah ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include "codexion.h"
|
||||||
|
#include <stddef.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
int isnumeric(char *str)
|
||||||
|
{
|
||||||
|
size_t i;
|
||||||
|
|
||||||
|
i = -1;
|
||||||
|
while (++i < strlen(str))
|
||||||
|
if (str[i] < '0' || str[i] > '9')
|
||||||
|
return (0);
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
t_data *parse_arguments(int count, char **args)
|
||||||
|
{
|
||||||
|
int args_int[8];
|
||||||
|
t_data *data;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if (count != 8)
|
||||||
|
return (NULL);
|
||||||
|
data = malloc(sizeof(t_data));
|
||||||
|
if (!data)
|
||||||
|
return (NULL);
|
||||||
|
i = -1;
|
||||||
|
while (++i < 8)
|
||||||
|
{
|
||||||
|
if (!isnumeric(args[i]))
|
||||||
|
return (NULL);
|
||||||
|
args_int[i] = atoi(args[i]);
|
||||||
|
}
|
||||||
|
data->number_of_coders = args_int[0];
|
||||||
|
data->time_to_burnout = args_int[1];
|
||||||
|
data->time_to_compile = args_int[2];
|
||||||
|
data->time_to_debug = args_int[3];
|
||||||
|
data->time_to_refactor = args_int[4];
|
||||||
|
data->number_of_compiles_required = args_int[5];
|
||||||
|
data->dongle_cooldown = args_int[6];
|
||||||
|
data->scheduler = args_int[7];
|
||||||
|
return (data);
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue