From e5e7e6277cc757475ad192f70a4b200778e1d8ee Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Sat, 10 Jul 2021 14:03:22 +0200 Subject: treewide: move header files into dedicated directory Signed-off-by: Jo-Philipp Wich --- compiler.h | 117 ------------------------------------------------------------- 1 file changed, 117 deletions(-) delete mode 100644 compiler.h (limited to 'compiler.h') diff --git a/compiler.h b/compiler.h deleted file mode 100644 index 19fcf37..0000000 --- a/compiler.h +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (C) 2020-2021 Jo-Philipp Wich - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef __COMPILER_H_ -#define __COMPILER_H_ - -#include -#include -#include - -#ifdef JSONC - #include -#else - #include -#endif - -#include "source.h" -#include "lexer.h" -#include "types.h" -#include "util.h" - -typedef enum { - P_NONE, - - P_COMMA, /* , */ - - P_ASSIGN, /* = += -= *= /= %= <<= >>= &= ^= |= */ - - P_TERNARY, /* ?: */ - - P_OR, /* || */ - P_AND, /* && */ - P_BOR, /* | */ - P_BXOR, /* ^ */ - P_BAND, /* & */ - - P_EQUAL, /* === !== == != */ - P_COMPARE, /* < <= > >= in */ - - P_SHIFT, /* << >> */ - - P_ADD, /* + - */ - P_MUL, /* * / % */ - - P_UNARY, /* ! ~ +… -… ++… --… */ - - P_INC, /* …++ …-- */ - - P_CALL, /* ….…, …[…], …(…) */ - - P_PRIMARY /* (…) */ -} uc_precedence_t; - -typedef struct uc_patchlist { - struct uc_patchlist *parent; - size_t depth, count, *entries; -} uc_patchlist_t; - -typedef struct { - uc_value_t *name; - ssize_t depth; - size_t from; - bool captured; - bool constant; -} uc_local_t; - -typedef struct { - uc_value_t *name; - size_t index; - bool local; - bool constant; -} uc_upval_t; - -uc_declare_vector(uc_locals_t, uc_local_t); -uc_declare_vector(uc_upvals_t, uc_upval_t); -uc_declare_vector(uc_jmplist_t, size_t); - -typedef struct { - uc_parse_config_t *config; - uc_lexer_t lex; - uc_token_t prev, curr; - bool synchronizing; - uc_stringbuf_t *error; -} uc_parser_t; - -typedef struct uc_compiler { - struct uc_compiler *parent; - uc_locals_t locals; - uc_upvals_t upvals; - uc_patchlist_t *patchlist; - uc_value_t *function; - uc_parser_t *parser; - size_t scope_depth, current_srcpos, last_insn; -} uc_compiler_t; - -typedef struct { - void (*prefix)(uc_compiler_t *, bool); - void (*infix)(uc_compiler_t *, bool); - uc_precedence_t precedence; -} uc_parse_rule_t; - -uc_function_t *uc_compile(uc_parse_config_t *config, uc_source_t *source, char **errp); - -#endif /* __COMPILER_H_ */ -- cgit v1.2.3