92 int i, j, first = 1, number = 1;
95 for (j = 0; j < level; j++)
99 fprintf(file,
"+-- osl_symbols_t\n");
101 fprintf(file,
"+-- NULL symbols\n");
103 while (symbols != NULL) {
106 for (j = 0; j < level; j++)
107 fprintf(file,
"|\t");
108 fprintf(file,
"| osl_symbol_t (node %d)\n", number);
114 for (j = 0; j <= level+1; j++)
115 fprintf(file,
"|\t");
119 for (i = 0; i <= level; i++)
120 fprintf(file,
"|\t");
122 fprintf(file,
"+-- Type: ");
123 switch (symbols->
type) {
128 default : fprintf(file,
"Unknown\n") ;
131 fprintf(file,
"+-- NULL type\n");
135 for(j = 0; j <= level + 1; j++)
136 fprintf(file,
"|\t") ;
137 fprintf(file,
"\n") ;
140 for (i = 0; i <= level; i++)
141 fprintf(file,
"|\t");
143 fprintf(file,
"+-- Origin: %d\n", symbols->
generated);
145 fprintf(file,
"+-- Undefined origin\n");
148 for(j = 0; j <= level + 1; j++)
149 fprintf(file,
"|\t") ;
150 fprintf(file,
"\n") ;
153 for (i = 0; i <= level; i++)
154 fprintf(file,
"|\t");
156 fprintf(file,
"+-- Number of Dimensions: %d\n", symbols->
nb_dims);
158 fprintf(file,
"+-- Undefined number of dimensions\n");
161 for(j = 0; j <= level + 1; j++)
162 fprintf(file,
"|\t") ;
163 fprintf(file,
"\n") ;
177 symbols = symbols->
next;
180 if (symbols != NULL) {
181 for (j = 0; j <= level; j++)
182 fprintf(file,
"|\t");
183 fprintf(file,
"V\n");
188 for (j = 0; j <= level; j++)
189 fprintf(file,
"|\t");
216 char*
string = NULL, *temp;
219 OSL_malloc(
string,
char *, high_water_mark *
sizeof(
char));
222 sprintf(buffer,
"# Number of symbols\n%d\n",
226 while (symbols != NULL) {
227 sprintf(buffer,
"# ===========================================\n");
229 sprintf(buffer,
"# %d Data for symbol number %d \n", i, i);
233 sprintf(buffer,
"# %d.1 Symbol type\nUndefined\n", i);
237 sprintf(buffer,
"# %d.1 Symbol type\n", i);
239 switch (symbols->
type) {
244 default : sprintf(buffer,
"Undefined\n") ;
250 sprintf(buffer,
"\n# %d.2 Generated Boolean\n%d\n", i, symbols->
generated);
254 sprintf(buffer,
"\n# %d.3 Number of dimensions\n%d\n", i, symbols->
nb_dims);
258 sprintf(buffer,
"\n# %d.4 Identifier\n", i);
265 sprintf(buffer,
"\n# %d.5 Datatype\n", i);
272 sprintf(buffer,
"\n# %d.6 Scope\n", i);
279 sprintf(buffer,
"\n# %d.7 Extent\n", i);
285 symbols = symbols->
next;
288 OSL_realloc(
string,
char *, (strlen(
string) + 1) *
sizeof(
char));
315 if (*input == NULL) {
332 while (nb_symbols != 0) {
336 if (strcmp(type,
"Iterator") == 0)
338 else if (strcmp(type,
"Parameter") == 0)
340 else if (strcmp(type,
"Array") == 0)
342 else if (strcmp(type,
"Function") == 0)
368 if (nb_symbols != 0) {
370 symbols = symbols->
next;
401 symbols->
scope = NULL;
403 symbols->
next = NULL;
418 while (symbols != NULL) {
443 while (*location != NULL)
444 location = &((*location)->next);
462 while ((symbols != NULL) && ((n == -1) || (i < n))) {
464 new->type = symbols->
type;
466 new->nb_dims = symbols->
nb_dims;
473 symbols = symbols->
next;
507 if (((c1 == NULL) && (c2 != NULL)) || ((c1 != NULL) && (c2 == NULL)))
537 while (symbols != NULL) {
539 symbols = symbols->
next;
osl_symbols_p osl_symbols_sread(char **input)
void *(* osl_clone_f)(void *)
void osl_symbols_idump(FILE *file, osl_symbols_p symbols, int level)
void *(* osl_sread_f)(char **)
int osl_util_read_int(FILE *file, char **str)
osl_symbols_p osl_symbols_malloc(void)
void(* osl_idump_f)(FILE *, void *, int)
struct osl_symbols * next
int osl_symbols_equal(osl_symbols_p c1, osl_symbols_p c2)
osl_interface_p osl_interface_malloc(void)
void osl_interface_free(osl_interface_p interface)
void osl_util_safe_strcat(char **dst, char *src, size_t *hwm)
char *(* osl_sprint_f)(void *)
osl_interface_p osl_symbols_interface(void)
osl_generic_p osl_generic_clone(osl_generic_p generic)
osl_symbols_p osl_symbols_clone(osl_symbols_p symbols)
#define OSL_SYMBOL_TYPE_FUNCTION
#define OSL_strdup(destination, source)
void *(* osl_malloc_f)(void)
char * osl_util_read_string(FILE *file, char **str)
#define OSL_realloc(ptr, type, size)
void osl_symbols_add(osl_symbols_p *location, osl_symbols_p symbols)
char * osl_symbols_sprint(osl_symbols_p symbols)
int osl_generic_equal(osl_generic_p x1, osl_generic_p x2)
#define OSL_SYMBOL_TYPE_ARRAY
int(* osl_equal_f)(void *, void *)
#define OSL_SYMBOL_TYPE_ITERATOR
osl_generic_p osl_generic_sread_one(char **input, osl_interface_p registry)
void osl_generic_idump(FILE *file, osl_generic_p generic, int level)
void(* osl_free_f)(void *)
int osl_symbols_get_nb_symbols(osl_symbols_p symbols)
#define OSL_SYMBOL_TYPE_PARAMETER
osl_symbols_p osl_symbols_nclone(osl_symbols_p symbols, int n)
void osl_generic_free(osl_generic_p generic)
void osl_symbols_dump(FILE *file, osl_symbols_p symbols)
osl_interface_p osl_interface_get_default_registry(void)
void osl_symbols_free(osl_symbols_p symbols)
char * osl_generic_sprint(osl_generic_p generic)
#define OSL_malloc(ptr, type, size)