![]() |
The Machine Perception Toolbox |
|
#include "lists.h"
#include "frames.h"
Include dependency graph for class.h:
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Functions | |
char * | make_class_module (LIST *xname, LIST *bases, FRAME *frame) |
|
Definition at line 92 of file class.c. References bindmodule(), check_defined(), class_module_name(), classes, enter_module(), exit_module(), FRAME, hashcheck, HASHDATA, hashenter, hashinit(), import_base_rules(), LIST, frame::module, _list::next, _list::string, VAR_SET, and var_set(). Referenced by compile_class(). 00093 { 00094 char* name = class_module_name(xname->string); 00095 char** pp = &xname->string; 00096 module_t* class_module = 0; 00097 module_t* outer_module = frame->module; 00098 00099 if (!classes) 00100 classes = hashinit(sizeof(char*), "classes"); 00101 00102 00103 if (hashcheck(classes, (HASHDATA**)&pp)) { 00104 printf("Class %s already defined\n", xname->string); 00105 abort(); 00106 } else { 00107 hashenter(classes, (HASHDATA**)&pp); 00108 } 00109 check_defined(bases); 00110 00111 class_module = bindmodule(name); 00112 00113 exit_module( outer_module ); 00114 enter_module( class_module ); 00115 00116 var_set("__name__", xname, VAR_SET); 00117 var_set("__bases__", bases, VAR_SET); 00118 00119 exit_module( class_module ); 00120 enter_module( outer_module ); 00121 00122 for(; bases; bases = bases->next) 00123 import_base_rules(class_module, bases->string); 00124 00125 00126 00127 return name; 00128 }
|
Here is the call graph for this function: