# HG changeset patch # User jwe # Date 764501158 0 # Node ID ee3da0884aaabd66f9950dc9ce871ec935665e8a # Parent 27ef550be39e0fd9a9c3394b11882703c05d1146 [project @ 1994-03-24 09:23:18 by jwe] diff --git a/src/symtab.cc b/src/symtab.cc --- a/src/symtab.cc +++ b/src/symtab.cc @@ -627,6 +627,9 @@ { context.push (definition); definition = (symbol_def *) NULL; + + global_link_context.push ((unsigned) linked_to_global); + linked_to_global = 0; } void @@ -647,6 +650,7 @@ } definition = context.pop (); + linked_to_global = global_link_context.pop (); } int diff --git a/src/symtab.h b/src/symtab.h --- a/src/symtab.h +++ b/src/symtab.h @@ -192,7 +192,11 @@ sv_Function sv_fcn; symbol_def *definition; symbol_record *next_elem; + +// This should maybe be one stack with a structure containing all the +// items we need to save for recursive calls... SLStack context; + SLStack global_link_context; void init_state (void); diff --git a/src/tree.h.old b/src/tree.h.old --- a/src/tree.h.old +++ b/src/tree.h.old @@ -563,6 +563,10 @@ tree_identifier *define (tree_constant *t); + void define_from_arg_vector (const tree_constant *args, int nargin); + + tree_constant *convert_to_const_vector (void); + tree_parameter_list *next_elem (void); tree_constant eval (int print);