Exemplo n.º 1
0
const out_val *gen_expr_style_assign_compound(const expr *e, out_ctx *octx)
{
	IGNORE_PRINTGEN(gen_expr(e->lhs->lhs, octx));
	stylef(" %s= ", op_to_str(e->bits.compoundop.op));
	IGNORE_PRINTGEN(gen_expr(e->rhs, octx));
	return NULL;
}
void gen_expr_str_assign_compound(expr *e)
{
	idt_printf("compound %s%s-assignment expr:\n",
			e->assign_is_post ? "post-" : "",
			op_to_str(e->op));

	idt_printf("assign to:\n");
	gen_str_indent++;
	print_expr(e->lhs);
	gen_str_indent--;
	idt_printf("assign from:\n");
	gen_str_indent++;
	print_expr(e->rhs);
	gen_str_indent--;
}
Exemplo n.º 3
0
void dump_expr_assign_compound(const expr *e, dump *ctx)
{
	dump_desc_expr_newline(ctx, "compound assignment", e, 0);

	dump_printf_indent(ctx, 0, " %s%s=",
			e->assign_is_post ? "post-assignment " : "",
			op_to_str(e->bits.compoundop.op));

	if(e->bits.compoundop.upcast_ty){
		dump_printf_indent(ctx, 0, " upcast='%s'",
				type_to_str(e->bits.compoundop.upcast_ty));
	}

	dump_printf_indent(ctx, 0, "\n");

	dump_inc(ctx);
	dump_expr(e->lhs, ctx);
	dump_expr(e->rhs, ctx);
	dump_dec(ctx);
}
static char *arg_to_str(struct event_filter *filter, struct filter_arg *arg)
{
	char *str;

	switch (arg->type) {
	case FILTER_ARG_BOOLEAN:
		str = malloc_or_die(6);
		if (arg->boolean.value)
			strcpy(str, "TRUE");
		else
			strcpy(str, "FALSE");
		return str;

	case FILTER_ARG_OP:
		return op_to_str(filter, arg);

	case FILTER_ARG_NUM:
		return num_to_str(filter, arg);

	case FILTER_ARG_STR:
		return str_to_str(filter, arg);

	case FILTER_ARG_VALUE:
		return val_to_str(filter, arg);

	case FILTER_ARG_FIELD:
		return field_to_str(filter, arg);

	case FILTER_ARG_EXP:
		return exp_to_str(filter, arg);

	default:
		/* ?? */
		return NULL;
	}

}
Exemplo n.º 5
0
Arquivo: asm.c Projeto: mtexier/ucc
void asm_new(enum asm_type t, void *p)
{
	switch(t){
		case asm_assign:
			asm_temp(1, "pop rax");
			break;

		case asm_call:
			asm_temp(1, "call %s", (const char *)p);
			break;

		case asm_load_ident:
			asm_temp(1, "load %s", (const char *)p);
			break;

		case asm_load_val:
			asm_temp(1, "load val %d", *(int *)p);
			break;

		case asm_op:
			asm_temp(1, "%s", op_to_str(*(enum op_type *)p));
			break;

		case asm_pop:
			asm_temp(1, "pop");
			break;

		case asm_push:
			asm_temp(1, "push");
			break;

		case asm_addrof:
			fprintf(stderr, "BUH?? (addrof)\n");
			break;
	}
}
Exemplo n.º 6
0
int
handle_lua_uri(FCGX_Request *request)
{
    char cmd[1024];
    char token[1024];
    char arg[1024];
    enum lua_operation lo;
    int id; // token ID, parsed as an int
    char *uri = FCGX_GetParam("REQUEST_URI", request->envp) + strlen("/lua/");


    parse_lua_uri(uri, cmd, token, arg, sizeof(cmd));

    lo = determine_lua_operation(cmd, token, arg);
    fprintf(stderr, "Raw URI: %s  Command: %s  Token: %s  Arg: %s Lua Operation: %s\n", uri, cmd, token, arg, op_to_str(lo));


    if (lo == LUA_EVAL)
        return nlua_eval(request);

    else if(lo == LUA_OPEN) {
        id = nlua_open(request, token, arg);
        if (id < 0)
            return make_error(request, "Unable to open LUA environment", -id);

        FCGX_FPrintF(request->out, "Content-Type: text/html\r\n"
                                   "\r\n"
                                   "%d\n", id);
    }

    else if (lo == LUA_CLOSE) {
        id = strtoul(token, NULL, 16);
        if (id > MAX_THREAD_ID)
            return make_error(request, "Invalid thread ID specified", EINVAL);

        nlua_close(request, id);

        FCGX_FPrintF(request->out, "Content-Type: text/html\r\n"
                                   "\r\n"
                                   "OK\n");
    }

    else if (lo == LUA_WEBIO) {
        id = strtoul(token, NULL, 0);
        if (id > MAX_THREAD_ID)
            return make_error(request, "Invalid thread ID specified", EINVAL);

        if (!nlua_pool_status[id])
            return make_error(request, "Thread not running", EINVAL);

        return nlua_webio(request, arg, id);
    }

    else if (lo == LUA_LIST) {
        FCGX_FPrintF(request->out, "Content-Type: text/plain\r\n\r\n");
        for (id=0; id<MAX_THREAD_ID; id++)
            if (nlua_pool_status[id])
                FCGX_FPrintF(request->out, "%d\r\n", id);
    }


    else if (lo == LUA_UNKNOWN)
        return make_error(request, "No valid LUA command specified", EINVAL);

    return 0;
}
void gen_expr_style_assign_compound(expr *e)
{
	gen_expr(e->lhs->lhs);
	stylef(" %s= ", op_to_str(e->op));
	gen_expr(e->rhs);
}