Esempio n. 1
0
InterCodes translate_Deflist(node* deflist){
	if(deflist != NULL && deflist->child != NULL){
		InterCodes codes1 = InterCodes_init();
		InterCodes codes2 = InterCodes_init();
		codes1 = translate_Def(deflist->child);
		codes2 = translate_Deflist(deflist->child->brother);
		InterCodes_link(codes1,codes2);
		return codes1;
	}
	else
		return NULL;
}
Esempio n. 2
0
intercodes translate_DefList(struct Node *node) {
	intercodes code1,code2;
	//NULL
	if (node == NULL) return NULL;
	struct Node *child = node->child;
	assert(child != NULL);
	//Def DefList
	code1 = translate_Def(child);
	code2 = translate_DefList(child->sibling);
	code1 = link(code1,code2);
	return code1;
}
Esempio n. 3
0
InterCodeNode translate_DefList(treenode *DefList_n){
	if(DefList_n == NULL){
		//deprintf("DefList is NULL\n");
		return NULL;
	}
	if(DefList_n->child_num != 2){
		// deflist -> empty
		//deprintf("DefList is empty\n");
		return NULL;
	}
	//deflist -> def deflist
	InterCodeNode node1 = translate_Def(DefList_n->node[0]);
	InterCodeNode node2 = translate_DefList(DefList_n->node[1]);
	return produceNodeByNode(node1,node2);
}
Esempio n. 4
0
struct InterCodes* translate_DefList(struct TreeNode* DefList){
	if(DefList->children == NULL){
		struct InterCodes* code1 = (struct InterCodes*)malloc(sizeof(struct InterCodes));
		code1->code.kind = NONE_;

		return code1;
	}
	else{
		struct InterCodes* code1 = translate_Def(DefList->children->neighbours);
		struct InterCodes* code2 = translate_DefList(DefList->children);

		struct InterCodes* p = code1;
		while(p->next != NULL)
			p = p->next;
		p->next = code2;
		code2->prev = p;

		return code1;
	}
}