diff --git a/src/main.c b/src/main.c
index 0001fbdf11e1187e1f8e5e1771a63a0a05f3e05c..973b6033efb69d4228015c2e30ed1633131bdbf6 100644
--- a/src/main.c
+++ b/src/main.c
@@ -6,36 +6,37 @@
// my everlasting commitment to ridding code of magic numbers :)
#define MEMORY_SIZE 65535
#define BUFFER_SIZE 32767
+#define MAX_TOKEN_LENGTH 32767
int memory[MEMORY_SIZE];
-// no idea what these are yet, when i figure that out i'll rename them something better
-int sp, fp = MEMORY_SIZE;
-
-int img, but, lab, tab = 0; // renaming these too
+int sp, fp = MEMORY_SIZE; /* no idea what these are yet, when i figure that out i'll rename them something better */
+int img, but, lab, tab = 0; /* renaming these too */
int main(int argc, char* argv[]) {
if (argc < 2) {
printf("Error: Did not specify file.");
- return 1;
+ return EXIT_FAILURE;
} else if (argc > 2) {
printf("Error: Too many arguments!");
- return 1;
+ return EXIT_FAILURE;
}
FILE *executable = fopen(argv[1], "r");
if (executable == NULL) {
printf("Error: Could not locate %s", argv[1]);
- return 1;
+ return EXIT_FAILURE;
}
char buffer[BUFFER_SIZE];
while(fgets(buffer, BUFFER_SIZE-1, executable) != NULL) {
char instruction_set[BUFFER_SIZE];
+ jsmn_parser parser;
+ jsmntok_t tokens[MAX_TOKEN_LENGTH];
// cleanup for easier jsmm parsing
@@ -53,9 +54,21 @@ int main(int argc, char* argv[]) {
instruction_set[i - header - 1] = 0;
}
}
-
+
+
+ jsmn_init(&parser);
+ int result = jsmn_parse(&parser, instruction_set, strlen(instruction_set), tokens, sizeof(tokens) / sizeof(tokens[0]));
+
+ // debug line
printf("%s\n", instruction_set);
+
+ if (result < 1 || tokens[0].type != JSMN_ARRAY) {
+ printf("Error: Bad JSON, is root token not an array?");
+ return EXIT_FAILURE;
+ }
+
+
}
- return 0;
+ return EXIT_SUCCESS;
}