Пример #1
0
int genbind_parsefile(char *infilename, struct genbind_node **ast)
{
	FILE *infile;

	/* open input file */
	if ((infilename[0] == '-') &&
	    (infilename[1] == 0)) {
		if (options->verbose) {
			printf("Using stdin for input\n");
		}
		infile = stdin;
	} else {
		infile = genbindopen(infilename);
	}

	if (!infile) {
		fprintf(stderr, "Error opening %s: %s\n",
			infilename,
			strerror(errno));
		return 3;
	}

	if (options->debug) {
		nsgenbind_debug = 1;
		nsgenbind__flex_debug = 1;
	}

	/* set flex to read from file */
	nsgenbind_restart(infile);

	/* process binding */
	return nsgenbind_parse(ast);

}
Пример #2
0
int genbind_parsefile(char *infilename, struct genbind_node **ast)
{
        FILE *infile;
        int ret;

        /* open input file */
        infile = genbindopen(infilename);
        if (!infile) {
                fprintf(stderr, "Error opening %s: %s\n",
                        infilename,
                        strerror(errno));
                return 3;
        }

        /* if debugging enabled enable parser tracing and send to file */
        if (options->debug) {
                nsgenbind_debug = 1;
                nsgenbind__flex_debug = 1;
                genbind_parsetracef = genb_fopen("binding-trace", "w");
        } else {
                genbind_parsetracef = NULL;
        }

        /* set flex to read from file */
        nsgenbind_restart(infile);

        /* process binding */
        ret = nsgenbind_parse(infilename, ast);

        /* close tracefile if open */
        if (genbind_parsetracef != NULL) {
                fclose(genbind_parsetracef);
        }

        return ret;
}