diff options
author | Quinn Stephens <quinn@osmora.org> | 2024-11-03 19:12:47 -0500 |
---|---|---|
committer | Quinn Stephens <quinn@osmora.org> | 2024-11-03 19:12:47 -0500 |
commit | 063c40584ae78a396b558a5e2a08e3d871450c0b (patch) | |
tree | 1acca2d57ba421530b1cfd2a23f0658e35e7ebae /include/parser/proc.h | |
parent | 71b10c1c765196a771ce05216395d6b78892a735 (diff) |
[compiler] Parse and print procedure declarations
Signed-off-by: Quinn Stephens <quinn@osmora.org>
Diffstat (limited to 'include/parser/proc.h')
-rw-r--r-- | include/parser/proc.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/include/parser/proc.h b/include/parser/proc.h new file mode 100644 index 0000000..0cc8471 --- /dev/null +++ b/include/parser/proc.h @@ -0,0 +1,34 @@ +/* + * Procedure parser. + * Copyright (c) 2023-2024, Quinn Stephens and the OSMORA team. + * Provided under the BSD 3-Clause license. + */ + +#ifndef _PARSER_PROC_H +#define _PARSER_PROC_H + +#include "list.h" +#include "hashmap.h" +#include "parser/var.h" + +struct parameter { + struct variable var; + struct list_entry list_entry; +}; + +struct procedure { + struct hashmap_entry hashmap_entry; + + char *name; + size_t name_len; + + struct hashmap vars; + struct list params; + + struct type *ret_typ; + int ret_n_ptrs; +}; + +void parse_proc(struct parser *ctx); + +#endif /* !_PARSER_PROC_H */ |