Ejemplo n.º 1
0
int main(int argc,char *argv[])
{
    LowTerm lowterm;
	int i;

	if(Config_Get(argc, argv, &lowterm) != 0){
        fprintf(stderr, "Total Terminal Count : %d\n", lowterm.terminal_count);
        return -1;
    }

    Stack_New(&lowterm.visible_list, lowterm.terminal_count);

	gtk_init(&argc, &argv);

    for(i = 0;i < lowterm.terminal_count; i++){
        /* fprintf(stderr, "Terminal Address : %p\n", &(lowterm.terminal[i])); */
        lowterm.terminal[i].visible_list_pointer  = &(lowterm.visible_list);
        Terminal_New(i, &(lowterm.terminal[i]));
        Terminal_Set(lowterm.terminal[i]);
        Terminal_Show_Hide(lowterm.terminal[i].window, &(lowterm.terminal[i]));
    }

    // 초기 윈도우 크기(width/height), 윈도우명, 실행명령을 파라미터로 받을수 있도록 한다.
    // urxvt를 밀어버리고 이걸로 쓸 예정, urxvt는 한글입력이 뭐같아서 싫어
	gtk_main();

	free(lowterm.terminal);
    Stack_Delete(&(lowterm.visible_list));

	return 0;
}
Ejemplo n.º 2
0
ReadLiner *
ReadLine_New ( int32 type )
{
    ReadLiner * rl = ( ReadLiner * ) _Mem_Allocate ( sizeof (ReadLiner ), type ) ;
    rl->TabCompletionInfo0 = TabCompletionInfo_New ( type ) ;
    rl->TciNamespaceStack = Stack_New ( 64, SESSION ) ;
    //rl->TciDownStack = Stack_New ( 32, SESSION ) ;
    ReadLine_Init ( rl, _CfrTil_GetC, type ) ;
    return rl ;
}
Ejemplo n.º 3
0
void
_ReadLine_Copy ( ReadLiner * rl, ReadLiner * rl0, int32 type )
{
    memcpy ( rl, rl0, sizeof (ReadLiner ) ) ;
    rl->TabCompletionInfo0 = TabCompletionInfo_New ( type ) ;
    rl->TciNamespaceStack = Stack_New ( 64, SESSION ) ;
    //rl->TciDownStack = Stack_New ( 32, SESSION ) ;
    ReadLine_Init ( rl, rl0->Key, type ) ; //_CfrTil_GetC ) ;
    strcpy ( rl->InputLine, rl0->InputLine ) ;
    rl->InputStringOriginal = rl0->InputStringOriginal ;
    rl->State = rl0->State ;
}
Ejemplo n.º 4
0
static char* gdi_convert_postfix_to_infix(const char* postfix)
{
	int i;
	int length;
	BOOL unary;
	wStack* stack;
	int al, bl, cl, dl;
	char* a, *b, *c, *d;
	bl = cl = dl = 0;
	stack = Stack_New(FALSE);
	length = strlen(postfix);

	for (i = 0; i < length; i++)
	{
		if ((postfix[i] == 'P') || (postfix[i] == 'D') || (postfix[i] == 'S'))
		{
			/* token is an operand, push on the stack */
			a = malloc(2);
			a[0] = postfix[i];
			a[1] = '\0';
			//printf("Operand: %s\n", a);
			Stack_Push(stack, a);
		}
		else
		{
			/* token is an operator */
			unary = FALSE;
			c = malloc(2);
			c[0] = postfix[i];
			c[1] = '\0';

			if (c[0] == 'a')
			{
				c[0] = '&';
			}
			else if (c[0] == 'o')
			{
				c[0] = '|';
			}
			else if (c[0] == 'n')
			{
				c[0] = '~';
				unary = TRUE;
			}
			else if (c[0] == 'x')
			{
				c[0] = '^';
			}
			else
			{
				printf("invalid operator: %c\n", c[0]);
			}

			//printf("Operator: %s\n", c);
			a = (char*) Stack_Pop(stack);

			if (unary)
				b = NULL;
			else
				b = (char*) Stack_Pop(stack);

			al = strlen(a);

			if (b)
				bl = strlen(b);

			cl = 1;
			dl = al + bl + cl + 3;
			d = malloc(dl + 1);
			sprintf_s(d, dl, "(%s%s%s)", b ? b : "", c, a);
			Stack_Push(stack, d);
			free(a);
			free(b);
			free(c);
		}
	}

	d = (char*) Stack_Pop(stack);
	Stack_Free(stack);
	return d;
}
Ejemplo n.º 5
0
void AsyncStack_Initialize(AsyncStack* stack, uint64 size) {
	assert(stack != NULL);
	stack->BaseStack = Stack_New(size);
	stack->Lock = SAL_Mutex_Create();
}
Ejemplo n.º 6
0
void
_CfrTil_Init ( CfrTil * cfrTil, Namespace * nss )
{
    uint32 type = CFRTIL ;
    _Q_->OVT_CfrTil = cfrTil ;
    // TODO : organize these buffers and their use 
    cfrTil->OriginalInputLineB = _Buffer_NewPermanent ( BUFFER_SIZE ) ;
    cfrTil->InputLineB = _Buffer_NewPermanent ( BUFFER_SIZE ) ;
    cfrTil->SourceCodeSPB = _Buffer_NewPermanent ( SOURCE_CODE_BUFFER_SIZE ) ;
    cfrTil->LambdaCalculusPB = _Buffer_NewPermanent ( BUFFER_SIZE ) ;
    cfrTil->TokenB = _Buffer_NewPermanent ( BUFFER_SIZE ) ;
    cfrTil->PrintfB = _Buffer_NewPermanent ( BUFFER_SIZE ) ;
    cfrTil->Scratch1B = _Buffer_NewPermanent ( BUFFER_SIZE ) ;
    cfrTil->StringB = _Buffer_NewPermanent ( BUFFER_SIZE ) ;
    cfrTil->DebugB = _Buffer_NewPermanent ( BUFFER_SIZE ) ;
    cfrTil->DebugB1 = _Buffer_NewPermanent ( BUFFER_SIZE ) ;
    cfrTil->DebugB2 = _Buffer_NewPermanent ( BUFFER_SIZE ) ;
    cfrTil->StringInsertB = _Buffer_NewPermanent ( BUFFER_SIZE ) ;
    cfrTil->StringInsertB2 = _Buffer_NewPermanent ( BUFFER_SIZE ) ;
    cfrTil->StringInsertB3 = _Buffer_NewPermanent ( BUFFER_SIZE ) ;
    cfrTil->TabCompletionBuf = _Buffer_NewPermanent ( BUFFER_SIZE ) ;
    cfrTil->StringMacroB = _Buffer_NewPermanent ( BUFFER_SIZE ) ;
    cfrTil->OriginalInputLine = Buffer_Data ( cfrTil->OriginalInputLineB ) ;
    cfrTil->SourceCodeScratchPad = Buffer_Data ( cfrTil->SourceCodeSPB ) ;
    cfrTil->LispPrintBuffer = Buffer_Data ( cfrTil->LambdaCalculusPB ) ;
    cfrTil->TokenBuffer = Buffer_Data ( cfrTil->TokenB ) ;
    SetState ( cfrTil, CFRTIL_RUN | OPTIMIZE_ON | INLINE_ON, true ) ;
    if ( _Q_->Verbosity > 2 ) Printf ( ( byte* ) "\nSystem Memory is being reallocated.  " ) ;
    cfrTil->ContextStack = Stack_New ( 256, type ) ;
    cfrTil->ObjectStack = Stack_New ( 1 * K, type ) ;
    cfrTil->DebugStateStack = Stack_New ( 1 * K, type ) ;
    _Stack_Push ( cfrTil->DebugStateStack, 0 ) ;
    cfrTil->TokenList = _dllist_New ( type ) ;
    cfrTil->DebugWordList = _dllist_New ( type ) ;
    _Context_ = cfrTil->Context0 = _Context_New ( cfrTil, type ) ;
    cfrTil->Debugger0 = _Debugger_New ( type ) ; // nb : must be after System_NamespacesInit
    cfrTil->cs_CpuState = CpuState_New ( type ) ;
    if ( cfrTil->SaveDsp && cfrTil->DataStack )// with _Q_->RestartCondition = STOP from Debugger_Stop
    {
        Dsp = cfrTil->SaveDsp ;
    }
    else
    {
        cfrTil->DataStack = Stack_New ( _Q_->DataStackSize, CFRTIL ) ;
        _CfrTil_DataStack_Init ( cfrTil ) ;
    }
    if ( nss )
    {
        cfrTil->Namespaces = nss ;
    }
    else
    {
        _CfrTil_NamespacesInit ( cfrTil ) ;
    }
    cfrTil->StoreWord = _Word_FindAny ( ( byte* ) "store" ) ;
    cfrTil->PokeWord = _Word_FindAny ( ( byte* ) "poke" ) ;
    cfrTil->LispNamespace = Namespace_Find ( ( byte* ) "Lisp" ) ;
    CfrTil_MachineCodePrimitive_AddWords ( ) ; // in any case we need to reinit these for eg. debugger->SaveCpuState (), etc.
    CfrTil_ReadTables_Setup ( cfrTil ) ;
    CfrTil_LexerTables_Setup ( cfrTil ) ;
    cfrTil->LC = 0 ; //LC_New ( ) ;
    //cfrTil->SCA_BlockedIndex = - 1 ;
}