summaryrefslogtreecommitdiff
path: root/src/pipac.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pipac.c')
-rw-r--r--src/pipac.c82
1 files changed, 0 insertions, 82 deletions
diff --git a/src/pipac.c b/src/pipac.c
deleted file mode 100644
index e3caec1..0000000
--- a/src/pipac.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) 2023 Johnny Richard
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <https://www.gnu.org/licenses/>.
- */
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "ast.h"
-#include "gas_assembly_generator.h"
-#include "lexer.h"
-#include "parser.h"
-#include "scope.h"
-#include "string_view.h"
-
-static void
-generate_gas_x86_64_linux(ast_node_t *func)
-{
- gas_assembly_generator_t gen;
- gas_assembly_generator_init(&gen, stdout);
- gas_assembly_generator_compile(&gen, func);
-}
-
-static void
-print_usage(void)
-{
- fputs("pipac <filename.pipa>\n", stderr);
-}
-
-static void
-parser_print_errors(parser_t *parser)
-{
- for (int i = 0; i < parser->errors_len; i++) {
- parser_error_t error = parser->errors[i];
-
- fprintf(
- stderr, "%s:%d:%d: [ERROR]: %s\n", error.token.filepath, error.token.row + 1, error.token.col + 1, error.message);
- }
-}
-
-int
-main(int argc, char **argv)
-{
- if (argc < 2) {
- print_usage();
- return EXIT_FAILURE;
- }
-
- char *filepath = argv[1];
-
- lexer_t lexer;
- lexer_init(&lexer, filepath);
-
- scope_t *scope = scope_new();
- parser_t parser;
- parser_init(&parser, &lexer, scope);
-
- ast_node_t *func = parser_parse_function_declaration(&parser);
-
- if (func == NULL) {
- parser_print_errors(&parser);
- return EXIT_FAILURE;
- }
-
- generate_gas_x86_64_linux(func);
-
- scope_destroy(scope);
- ast_node_destroy(func);
- return EXIT_SUCCESS;
-}