aboutsummaryrefslogtreecommitdiff
path: root/analyzer/commands.h
diff options
context:
space:
mode:
Diffstat (limited to 'analyzer/commands.h')
-rw-r--r--analyzer/commands.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/analyzer/commands.h b/analyzer/commands.h
new file mode 100644
index 0000000..f53a140
--- /dev/null
+++ b/analyzer/commands.h
@@ -0,0 +1,30 @@
+// commands.h
+// commands to use in the program
+
+#include <stddef.h>
+
+#define MAX_EXPLANATION_LINES 3
+
+typedef struct {
+ char *name;
+ char *short_name;
+ char *args_str;
+ char *explanation[MAX_EXPLANATION_LINES];
+ size_t explanation_lines;
+ int (*handler)(int argc, char *argv[]);
+} Command;
+
+// all commands of the program
+extern const Command commands[];
+extern const size_t commands_count;
+
+// check if the given command is represented by the given string
+// params:
+// - command - potentailly represented command
+// - str - potentially representing string
+// returns:
+// 1 if command is represneted by string, 0 if not
+extern int is_command(Command command, char *str);
+
+// print information about help when program didn't recognize command
+extern void command_not_recognized();