summaryrefslogtreecommitdiff
path: root/xcc.c
diff options
context:
space:
mode:
Diffstat (limited to 'xcc.c')
-rw-r--r--xcc.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/xcc.c b/xcc.c
new file mode 100644
index 0000000..6518b4a
--- /dev/null
+++ b/xcc.c
@@ -0,0 +1,26 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include "lexer.h"
+#include "parser.h"
+
+int main(void)
+{
+ FILE *fp = fopen("examples/hello_world.ll", "r");
+ fseek(fp, 0, SEEK_END);
+ size_t length = ftell(fp);
+ fseek(fp, 0, SEEK_SET);
+
+ char *src = malloc(length + 1);
+ fread(src, 1, length, fp);
+ src[length] = '\0';
+ token *head = lexer_parse(src);
+
+ if (!head) {
+ printf("Parsing error!\n");
+ exit(1);
+ }
+
+ ir_parse(head);
+
+ return 0;
+}