summaryrefslogtreecommitdiff
path: root/include/obe/parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/obe/parser.h')
-rw-r--r--include/obe/parser.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/include/obe/parser.h b/include/obe/parser.h
new file mode 100644
index 0000000..026af5c
--- /dev/null
+++ b/include/obe/parser.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2025 Johnny Richard <johnny@johnnyrichard.com>
+ *
+ * SPDX-License-Identifier: LGPL-3.0-or-later
+ *
+ * This file is part of obe.
+ *
+ * obe is free software: you can redistribute it and/or modify it under the
+ * terms of the GNU Lesser General Public License as published by the Free
+ * Software Foundation, either version 3 of the License, or (at your option)
+ * any later version.
+ *
+ * obe 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 Lesser General Public License for more
+ * details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with obe. If not, see <https://www.gnu.org/licenses/>.
+ */
+#ifndef OBE_PARSER_H
+#define OBE_PARSER_H
+
+#include <obe/arena.h>
+#include <obe/ir.h>
+#include <obe/lexer.h>
+
+typedef struct obe_parser
+{
+ obe_arena_t* arena;
+ obe_lexer_t* lexer;
+} obe_parser_t;
+
+void
+obe_parser_init(obe_parser_t* parser, obe_lexer_t* lexer, obe_arena_t* arena);
+
+obe_ir_translation_unit_t*
+obe_parser_parse(obe_parser_t* parser);
+
+#endif /* OBE_PARSER_H */