Cthulhu  0.2.10
Cthulhu compiler collection
sema.h
Go to the documentation of this file.
1 // SPDX-License-Identifier: GPL-3.0-only
2 
3 #pragma once
4 
5 #include "cthulhu/tree/query.h"
6 
8 
9 typedef enum obr_tag_t {
10 #define DECL_TAG(ID, VAL, STR) ID VAL,
11 #include "oberon/oberon.inc"
12 
15 
17 
18 tree_t *obr_get_symbol(tree_t *sema, obr_tag_t tag, const char *name);
19 
20 tree_t *obr_get_type(tree_t *sema, const char *name);
21 tree_t *obr_get_module(tree_t *sema, const char *name);
22 tree_t *obr_get_namespace(tree_t *sema, const char *name);
23 
25 
26 void obr_add_decl(tree_t *sema, obr_tag_t tag, const char *name, tree_t *decl);
27 
29 
30 // basic types as defined in [6.1 Basic Types]
31 
32 tree_t *obr_get_bool_type(void); // BOOLEAN
33 tree_t *obr_get_char_type(void); // CHAR
34 tree_t *obr_get_shortint_type(void); // SHORTINT
35 tree_t *obr_get_integer_type(void); // INTEGER
36 tree_t *obr_get_string_type(const node_t *node, size_t length); // STRING
37 tree_t *obr_get_longint_type(void); // LONGINT
38 tree_t *obr_get_real_type(void); // REAL
39 tree_t *obr_get_longreal_type(void); // LONGREAL
40 tree_t *obr_get_void_type(void); // VOID
41 
43 
44 void obr_create(language_runtime_t *runtime, tree_t *root);
tree_t * obr_get_symbol(tree_t *sema, obr_tag_t tag, const char *name)
getters
Definition: sema.c:29
tree_t * obr_get_char_type(void)
Definition: sema.c:75
tree_t * obr_get_integer_type(void)
Definition: sema.c:87
void obr_add_decl(tree_t *sema, obr_tag_t tag, const char *name, tree_t *decl)
add decls
Definition: sema.c:43
tree_t * obr_get_module(tree_t *sema, const char *name)
Definition: sema.c:22
void obr_create(language_runtime_t *runtime, tree_t *root)
runtime module
Definition: sema.c:123
tree_t * obr_get_string_type(const node_t *node, size_t length)
Definition: sema.c:93
tree_t * obr_get_void_type(void)
Definition: sema.c:117
obr_tag_t
Definition: sema.h:9
@ eObrTagTotal
Definition: sema.h:13
tree_t * obr_get_type(tree_t *sema, const char *name)
Definition: sema.c:15
tree_t * obr_get_bool_type(void)
builtin types
Definition: sema.c:69
tree_t * obr_get_longint_type(void)
Definition: sema.c:99
tree_t * obr_get_namespace(tree_t *sema, const char *name)
Definition: sema.c:36
tree_t * obr_get_real_type(void)
Definition: sema.c:105
tree_t * obr_get_shortint_type(void)
Definition: sema.c:81
tree_t * obr_get_longreal_type(void)
Definition: sema.c:111
tree_t * root
the builtins module for this language
Definition: broker.h:275
a position in a source file
Definition: node.h:23
Definition: tree.h:67