// ------------------------------------------------------------------------------- bool HTMLWriter::writeCollectionToHTMLFile( CInformationCollection& collection, const QString& dirPath ) // ------------------------------------------------------------------------------- { QDir dir = QDir( dirPath ); bool bSuccess = createSubDir( dir ); if ( !bSuccess ) return FALSE; bSuccess = createImages( dir ); if ( !bSuccess ) return FALSE; static_List.clear(); // TODO: Check if files could be opened, also. If not -> return 'FALSE'. createTopFrame( dir ); CInformationElement* pRootElem = collection.getRootElement(); if ( NULLPTR != pRootElem ) { createIndexFile( dir, pRootElem->getDescription() ); createTreeFrame( collection, dir ); } static_List.clear(); return TRUE; }
int main(int argc, char*argv[]) { Environment *topEnv = createTopFrame(); if (argc > 1) { int i; for (i = 1; i < argc ; i++) { FILE *file = fopen( argv[i], "r" ); /* fopen returns 0, the NULL pointer, on failure */ if (!file) { printf( "Could not load: %s\n", argv[i]); return 1; } else { printf("loading... %s \n", argv[i]); loadFromFile(file, topEnv); } } } interface(topEnv); destroyTopFrame(topEnv); return -1; }
int evaluateTester(int argc, char *argv[]) { int depth = 0; int count; char *expression = malloc(256 * sizeof(char)); /* i dont think we need to malloc this */ Value **tokens = NULL; Value **leftoverTokens = NULL; Value **parseTree = NULL; Value **value = NULL; Environment *topFrame; mallocedValues = malloc(sizeof(**mallocedValues)); /* initialize the list that holds all the mallocedValues */ *mallocedValues = NULL; topFrame = createTopFrame(); if (argc > 1) { Value *load = mallocValue(); load->type = stringType; for (count = 1; count < argc; count++) { load->val.stringValue = argv[count]; evalLoad(cons(load, NULL), topFrame); } } printf("----------------------\n"); printf("INTERPRETER FOR SCHEME\n"); printf("type 'exit' to quit\n"); printf("> "); while (fgets(expression, 255, stdin)) { if (!strcmp(expression, "exit\n")) { break; } tokens = append(leftoverTokens, tokenize(expression)); /*if (tokens) { printf("\nTOKENS:\n"); printTokens(*tokens); } */ parseTree = parse(tokens, &depth); if (depth > 0) { leftoverTokens = tokens; depth = 0; } else { if (parseTree) { /*printf("\nPARSE TREE:\n"); printParseTree(*parseTree); printf("\n");*/ value = evaluate(parseTree, topFrame); printEvaluation(*value); } else { depth = 0; } leftoverTokens = NULL; printf("> "); } } free(expression); return 0; }
int main(int argc, char *argv[]) { Value *valueTree = malloc(sizeof(*valueTree)); // are you sure we need to malloc here valueTree->type = listType; int depth = 0; Value *exprValue = malloc(sizeof(*exprValue)); // are you sure we need to malloc here LinkedList *tokens = malloc(sizeof(*tokens)); // are you sure we need to malloc here //LinkedList *parseTree = NULL; LinkedList *leftoverTokens = malloc(sizeof(*leftoverTokens)); // are you sure we need to malloc here! //printf("before createTopFrame\n"); Environment *topFrame = createTopFrame(); //printf("after createTopFrame\n"); //create(tokens); //create(leftoverTokens); char *expression = malloc(256 * sizeof(char)); printf("> "); // can we put this into the fets?? while (fgets(expression, 255, stdin)) { //printf("fgets\n"); tokens = tokenize(expression); //printf("tokenized\n"); if (!tokens) { // store a tail, if last thing in token list is null printf("syntax error\n"); // get the line number somehow return SYNTAX_ERROR_UNTOKENIZABLE; } //printf("tokens:\n"); //printList(tokens); //printf("about to append\n"); //printList(leftoverTokens); tokens = append(leftoverTokens, tokens); //printf("appended tokens\n"); //printList(tokens); valueTree->val.listValue = parse(tokens, &depth); //printf("parsed\n"); //printf("THE TREE:\n"); //printParseTree(valueTree->val.listValue->head); //printf("\n"); //printf("xxxxx: %s\n", valueTree->val.listValue->head->value->val.symbolValue); if (depth < 0) { printf("syntax error: too many close parentheses\n"); return SYNTAX_ERROR_TOO_MANY_CLOSE_PARENTHESES; } else if (depth > 0) { //printf("we have leftovers\n"); //leftoverTokens = tokens; depth = 0; } else { if (valueTree) { evalAll(valueTree, topFrame); printf("evaluated\n"); } else { printf("null parse tree\n"); } //printf("\n"); create(leftoverTokens); //Deal with memory stuff. } printf("> "); // do not print this out if we have leftover tokens } free(expression); // think about destroying tokens at the end return 0; }