示例#1
0
文件: m8cas.c 项目: steve-m/m8cutils
static void do_file(char *name)
{
    if (name && !strcmp(name,"-"))
	name = NULL;
    set_file(name ? name : "<stdin>");
    if (!name)
	if (dup2(fd0,0) < 0) {
	    perror("dup2");
	    exit(1);
	}
    if (allow_extensions) {
	int i;

	for (i = 0; i != cpp_options*2; i++)
	    add_cpp_arg(cpp_option[i]);
	add_cpp_arg("-I");
	add_cpp_arg(INSTALL_PREFIX "/share/m8cutils/include");
	run_cpp_on_file(name);
    }
    else {
	int fd;

	if (name) {
	    fd = open(name,O_RDONLY);
	    if (fd < 0) {
		perror(name);
		exit(1);
	    }
	    if (dup2(fd,0) < 0) {
		perror("dup2");
		exit(1);
	    }
	}
    }
    id_begin_file();
    (void) yyparse();
    id_end_file();
    remove_macros();
    if (allow_extensions)
	reap_cpp();
}
示例#2
0
void
parse_cpp_name (void)
{
	char       *n;

	if (!cpp_name)
		return;
	n = strdup (cpp_name);
	while (*n) {
		while (*n && *n == ' ')
			n++;
		add_cpp_arg (n);
		while (*n && *n != ' ')
			n++;
		if (*n)
			*n++ = 0;
	}
}