109 lines
2.5 KiB
C
109 lines
2.5 KiB
C
/*********************************************************************/
|
|
/* pC++/Sage++ Copyright (C) 1993 */
|
|
/* Indiana University University of Oregon University of Rennes */
|
|
/*********************************************************************/
|
|
|
|
#include <stdio.h>
|
|
#include "defs.h"
|
|
#include "bif.h"
|
|
#include "ll.h"
|
|
#include "symb.h"
|
|
#include "db.h"
|
|
|
|
extern PTR_TYPE global_default;
|
|
extern PTR_LLND make_llnd();
|
|
extern PTR_FILE fi;
|
|
|
|
void errstr();
|
|
|
|
/*
|
|
* set_ll_list attaches a new node to a given old_list and
|
|
* makes sure that the old_list is of the same type as ll_type
|
|
*/
|
|
PTR_LLND
|
|
set_ll_list(old_list, node, ll_type)
|
|
PTR_LLND old_list, node;
|
|
int ll_type;
|
|
{
|
|
register PTR_LLND temp, new;
|
|
|
|
if (!node) { /* the first item in the list */
|
|
new = make_llnd(fi,ll_type, old_list, LLNULL, SMNULL);
|
|
new->type = global_default;
|
|
return (new);
|
|
}
|
|
if (old_list->variant != ll_type) { /* first two items */
|
|
new = make_llnd(fi,ll_type, old_list,
|
|
make_llnd(fi,ll_type, node, LLNULL, SMNULL),
|
|
SMNULL);
|
|
new->type = global_default;
|
|
new->entry.Template.ll_ptr2->type = global_default;
|
|
return (new);
|
|
}
|
|
new = make_llnd(fi,ll_type, node, LLNULL, SMNULL);
|
|
for (temp = old_list;
|
|
temp->entry.Template.ll_ptr2;
|
|
temp = temp->entry.Template.ll_ptr2)
|
|
;
|
|
temp->entry.Template.ll_ptr2 = new;
|
|
new->type = global_default;
|
|
return (old_list);
|
|
}
|
|
|
|
|
|
/*
|
|
* set_id_list takes an old id list and runs down the list attaching new
|
|
* id at the end
|
|
*/
|
|
PTR_SYMB
|
|
set_id_list(old_list, id)
|
|
PTR_SYMB old_list, id;
|
|
{
|
|
register PTR_SYMB temp;
|
|
|
|
if (!id)
|
|
return (old_list);
|
|
if(id->id_list) {
|
|
errstr("'%s' is a duplicate dummy argument",id->ident,121); /*podd 9.03.00*/
|
|
return(old_list);
|
|
}
|
|
for (temp = old_list; temp->id_list; temp = temp->id_list)
|
|
;
|
|
|
|
temp->id_list = id;
|
|
return (old_list);
|
|
}
|
|
|
|
PTR_LLND
|
|
add_to_lowLevelList(ele, oldList)
|
|
PTR_LLND ele, oldList;
|
|
{
|
|
register PTR_LLND temp;
|
|
|
|
if (!ele)
|
|
return (oldList);
|
|
|
|
for (temp = oldList; temp->entry.list.next; temp = temp->entry.list.next)
|
|
;
|
|
|
|
temp->entry.list.next = ele;
|
|
return (oldList);
|
|
}
|
|
|
|
PTR_LLND
|
|
add_to_lowList(ele, oldList)
|
|
PTR_LLND ele, oldList;
|
|
{
|
|
register PTR_LLND temp;
|
|
|
|
if (!ele)
|
|
return (oldList);
|
|
|
|
for (temp = oldList; temp->entry.Template.ll_ptr2; temp = temp->entry.Template.ll_ptr2)
|
|
;
|
|
|
|
temp->entry.Template.ll_ptr2 = ele;
|
|
|
|
return (oldList);
|
|
}
|