diff options
| author | hachem <im@hachem.wtf> | 2026-08-30 04:11:27 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2026-08-30 04:11:27 +0200 |
| commit | affa20ab497911353babc9ed6c580c8a12b2bf15 (patch) | |
| tree | 6d7c8d2164cbf1403819991baf62d8201049b778 /src/parser/ast.h | |
| parent | 2e7cab34d22a0174909030942671e95d5a3c769f (diff) | |
add: parse proc declarations
Diffstat (limited to 'src/parser/ast.h')
| -rw-r--r-- | src/parser/ast.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/parser/ast.h b/src/parser/ast.h index 30dd1e7..665bfd2 100644 --- a/src/parser/ast.h +++ b/src/parser/ast.h @@ -16,6 +16,20 @@ struct DataDecl struct Token value; }; +struct Param +{ + struct Token name; + struct Token reg; +}; + +struct ProcDecl +{ + struct Token name; + struct Param* params; + size_t param_count; + size_t param_capacity; +}; + struct Program { struct ConstDecl* consts; @@ -25,9 +39,17 @@ struct Program struct DataDecl* data_decls; size_t data_count; size_t data_capacity; + + struct ProcDecl* procs; + size_t proc_count; + size_t proc_capacity; }; struct Program create_program(void); void free_program(struct Program* program); void add_const(struct Program* program, struct ConstDecl decl); void add_data(struct Program* program, struct DataDecl decl); + +struct ProcDecl create_proc(void); +void add_param(struct ProcDecl* proc, struct Param param); +void add_proc(struct Program* program, struct ProcDecl decl); |
