about summary refs log tree commit diff
path: root/custom_mutators/gramatron/test.h
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2021-07-20 08:57:37 +0200
committerGitHub <noreply@github.com>2021-07-20 08:57:37 +0200
commitfff8c49f7c73a1531166ad52fc50306dbd01775f (patch)
tree217b85dfd5b6ccf62a8fa4ac59a65d615a08143f /custom_mutators/gramatron/test.h
parentb3fe3b8877931f7ba7c4150fcc24e8cd18835d86 (diff)
parent5bcbb2f59affc411a1e8bb7ccaabaa5ba63e6596 (diff)
downloadafl++-fff8c49f7c73a1531166ad52fc50306dbd01775f.tar.gz
Merge pull request #1034 from AFLplusplus/grammatron
Grammatron
Diffstat (limited to 'custom_mutators/gramatron/test.h')
-rw-r--r--custom_mutators/gramatron/test.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/custom_mutators/gramatron/test.h b/custom_mutators/gramatron/test.h
new file mode 100644
index 00000000..857cb5fc
--- /dev/null
+++ b/custom_mutators/gramatron/test.h
@@ -0,0 +1,57 @@
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <json-c/json.h>
+#include <unistd.h>
+#include "hashmap.h"
+#include "uthash.h"
+#include "utarray.h"
+
+#define INIT_SIZE 100  // Initial size of the dynamic array holding the input
+
+typedef struct terminal {
+
+  int    state;
+  int    trigger_idx;
+  size_t symbol_len;
+  char * symbol;
+
+} terminal;
+
+typedef struct trigger {
+
+  char * id;
+  int    dest;
+  char * term;
+  size_t term_len;
+
+} trigger;
+
+typedef struct state {
+
+  int      state_name;   // Integer State name
+  int      trigger_len;  // Number of triggers associated with this state
+  trigger *ptr;          // Pointer to beginning of the list of triggers
+
+} state;
+
+typedef struct {
+
+  size_t    used;
+  size_t    size;
+  size_t    inputlen;
+  terminal *start;
+
+} Array;
+
+int init_state;
+int curr_state;
+int final_state;
+
+state *create_pda(char *);
+Array *gen_input(state *, Array *);
+void   print_repr(Array *, char *);
+void   initArray(Array *, size_t);
+void   insertArray(Array *, int, char *, size_t, int);
+