static void compile(grib_action* act, grib_compiler *compiler)
{
    fprintf(compiler->out,"%s = grib_action_create_modify(ctx,",compiler->var);
    fprintf(compiler->out,"\"%s\",",act->name);
    grib_compile_flags(compiler, act->flags);
    fprintf(compiler->out,");");
    fprintf(compiler->out,"\n");
}
static void compile(grib_action* act, grib_compiler *compiler)
{
    grib_action_variable* a  = (grib_action_variable*)act;
    fprintf(compiler->out,"%s = grib_action_create_variable(ctx,",compiler->var);
    fprintf(compiler->out,"\"%s\",",act->name);
    fprintf(compiler->out,"\"%s\",",act->op);
    fprintf(compiler->out,"%ld,",a->len);
    fprintf(compiler->out,"NULL,"); /* a->params */
    fprintf(compiler->out,"NULL,"); /* a->default_value */
    grib_compile_flags(compiler, act->flags);
    fprintf(compiler->out,",");
    if(act->name_space) {
        fprintf(compiler->out,"\"%s\");",act->name_space);
    }
    else
    {
        fprintf(compiler->out,"NULL);");
    }    
    fprintf(compiler->out,"\n");
}
static void compile(grib_action* act, grib_compiler *compiler)
{
    grib_action_alias* a  = (grib_action_alias*)act;
    fprintf(compiler->out,"%s = grib_action_create_alias(ctx,",compiler->var);
    fprintf(compiler->out,"\"%s\",",act->name);
    if(a->target) {
        fprintf(compiler->out,"\"%s\",",a->target);
    }
    else
    {
        fprintf(compiler->out,"NULL,");
    }
    if(act->name_space) {
        fprintf(compiler->out,"\"%s\",",act->name_space);
    }
    else
    {
        fprintf(compiler->out,"NULL,");
    }
    grib_compile_flags(compiler, act->flags);
    fprintf(compiler->out,");");
    fprintf(compiler->out,"\n");
}