Esempio n. 1
0
void
initialize(int argc, char **argv)
{

    SET_PROGNAME();

    bi_vars_init();		/* load the builtin variables */
    bi_funct_init();		/* load the builtin functions */
    kw_init();			/* load the keywords */
    field_init();

#if USE_BINMODE
    {
	char *p = getenv("MAWKBINMODE");

	if (p)
	    set_binmode(atoi(p));
    }
#endif

    process_cmdline(argc, argv);

    code_init();
    fpe_init();
    set_stdio();

#if USE_BINMODE
    stdout_init();
#endif
}
Esempio n. 2
0
/*
 * test main for kw module, usage: a.out fname [template...]
 */
int
main(int argc, char *argv[])
{
	int i;
	struct fn *src = fn_new(NULL);
	struct fn *dst = fn_new(NULL);

	err_init(argv[0]);
	setbuf(stdout, NULL);

	Now = time(0);

	if (argc < 2)
		err(0, "first arg must be fname");

	kw_init(fn_new(argv[1]), NULL);

	kw_print(stdout);

	for (i = 2; i < argc; i++) {
		int n;

		for (n = -1; n < 2; n++) {
			fn_renew(src, argv[i]);
			fn_renew(dst, NULL);
			printf("expand<%s> n %d hasn %d ",
			    argv[i], n, kw_expand(src, dst, n, B_FALSE));
			printf("result <%s>\n", fn_s(dst));
		}
	}

	err_done(0);
	/* NOTREACHED */
	return (0);
}
Esempio n. 3
0
int main(int argc, char** argv){
    int retval = 0;
    int i, Navg;
    param_obj param;
    kw_obj kw;
    ts_obj ts;
    vsip_mview_f *dtaIn, *gramOut;
    if(retval += param_read(argv[1],&param)){
        printf("Failed to read parameter file\n");
        exit(-1);
    }
    param_log(&param);
    kw_init(&kw, &param);
    ts_init(&ts, &param);
    /* simulate time series and beamform */
    Navg = (int) param.Navg;
    dtaIn = ts_instance(&ts);
    gramOut = kw_instance(&kw);
    kw_zero(&kw);
    for(i=0; i<Navg; i++){
        ts_zero(&ts);
        ts_sim_noise(&ts);
        ts_sim_nb(&ts);
        komega(&kw,dtaIn);
    }
    /* beamform done. Gram should be in gramOut */
    /*************/    
    /* Massage gram data and save to file for plotting */
      for(i=0; i<vsip_mgetrowlength_f(gramOut); i++)
      {/* move zero to middle */
         vsip_vview_f *v = vsip_mcolview_f(gramOut, i);
         vsip_vfreqswap_f(v);
         vsip_vdestroy_f(v);
      }
      {/* massage the data for plot*/
         vsip_scalar_f max = vsip_mmaxval_f(gramOut, NULL),min;
         vsip_scalar_f avg = vsip_mmeanval_f(gramOut);
         vsip_mclip_f(gramOut,0.0, max, avg/100000.0, max, gramOut);
         vsip_mlog10_f(gramOut,gramOut);
         min = -vsip_mminval_f(gramOut, NULL);
         vsip_smadd_f(min, gramOut, gramOut);
         max = vsip_mmaxval_f(gramOut, NULL);
         vsip_smmul_f(1.0/max, gramOut, gramOut);
      }
      { /* output data and plot with octave */
         FILE *fptr = fopen("gramOut","w");
         size_t size = vsip_mgetrowlength_f(gramOut) * vsip_mgetcollength_f(gramOut);
         vsip_scalar_f *out = (vsip_scalar_f*)malloc(size * sizeof(vsip_scalar_f));
         vsip_mcopyto_user_f(gramOut, VSIP_COL, out);
         fwrite(out,size,sizeof(vsip_scalar_f),fptr);
         fclose(fptr);
         free(out);
      }
    /* cleanup */
    kw_fin(&kw);
    ts_fin(&ts);
    param_free(&param);
    return retval;
}
Esempio n. 4
0
// -----------------------------------------------------------------------
int main(int argc, char **argv)
{
	int ret = 1;
	int res;
	FILE *outf;

	res = parse_args(argc, argv);

	if (res) {
		printf("\n");
		usage();
		goto cleanup;
	}

	if (kw_init() < 0) {
		printf("Internal dictionary initialization failed.\n");
		goto cleanup;
	}

	sym = dh_create(16000, 1);
	if (!sym) {
		printf("Failed to create symbol table.\n");
		goto cleanup;
	}

	if (input_file) {
		yyin = fopen(input_file, "r");
		loc_push(input_file);
	} else {
		yyin = stdin;
		loc_push("(stdin)");
	}

	if (!yyin) {
		printf("Cannot open source file: '%s'\n", input_file);
		goto cleanup;
	}

	inc_path_add(".");

	AADEBUG("==== Parse ================================");
	if (yyparse()) {
		if (yyin) fclose(yyin);
		goto cleanup;
	}

	if (yyin) fclose(yyin);

	if (!program) { // shouldn't happen - parser should always produce program (even empty one)
		printf("Parse produced empty tree.\n");
		goto cleanup;
	}

	res = assemble(program, 1);

	if (res < 0) {
		printf("%s\n", aerr);
		goto cleanup;
	} else if (res > 0) {
		if (otype == O_EMELF) {
			if (assemble(program, 1) < 0) {
				printf("%s\n", aerr);
				goto cleanup;
			}
		} else {
			if (assemble(program, 0)) {
				printf("%s\n", aerr);
				goto cleanup;
			}
		}
	}

	if (otype != O_DEBUG) {
		if (!output_file) {
			output_file = strdup("a.out");
		}
		outf = fopen(output_file, "w");
	} else {
		if (!output_file) {
			output_file = strdup("(stdout)");
		}
		outf = stdout;
	}
	if (!outf) {
		printf("Cannot open output file '%s' for writing\n", output_file);
		goto cleanup;
	}

	switch (otype) {
		case O_RAW:
			res = writer_raw(program, outf);
			break;
		case O_DEBUG:
			res = writer_debug(program, outf);
			break;
		case O_EMELF:
			res = writer_emelf(program, sym, outf);
			break;
		default:
			printf("Unknown output type.\n");
			fclose(outf);
			goto cleanup;
	}

	fclose(outf);

	if (res) {
		printf("%s\n", aerr);
		goto cleanup;
	}
	ret = 0;

cleanup:
	yylex_destroy();
	st_drop(inc_paths);
	st_drop(filenames);
	st_drop(program);
	dh_destroy(sym);
	st_drop(entry);
	kw_destroy();
	free(output_file);

	return ret;
}