Ejemplo n.º 1
0
void parser_dump(mrb_state *mrb, LambdaCommonNode *ln, int offset) {
    args_dump(ln->args(), offset, mrb);
    dump_prefix(offset+1);
    printf("body:\n");
    parser_dump(mrb, ln->body(), offset+2);

}
Ejemplo n.º 2
0
void parser_dump(mrb_state *mrb, DefCommonNode *dn, int offset) {
    printf("%s\n", mrb_sym2name(mrb, dn->name()));
    {
        const tLocals &n2(dn->ve_locals());
        if(!n2.empty() && (n2.front() || n2.size()>1)) {
            dump_prefix(offset+1);
            printf("local variables:\n");
            dump_prefix(offset+2);
            for(auto iter=n2.begin(); iter!=n2.end(); ++iter) {
                if ( iter != n2.begin() )
                    printf(", ");
                printf("%s", mrb_sym2name(mrb, *iter));
            }
            printf("\n");
        }
    }
    args_dump(dn->args(), offset, mrb);
    parser_dump(mrb, dn->body(), offset+1);
}
Ejemplo n.º 3
0
Archivo: main.c Proyecto: whs1787/ffs
int main(int argc, char *argv[])
{
	static const struct option long_opts[] = {
		/* commands */
		{"inject", required_argument, NULL, c_INJECT},
		{"remove", required_argument, NULL, c_REMOVE},
		{"hexdump", required_argument, NULL, c_HEXDUMP},
		/* options */
		{"output", required_argument, NULL, o_OUTPUT},
		/* flags */
		{"force", no_argument, NULL, f_FORCE},
		{"p8", no_argument, NULL, f_P8},
		{"verbose", no_argument, NULL, f_VERBOSE},
		{"help", no_argument, NULL, f_HELP},
		{0, 0, 0, 0}
	};

	static const char *short_opts = "I:R:H:o:fpvh";

	int rc = EXIT_FAILURE;

	if (argc == 1)
		usage(args.short_name, false), exit(rc);

	int opt = 0, idx = 0;
	while ((opt = getopt_long(argc, argv, short_opts, long_opts,
				  &idx)) != -1)
		if (process_argument(&args, opt, optarg) < 0)
			goto error;

	/* getopt_long doesn't know what to do with orphans, */
	/* so we'll scoop them up here, and deal with them later */

	while (optind < argc)
		if (process_option(&args, argv[optind++]) < 0)
			goto error;

	if (args.verbose == f_VERBOSE)
		args_dump(&args);

	if (validate_args(&args) < 0)
		goto error;
	if (process_args(&args) < 0)
		goto error;

	rc = EXIT_SUCCESS;

	if (false) {
		err_t *err;
error:
		err = err_get();
		assert(err != NULL);

		fprintf(stderr, "%s: %s : %s(%d) : (code=%d) %.*s\n",
			program_invocation_short_name,
			err_type_name(err), err_file(err), err_line(err),
			err_code(err), err_size(err), (char *)err_data(err));
	}

	return rc;
}