82 new->open_modules=
NULL;
83 new->inherited_modules=
NULL;
102 current_module=module;
124 if(s!=str && *s==
'#' ) {
150 if(s!=str && *s==
'#' ) {
201 if(module!=no_module) {
294 if(key->
public || module==current_module)
297 Errorline(
"qualified call to private symbol '%s'\n",
303 if(module!=current_module) {
304 Errorline(
"qualified call to undefined symbol '%s#%s'\n",
334 warningline(
"benign module name clash: %s and %s\n",
339 Errorline(
"serious module name clash: \"%s\" and \"%s\"\n",
347 if(!openkey || !openkey->
public)
356 if(openkey && openkey->
public) {
360 warningline(
"implicit reference to non-public symbol: %s\n",
502 Errorline(
"argument missing in '%P'\n",call);
529 Errorline(
"argument missing in '%P'\n",call);
588 for (i=0;i<open_module->symbol_table->size;i++)
589 if ((key1=open_module->symbol_table->data[i]) && key1->
public) {
592 Errorline(
"symbol clash '%s' and '%s'\n",
625 warningline(
"local definition of '%s' overrides '%s'\n",
643 #define MAKE_PUBLIC 1
644 #define MAKE_PRIVATE 2
645 #define MAKE_FEATURE_PRIVATE 3
699 Errorline(
"argument missing in '%P'\n",call);
725 Errorline(
"argument missing in '%P'\n",call);
758 Errorline(
"argument should be boolean in '%P'\n",call);
793 Errorline(
"argument should be boolean in '%P'\n",call);
828 Errorline(
"argument should be boolean in '%P'\n",call);
915 if(new->keyword->private_feature)
916 newlabel=
new->keyword->combined_name;
918 newlabel=
new->keyword->symbol;
920 if(!strcmp(old_attr->
key,oldlabel))
953 if(arg1 && arg2 && arg3) {
961 Errorline(
"argument missing in '%P'\n",call);
1063 traceline(
"match persistent %P with %P\n",u,v);
1072 Errorline(
"cannot unify persistent values\n");
1083 if (compare==1 || compare==3) {
1115 if(success && u->
resid)
1197 warningline(
"alias: '%s' has now been overwritten by '%s'\n",
1205 Errorline(
"module violation: cannot alias '%s' from module \"%s\"\n",
1211 Errorline(
"argument(s) missing in '%P'\n",g);
1241 Errorline(
"undefined module \"%s\"\n",s);
1287 warningline(
"feature '%s' is now private, but was also declared public\n",
1314 Errorline(
"argument missing in '%P'\n",call);
1343 if(
explicit!=module)
void init_modules()
init_modules
ptr_keyword hash_lookup(ptr_hash_table table, char *symbol)
HASH_LOOKUP.
#define undef_it
was enum (def_type) in extern.h now there is typedef ptr_definition
void get_two_args(ptr_node t, ptr_psi_term *a, ptr_psi_term *b)
get_two_args
void push_ptr_value(type_ptr t, GENERIC *p)
push_ptr_value
ptr_psi_term translate(ptr_psi_term a, long **infoptr)
translate
#define FEATCMP
indicates to use featcmp for comparison (in trees.c)
void clear_copy()
clear_copy
GENERIC heap_pointer
used to allocate from heap - size allocated subtracted - adj for alignment
struct wl_definition * def_type
ptr_psi_term stack_cons(ptr_psi_term head, ptr_psi_term tail)
stack_cons
ptr_definition lf_false
symbol in bi module
void traverse_tree(ptr_node n, int flag)
traverse_tree
long glb(ptr_definition t1, ptr_definition t2, ptr_definition *t3, ptr_int_list *c3)
glb
long c_open_module()
c_open_module
void push_goal(goals t, ptr_psi_term a, ptr_psi_term b, GENERIC c)
push_goal
#define def_ptr
values of type_ptr
ptr_definition new_definition(ptr_keyword key)
new_definition
int global_unify_attr(ptr_node, ptr_node)
global_unify_attr
ptr_definition first_definition
All definition are stores in a linked list starting at first_definition.
long legal_in_name(long c)
legal_in_name
#define NOT_CODED
For LIFE boolean calculation built-in.
void replace_attr(ptr_node, ptr_psi_term, ptr_definition, ptr_definition)
replace_attr
void push_psi_ptr_value(ptr_psi_term q, GENERIC *p)
push_psi_ptr_value
ptr_definition definition
long c_private_feature()
c_private_feature
long trace_input
whether to echo characters read
void open_module_tree(ptr_node n, int *onefailed)
open_module_tree
int global_unify(ptr_psi_term u, ptr_psi_term v)
global_unify
ptr_hash_table symbol_table
ptr_hash_table hash_create(int size)
HASH_CREATE.
struct wl_psi_term * ptr_psi_term
quotedStackCopy
void insert_translation(ptr_psi_term a, ptr_psi_term b, long info)
insert_translation
ptr_module current_module
#define REAL
Which C type to use to represent reals and integers in Wild_Life.
long overlap_type(ptr_definition t1, ptr_definition t2)
overlap_type
long c_trace_input()
c_trace_input
ptr_node heap_insert(long comp, char *keystr, ptr_node *tree, GENERIC info)
heap_insert
void open_module_one(ptr_psi_term t, int *onefailed)
open_module_one
void release_resid(ptr_psi_term t)
release_resid
void traceline(char *format,...)
traceline
ptr_definition real
symbol in bi module
char * strip_module_name(char *str)
strip_module_name
struct wl_module * ptr_module
char * print_symbol(ptr_keyword k)
print_symbol
void Errorline(char *format,...)
Errorline.
unsigned long * GENERIC
unsigned long *GENERIC
ptr_node stack_insert(long comp, char *keystr, ptr_node *tree, GENERIC info)
stack_insert
ptr_definition update_symbol(ptr_module module, char *symbol)
update_symbol
char * heap_copy_string(char *s)
heap_copy_string
long all_public_symbols()
all_public_symbols
void hash_insert(ptr_hash_table table, char *symbol, ptr_keyword keyword)
HASH_INSERT.
#define TRUE
Standard boolean.
#define STRCMP
indicates to use strcmp for comparison (c function)
void replace(ptr_definition old, ptr_definition new, ptr_psi_term term)
replace
ptr_psi_term global_value
#define FALSE
Standard boolean.
int make_feature_private(ptr_psi_term term)
make_feature_private
void rec_replace(ptr_definition, ptr_definition, ptr_psi_term)
rec_replace
ptr_psi_term stack_psi_term(long stat)
stack_psi_term
void pretty_quote_symbol(ptr_keyword k)
pretty_quote_symbol
ptr_psi_term stack_nil()
stack_nil
ptr_module create_module(char *module)
ptr_module create_module(char *module)
#define unify
was enum (goal) – but must be long for error.c - now typedef
ptr_node find(long comp, char *keystr, ptr_node tree)
find
ptr_int_list open_modules
int dummy_printf(char *f, char *s, char *t)
dummy_printf
long featcmp(char *str1, char *str2)
featcmp
void pretty_symbol(ptr_keyword k)
pretty_symbol
char * string_val(ptr_psi_term term)
string_val
ptr_psi_term error_psi_term
symbol in bi module
void prettyf(char *s)
prettyf
long make_public(ptr_psi_term term, long bool)
make_public
long c_display_persistent()
c_display_persistent
long display_persistent
if true print persistent values preceded by "$"
ptr_definition update_feature(ptr_module module, char *feature)
update_feature
long c_module_access()
c_module_access
#define MAKE_FEATURE_PRIVATE
ptr_module find_module(char *module)
find_module
long c_current_module()
c_current_module
ptr_module extract_module_from_name(char *str)
extract_module_from_name
void warningline(char *format,...)
warningline
ptr_definition lf_true
symbol in bi module
int get_module(ptr_psi_term psi, ptr_module *module)
get_module
void prettyf_quote(char *s)
prettyf_quote
ptr_triple_list properties
long c_replace()
c_replace
char * make_module_token(ptr_module module, char *str)
make_module_token
ptr_module set_current_module(ptr_module module)
set_current_module
long c_private()
c_private
long c_set_module()
c_set_module
ptr_definition quoted_string
symbol in bi module
ptr_operator_data op_data
long c_display_modules()
c_display_modules
#define int_ptr
values of type_ptr