mighty

The mighty programming language, compiler and tools (WIP)
Log | Files | Refs

main.c (706B)



#include <stdio.h>
#include <stdbool.h>
#include "utils.h"
#include "types.h"
#include "lexer.h"
#include "parser.h"

int
main(int argc, char **argv) {
    const char *filename;
    file_t file;
    struct lexer lexer;
    struct parser parser;
    if (argc < 2) {
        const char *cmp = argv[0];
        printf("usage: %s <filename.mty>\n", cmp);
        return 0;
    }

    filename = argv[1];
    file = read_file(filename);

    printf("%s\n", file.contents);

    lexer = (struct lexer){
        .file = filename,
        .src = file.contents,
        .src_len = file.len,
    };

    lexer_lex(&lexer);

    parser = (struct parser){
        .lexer = &lexer,
    };

    parser_parse(&parser);
}