62 lines
2.5 KiB
C
62 lines
2.5 KiB
C
#ifndef INTERNALS_GEN_H
|
|
#define INTERNALS_GEN_H
|
|
|
|
#include <common/fzl_extern.h>
|
|
#include <common/fzl_opcodes.h>
|
|
#include <common/fzl_types.h>
|
|
#include <compiler/fzl_gen.h>
|
|
#include <compiler/fzl_parser.h>
|
|
#include <compiler/fzl_token.h>
|
|
#include <compiler/utils/fzl_const_pool.h>
|
|
#include <compiler/utils/fzl_symtable.h>
|
|
#include <stdbool.h>
|
|
#include <stddef.h>
|
|
#include <stdio.h>
|
|
|
|
extern char *null_name;
|
|
extern fzl_extern_type_t type_buf;
|
|
|
|
bool gen_resolve_name(fzl_gen_t *gen, char *name, fzl_sym_t *sym);
|
|
bool gen_resolve_type(fzl_gen_t *gen, fzl_token_t *tok, fzl_type_t *t, char *c);
|
|
ssize_t gen_resolve_extern_type(fzl_gen_t *gen, char *name);
|
|
bool gen_is_types_compatible(fzl_type_t t1, fzl_type_t t2, char *c1, char *c2);
|
|
size_t gen_add_const(fzl_gen_t *gen, fzl_const_t c);
|
|
void gen_op(fzl_gen_t *gen, fzl_opcode_t opcode);
|
|
void gen_word(fzl_gen_t *gen, size_t word);
|
|
|
|
fzl_gen_ctx_t *gen_ctx(fzl_gen_t *gen, fzl_gen_ctx_type_t type,
|
|
fzl_node_t *node);
|
|
fzl_gen_ctx_t *gen_fin_ctx(fzl_gen_t *gen);
|
|
|
|
bool gen_common(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_extern(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_externfn(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_reference(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_struct(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_alias(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_handle(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_typedef(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_fmtstr(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_break(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_loop(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_class(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_construct(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_field(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_fn(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_return(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_not(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_compare(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_logical(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_unary_logical(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_condition(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_unary_math(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_declaration(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_identifier(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_block(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_call(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_literal(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_math(fzl_gen_t *gen, fzl_node_t *node);
|
|
bool gen_assign(fzl_gen_t *gen, fzl_node_t *node);
|
|
|
|
#endif // FZL_INTERNALS_GEN_H
|