AST idea
This commit is contained in:
49
generated.c
Normal file
49
generated.c
Normal file
@@ -0,0 +1,49 @@
|
||||
function void decl_dll_list_push(Decl*l,Decl*node){
|
||||
if (l->list_decl.first==0){
|
||||
l->list_decl.first=l->list_decl.last=node;
|
||||
node->prev=0;
|
||||
node->next=0;
|
||||
}
|
||||
else {
|
||||
l->list_decl.last->next=node;
|
||||
node->prev=l->list_decl.last;
|
||||
node->next=0;
|
||||
l->list_decl.last=node;
|
||||
}
|
||||
node->parent=l;
|
||||
}
|
||||
function void decl_dll_list_push_front(Decl*l,Decl*node){
|
||||
if (l->list_decl.first==0){
|
||||
l->list_decl.first=l->list_decl.last=node;
|
||||
node->prev=0;
|
||||
node->next=0;
|
||||
}
|
||||
else {
|
||||
node->next=l->list_decl.first;
|
||||
l->list_decl.first->prev=node;
|
||||
node->prev=0;
|
||||
l->list_decl.first=node;
|
||||
}
|
||||
node->parent=l;
|
||||
}
|
||||
function void decl_list_remove(Decl*l,Decl*node){
|
||||
if (l->list_decl.first==l->list_decl.last){
|
||||
assert(node==l->list_decl.last);
|
||||
l->list_decl.first=l->list_decl.last=0;
|
||||
}
|
||||
else if (l->list_decl.last==node){
|
||||
l->list_decl.last=l->list_decl.last->prev;
|
||||
l->list_decl.last->next=0;
|
||||
}
|
||||
else if (l->list_decl.first==node){
|
||||
l->list_decl.first=l->list_decl.first->next;
|
||||
l->list_decl.first->prev=0;
|
||||
}
|
||||
else {
|
||||
node->prev->next=node->next;
|
||||
node->next->prev=node->prev;
|
||||
}
|
||||
node->parent=0;
|
||||
node->prev=0;
|
||||
node->next=0;
|
||||
}
|
||||
Reference in New Issue
Block a user