/* * Laboration 2 i C och UNIX * * Komplett shell * ========================================= * * Christian Ohlsson, di7chro@cse.kau.se * Stefan Sonesson, di7stes@cse.kau.se * * Karlstads Universitet, 991209 * * *=========================================== */ #include "tree.h" treePtr tree=NULL; extern char *symTable[]; /*Skapar en nod med ett visst metatecken*/ treePtr makeNode(int op,treePtr left,treePtr right) { treePtr tmp = malloc(sizeof(treeNode)); tmp->nodeType = op; tmp->index = -1; tmp->right = right; tmp->left = left; return tmp; } /*Skapar ett löv som innehåller ett kommando*/ treePtr makeLeaf(int index) { treePtr tmp = malloc(sizeof(treeNode)); tmp->nodeType = 0; tmp->index = index; tmp->right = tmp->left = NULL; return tmp; } /*Skriver ut trädet på skärmen*/ void printTree(treePtr tPtr){ char str[10]; if(tPtr == NULL) ; else{ if(!tPtr->nodeType) /*Om det är ett löv...(kommando eller arg)*/ sprintf(str,"%s---%d",symTable[tPtr->index],tPtr->nodeType); else /*Vi har ett metatecken!*/ sprintf(str,"%d",tPtr->nodeType); puts(str); printTree(tPtr->left); printTree(tPtr->right); } }