Rename AST structures to Tree and relocate freeing logic
This commit is contained in:
+13
-13
@@ -2,12 +2,12 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
bool parse_import_declaration(Parser* p, Module* module, bool is_public) {
|
||||
bool parse_import_declaration(Parser* p, ModuleTree* module, bool is_public) {
|
||||
module->import_count++;
|
||||
module->imports = realloc(module->imports, sizeof(ImportDeclaration) * module->import_count);
|
||||
module->imports = realloc(module->imports, sizeof(ImportTree) * module->import_count);
|
||||
|
||||
ImportDeclaration* import = &module->imports[module->import_count - 1];
|
||||
memset(import, 0, sizeof(ImportDeclaration));
|
||||
ImportTree* import = &module->imports[module->import_count - 1];
|
||||
memset(import, 0, sizeof(ImportTree));
|
||||
import->is_public = is_public;
|
||||
|
||||
if (!parser_require(p, TOKEN_IDENTIFIER, "expected module identifier")) {
|
||||
@@ -23,13 +23,13 @@ bool parse_import_declaration(Parser* p, Module* module, bool is_public) {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool parse_alias_declaration(Parser* p, Module* module, bool is_public) {
|
||||
bool parse_alias_declaration(Parser* p, ModuleTree* module, bool is_public) {
|
||||
(void)is_public;
|
||||
module->alias_count++;
|
||||
module->aliases = realloc(module->aliases, sizeof(AliasDeclaration) * module->alias_count);
|
||||
module->aliases = realloc(module->aliases, sizeof(AliasTree) * module->alias_count);
|
||||
|
||||
AliasDeclaration* alias = &module->aliases[module->alias_count - 1];
|
||||
memset(alias, 0, sizeof(AliasDeclaration));
|
||||
AliasTree* alias = &module->aliases[module->alias_count - 1];
|
||||
memset(alias, 0, sizeof(AliasTree));
|
||||
|
||||
if (!parser_require(p, TOKEN_IDENTIFIER, "expected alias identifier")) {
|
||||
return false;
|
||||
@@ -51,12 +51,12 @@ bool parse_alias_declaration(Parser* p, Module* module, bool is_public) {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool parse_variable_declaration(Parser* p, Module* module, bool is_public, bool is_static, bool is_const) {
|
||||
bool parse_variable_declaration(Parser* p, ModuleTree* module, bool is_public, bool is_static, bool is_const) {
|
||||
module->variable_count++;
|
||||
module->variables = realloc(module->variables, sizeof(VariableDeclaration) * module->variable_count);
|
||||
module->variables = realloc(module->variables, sizeof(VariableTree) * module->variable_count);
|
||||
|
||||
VariableDeclaration* var = &module->variables[module->variable_count - 1];
|
||||
memset(var, 0, sizeof(VariableDeclaration));
|
||||
VariableTree* var = &module->variables[module->variable_count - 1];
|
||||
memset(var, 0, sizeof(VariableTree));
|
||||
var->is_public = is_public;
|
||||
var->is_static = is_static;
|
||||
var->is_const = is_const;
|
||||
@@ -73,7 +73,7 @@ bool parse_variable_declaration(Parser* p, Module* module, bool is_public, bool
|
||||
var->name = parser_to_text(p);
|
||||
|
||||
if (parser_accept(p, TOKEN_ASSIGN)) {
|
||||
var->initializer = malloc(sizeof(Expression));
|
||||
var->initializer = malloc(sizeof(ExpressionTree));
|
||||
if (!parse_expression(p, var->initializer)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user