Exemple #1
0
static char	*pastie(char *str)
{
  char		**tab;
  char		*ret;
  char		*tmp;
  char		*tempo;
  int		curs;

  curs = -1;
  tab = str_to_wordtab(str);
  while (tab[++curs]);
  if (curs == 3)
    tmp = tab[2];
  ret = concate(tab[0], tab[1]);
  free(tab[0]);
  free(tab[1]);
  free(tab);
  if (curs == 3)
    {
      tempo = ret;
      ret = concate(tempo, tmp);
      free(tempo);
      free(tmp);
    }
  return (ret);
}
Exemple #2
0
void
psdHandle::setLayer(QStringList& p_rStrList,PsdLayers layers, QStringList& p_rImageList, int level)
{
    if(NULL == layers)
        return;

    QString rResult;
    vector<shared_ptr<PsdLayer> >::reverse_iterator iter = layers->rbegin(), end = layers->rend();
    for (; iter != end; iter++)
    {
        shared_ptr<PsdLayer> layer = *iter;
        if (layer->getType() == PsdLayer::LayerTypeGroup)
        {
            concate(rResult,layer->getName(),level);
            //printf("%*s+ %s(%d)\n", level, "", layer->getName(),level);
            p_rStrList << rResult;
            setLayer(p_rStrList,((PsdLayerGroup *) layer.get())->getLayers(), p_rImageList,level + 2);
        }
        else
        {
            layerImage(layers,p_rImageList);
            concate(rResult,layer->getName(),level);
            p_rStrList << rResult;
            //printf("%*s- %s(%d)\n", level, "", layer->getName(),level);
        }
    }
}
Exemple #3
0
NFA *kleene(NFA *A)
{
	State *start = new State(false);
	State *end = new State(true);

	A->end->setFinal(false);
	concate(start, A->start);
	concate(A->end, A->start);
	concate(A->end, end);
	concate(start, end);

	return new NFA(start, end);
}
Exemple #4
0
NFA *concate(NFA *A, NFA *B)
{
	State *start = new State(false);
	State *end = new State(true);

	concate(start, A->start);
	A->end->setFinal(false);
	concate(A->end, B->start);
	B->end->setFinal(false);
	concate(B->end, end);

	return new NFA(start, end);
}
Exemple #5
0
NFA::NFA(char c)
{
	start = new State(false);
	end = new State(true);

	concate(start, end, c);
}
Exemple #6
0
static char	*paste_str(char *begin, char *send, char *end,
			   t_history **history)
{
  char		*str;

  str = rmbhistory(send, history);
  xfree(send);
  if (str == NULL)
    return (NULL);
  if ((send = concate(begin, str)) == NULL)
    return (NULL);
  xfree(begin);
  xfree(str);
  begin = concate(send, end);
  xfree(send);
  xfree(end);
  str = begin;
  if (str == NULL)
    return (NULL);
  printf("%s\n", str);
  return (str);
}
Exemple #7
0
NFA::NFA(std::string postfixRegex)
{

	std::queue<NFA*> nfaQueue;

	for (auto it = postfixRegex.cbegin();
	it != postfixRegex.cend(); ++it)
	{
		switch (*it) {
		case '*': {
			NFA *n = nfaQueue.front();
			nfaQueue.pop();
			nfaQueue.push(kleene(n));
			break;
		}
		case '&': {
			NFA *left = nfaQueue.front();
			nfaQueue.pop();
			NFA *right = nfaQueue.front();
			nfaQueue.pop();
			nfaQueue.push(concate(left, right));
			break;
		}
		case '|': {
			NFA *left = nfaQueue.front();
			nfaQueue.pop();
			NFA *right = nfaQueue.front();
			nfaQueue.pop();
			nfaQueue.push(alternate(left, right));
			break;
		}
		default: {
			nfaQueue.push(new NFA(*it));
			break;
		}}
	}
	NFA *nfa = nfaQueue.front();
	nfaQueue.pop();
	assert(nfaQueue.empty());
	start = nfa->start;
	end = nfa->end;
}
Exemple #8
0
void lzw(char *filename, char *outputfile) {
	static done = 0;
	char arr;
	char c[2];
	char x;
	char *mod;
	int n, z ,i;
	trie t;
	code *cc;
	char *temp;
	inittrie(&t);
	result *l;
	int fd = open(filename, O_RDONLY);
	FILE *fr = fopen(outputfile, "w");	

	//printf("%d",fd);
	if(fd == -1) {
		perror("fopen failed");
		//return errno;
	}
	char h[2];
	h[1] = 255;
	h[0] = 255;
	strcpy(word,"");
	size_t largest = 0;
	while((n = read(fd, &arr, 1))){
		//printf("(%c %d)\t",arr,fd);
		c[0] = arr;
		c[1] = '\0';
		mod = concate(word,arr);
		//printf("%s\n",c);
			if(present(mod,&t)){
				
				strcat(word,c);
				//printf("%s",word);
			}
			else{
				///printf("%s\n",word);
				
				result *l = searchintrie(word, &t);
				if(l->d.value > largest)
					largest = l->d.value;/*we keep a record of the largest encoded number*/
				if(largest > 65535 && flag1 == 0){
				/*the first time we get a number beyond 65535, insert 65535 start reading 24 bits*/
					for( i = 0;i < 2; i++)
						putc(h[0],fr);	
				}
				if(largest > 16777215 && flag1 == 1) {
					/*the first time we get a number beyond 16777215, insert 65535 start reading 24 bits*/
					for( i = 0; i < 3 ; i++)
						putc(h[0],fr);
					flag1 = 2;
				} 
				if(largest > 4294967295 && flag1 == 2) {
					/*the first time we get a number beyond 4294967295, insert 65535 start reading 24 bits*/
					for( i = 0; i < 4 ; i++)
						putc(h[0],fr);
					flag1 = 3;
				} 
				//if(l->found) 
				//printf("%d\t",l->d.value);
				cc = converttocode(l->d.value);
				z = (cc->bits)/ 8;
				temp = cc->b;
				while(z){
					z--;
					putc(temp[z],fr);
				
				}
				//printf("%s\n",concat(word,x));
				add(mod, &t);/*add new entry to dictionary*/
				strcpy(word,c);
			}
						
	}
	close(fd);
	fclose(fr);	
}