Ejemplo n.º 1
0
void genCode()
{
	printProc("Generating code... ");
	printStatus("DONE",10);
	printProc("Writing on file... ");
	printStatus("DONE",10);
	writeHeader();
	int i, k;
	for(i=1; i<=charCount; i++)
	{
		k=mark[charSet[i]];
		while(k!=parent[k])
		{
			k=parent[k];
			if(k<0)
				k = -k, push(0);
			else
				push(1);
		}
		while((k=pop())> -1)
			writeOnFile(k);
	}
	if(dc<7)
	{
		for(i=dc+1; i<8; i++)
			s[i] = '0';
		toDec();
		fputc(7-dc+'0', fp);
	}
	else
	{
		fputc(0+'0', fp);
	}
	closeFile2Write();
}
Ejemplo n.º 2
0
void initAll()
{
	printProc("Initializing all... ");
	for(int i=1; i<=N; i++)
		mark[i] = 0;
	top = 0;
}
void Interpreter::printHelp()
{
    ProcInfo info;
    ChirpProc p;

    for (p=0; true; p++)
    {
        if (m_chirp->getProcInfo(p, &info)<0)
            break;
        emit textOut(QString::number(p) + ": " + printProc(&info));
    }
}
Ejemplo n.º 4
0
void openFile2Write(char str[])
{
	char str1[NORM];
	strcpy(str1,str);
	str1[strlen(str1)-3] = 0;
	strcat(str1,"zip");
	fp = fopen(str1, "wb");
	if(fp==NULL)
		showError(3);
	printProc("Opening file to write... ");
	printStatus("DONE",4);
}
Ejemplo n.º 5
0
void genTree()
{
	printProc("Generating huffman tree... ");
	printStatus("DONE",2);
	int min1, min2, nd = charCount;
	while(hn>1)
	{
		min1 = extractRoot(), min2 = extractRoot();
		freq[++nd] = freq[min1] + freq[min2];
		insert(nd), parent[min1] = -nd, parent[min2] = nd;
	}
	parent[nd] = nd;
}
void Interpreter::handleHelp()
{
    ChirpProc proc;
    ProcInfo info;

    if (m_argv.size()==1)
        printHelp();
    else if (m_argv.size()>1)
    {
        if ((proc=m_chirp->getProc(m_argv[1].toLocal8Bit()))>=0 && m_chirp->getProcInfo(proc, &info)>=0)
            emit textOut(printProc(&info, 1));
        else
            emit error("can't find procedure.\n");
    }
}
Ejemplo n.º 7
0
int main(int argc, char *argv[])
{
	clrscr();
	showCredits();
	checkUsages(argc);
	readFromFile(argv[1]);
	genTree();
	openFile2Write(argv[1]);
	genCode();
	closeFile2Write();
	printProc("Closing destination file... ");
	printStatus("DONE",1);
	printf("\n");
	return 0;
}
Ejemplo n.º 8
0
void readFromFile(char *fileName)
{
	char c; charCount = 0;
	printProc("Reading from file... ");
	printStatus("DONE",8);
	FILE *fp = fopen(fileName, "rb");
	if(fp==NULL)
		showError(2);
	while((c=fgetc(fp))!=EOF)
		if(mark[c]== 0)
			mark[c] = ++charCount, freq[charCount] = 1, charSet[charCount] = c;
		else
			freq[mark[c]]++;
	initHeap(charCount);
	fclose(fp);
}
Ejemplo n.º 9
0
void debugStatement() {
    int flag = 1;
    char c;
    
    while (flag) {
	printf("Debug Point (l, n, p, num): ");
	c = getc();
	printf("\n");
	switch(c) {
	    case '0':
	    case '1':
	    case '2':
	    case '3':
	    case '4':
	    case '5':
	    case '6':
	    case '7':
	    case '8':
	    case '9':
		printProc(&proc[c-'0']);
		break;
	    case 'n':
		printf("nproc: %d\n", nproc);
		break;
	    case 'p':
		kps();
		break;
	    case 'l':
		printLists();
		break;
	    default:
		flag = 0;
		break;
	}
    }
}