示例#1
0
// -------------------------------------------------------------------------------
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;
}
示例#2
0
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;
}
示例#3
0
文件: tester.c 项目: danl3v/othello
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;
}
示例#4
0
文件: tester.c 项目: danl3v/othello
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;
}