mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2025-06-27 23:45:17 -04:00
53 lines
1.3 KiB
C
53 lines
1.3 KiB
C
|
/*
|
||
|
* Copyright 2001-2004 David Abrahams.
|
||
|
* Distributed under the Boost Software License, Version 1.0.
|
||
|
* (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
||
|
*/
|
||
|
#ifndef MODULES_DWA10182001_H
|
||
|
#define MODULES_DWA10182001_H
|
||
|
|
||
|
#include "lists.h"
|
||
|
#include "object.h"
|
||
|
|
||
|
typedef struct module_t module_t ;
|
||
|
struct module_t
|
||
|
{
|
||
|
OBJECT * name;
|
||
|
struct hash * rules;
|
||
|
struct hash * variables;
|
||
|
struct hash * variable_indices;
|
||
|
int num_fixed_variables;
|
||
|
LIST * * fixed_variables;
|
||
|
struct hash * imported_modules;
|
||
|
module_t * class_module;
|
||
|
struct hash * native_rules;
|
||
|
int user_module;
|
||
|
};
|
||
|
|
||
|
module_t * bindmodule( OBJECT * name );
|
||
|
module_t * root_module();
|
||
|
void delete_module( module_t * );
|
||
|
|
||
|
void import_module( LIST * module_names, module_t * target_module );
|
||
|
LIST * imported_modules( module_t * );
|
||
|
|
||
|
struct hash * demand_rules( module_t * );
|
||
|
|
||
|
void module_bind_variables( module_t * );
|
||
|
|
||
|
/*
|
||
|
* After calling module_add_fixed_var, module_set_fixed_variables must be called
|
||
|
* before accessing any variables in the module.
|
||
|
*/
|
||
|
int module_add_fixed_var( module_t *, OBJECT * name, int * n );
|
||
|
void module_set_fixed_variables( module_t *, int n );
|
||
|
|
||
|
/*
|
||
|
* Returns the index of the variable or -1 if none exists.
|
||
|
*/
|
||
|
int module_get_fixed_var( module_t *, OBJECT * name );
|
||
|
|
||
|
void modules_done();
|
||
|
|
||
|
#endif
|