New approach, new lexer

This commit is contained in:
Krzosa Karol
2022-05-06 10:13:16 +02:00
parent 557dde1936
commit e3b5e9b33a
33 changed files with 3331 additions and 784 deletions

66
old_main.c Normal file
View File

@@ -0,0 +1,66 @@
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <windows.h>
#include "lang.h"
#include "os.h"
#include "memory.h"
#include "lex.h"
#include "parser.h"
#include "expr.h"
#include "ast.h"
#include "common.c"
#include "file.c"
#include "memory.c"
#include "parser.c"
#include "os_win32.c"
#include "lex.c"
#include "expr.c"
#include "ast.c"
#include "parse_expr.c"
#include "parse_decl.c"
#include "print.c"
#include "codegen_c.c"
function void
full_test(){
Parser p = {0};
#if 1
parser_init(&p);
String string = os_read_file(lit("test.cc"));
parser_lex_stream(&p, string, lit("Parse"));
Decl *decls = parse(&p);
assert(decls->list.first);
{
gen_begin(&p.scratch, &p);
gen_forward_decl(decls);
gen_decl(decls);
//gen_code(decls);
gen_end();
}
#endif
}
int
main(){
use_write_file("output.cc");
lex_test();
parser_test();
full_test();
Arena arena = {};
Token_Array array = token_array_make(&arena);
token_array_push(&array, &(Token){});
close_all_files();
return 0;
}