/** * Holds the AST model */ #ifndef AST_H #define AST_H #include #include typedef struct { /// @brief The name of the module being imported. char* module_name; /// @brief Whether the import is public or not. bool is_public; } ImportDeclaration; /** * The top-level model. * Every file matches an entire Module. */ typedef struct { /// @brief The name of the module. char* name; /// @brief The list of imports in the module. ImportDeclaration* imports; /// @brief The number of imports in the module. size_t import_count; } Module; #endif