static void add_all_params(VarList params, Function* fun) { if(params == llist_empty) return; add_all_params(llist_tail(params), fun); function_add_parameter(fun, llist_head(params)); }
LumieraConfigitem lumiera_config_lookup_item_tail_find (LumieraConfigLookup self, const char* key) { TRACE (configlookup_dbg, "%s", key); LumieraConfigLookupentry entry = lumiera_config_lookup_find (self, key); if (entry && !llist_is_empty (&entry->configitems)) return LLIST_TO_STRUCTP (llist_tail (&entry->configitems), lumiera_configitem, lookup); return NULL; }
Statement* push_funcall(const char* funname, ArgArray args) { Function* curf = cur_func(); Statement* statm = new_statement(funname, args); // set all labels and pop while(curlabels != llist_empty) { llist_head(curlabels)->statm = statm; curlabels = llist_tail(curlabels); } // register array_push(curf->statms, Statement*, statm); return statm; }
void pop_function() { funstack = llist_tail(funstack); curlabels = llist_empty; }