Zappy - Year end project 2
This is a project that Epitech asked us to create in order to allow us to reveiw the notions of the current year.
Loading...
Searching...
No Matches
command_parse.h
Go to the documentation of this file.
1/*
2** EPITECH PROJECT, 2024
3** my_zappy
4** File description:
5** command_parse.h
6*/
7
8#ifndef MY_ZAPPY_COMMAND_PARSE_H
9 #define MY_ZAPPY_COMMAND_PARSE_H
10
11 #include <stdint.h>
12 #include "constants.h"
13
21struct command_s {
22 char *command;
23 char *opt;
24 size_t arg_nb;
25 char *(*command_fct)(char *, char *, char *);
26};
27
33char **parse_command(char *str);
34
42char ***parse_buffer(uint8_t *buffer, ssize_t buf_size);
43
44static const struct command_s CLIENT_COMMAND_TABLE[CLIENT_COMMAND_NB] = {
45 { "Forward", "", 0, NULL },
46 { "Right", "", 0, NULL },
47 { "Left", "", 0, NULL },
48 { "Look", "", 0, NULL },
49 { "Inventory", "", 0, NULL },
50 { "Broadcast", "", 1, NULL },
51 { "Connect_nbr", "", 0, NULL },
52 { "Fork", "", 0, NULL },
53 { "Eject", "", 0, NULL },
54 { "", "", 0, NULL },
55 { "Take", "", 1, NULL },
56 { "Set", "", 1, NULL },
57 { "Incantation", "", 0, NULL },
58};
59
60static const struct command_s GUI_COMMAND_TABLE[GUI_COMMAND_NB] = {
61 { "msz", "", 0, NULL },
62 { "bct", "", 2, NULL },
63 { "mct", "", 0, NULL },
64 { "tna", "", 0, NULL },
65 { "ppo", "", 1, NULL },
66 { "plv", "", 1, NULL },
67 { "pin", "", 1, NULL },
68 { "sgt", "", 0, NULL },
69 { "sst", "", 1, NULL },
70};
71
72static const struct command_s
73 COMMAND_TABLE[GUI_COMMAND_NB + CLIENT_COMMAND_NB] = {
74 { "Forward", "", 0, NULL },
75 { "Right", "", 0, NULL },
76 { "Left", "", 0, NULL },
77 { "Look", "", 0, NULL },
78 { "Inventory", "", 0, NULL },
79 { "Broadcast", "", 1, NULL },
80 { "Connect_nbr", "", 0, NULL },
81 { "Fork", "", 0, NULL },
82 { "Eject", "", 0, NULL },
83 { "", "", 0, NULL },
84 { "Take", "", 1, NULL },
85 { "Set", "", 1, NULL },
86 { "Incantation", "", 0, NULL },
87 { "msz", "", 0, NULL },
88 { "bct", "", 2, NULL },
89 { "mct", "", 0, NULL },
90 { "tna", "", 0, NULL },
91 { "ppo", "", 1, NULL },
92 { "plv", "", 1, NULL },
93 { "pin", "", 1, NULL },
94 { "sgt", "", 0, NULL },
95 { "sst", "", 1, NULL },
96};
97
98#endif //MY_ZAPPY_COMMAND_PARSE_H
char *** parse_buffer(uint8_t *buffer, ssize_t buf_size)
Get all command in buffer (a command is delimited by COMMAND_SEPARATOR)
char ** parse_command(char *str)
Parse a command using COMMAND_DELIMITER as delimiter.
#define GUI_COMMAND_NB
Definition constants.h:55
#define CLIENT_COMMAND_NB
Definition constants.h:54
Define structure of a command @command being the trigger string @opt Currently unused @arg_nb number ...
size_t arg_nb
char * command