char tflag;
char vflag;
-char csharp = 0;
+int csharp = 0;
char *file_prefix = "y";
char *myname = "yacc";
int nsyms;
int ntokens;
int nvars;
+int nmethods;
int start_symbol;
char **symbol_name;
short *symbol_value;
short *symbol_prec;
char *symbol_assoc;
+char **methods;
short *ritem;
short *rlhs;
short **derives;
char *nullable;
-extern char *mkstemp();
+#if defined(_WIN32) && !defined(__CYGWIN32__) && !defined(__CYGWIN__)
+extern char* mktemp();
+#define mkstemp mktemp
+#endif
+
extern char *getenv();
done(k)
usage()
{
- fprintf(stderr, "usage: %s [-tvc] [-b file_prefix] filename\n", myname);
+ fprintf(stderr, "usage: %s [-tvcp] [-b file_prefix] filename\n", myname);
exit(1);
}
+void
+print_skel_dir(void)
+{
+ printf ("%s\n", SKEL_DIRECTORY);
+ exit (0);
+}
getargs(argc, argv)
int argc;
if (i + 1 < argc) usage();
return;
- case '-':
- ++i;
- goto no_more_options;
+ case '-':
+ ++i;
+ goto no_more_options;
case 'b':
if (*++s)
usage();
continue;
- case 't':
- tflag = 1;
- break;
+ case 't':
+ tflag = 1;
+ break;
+
+ case 'p':
+ print_skel_dir ();
+ break;
case 'c':
csharp = 1;
line_format = "#line %d \"%s\"\n";
+ default_line_format = "#line default\n";
break;
case 'v':
vflag = 1;
break;
+ case 'p':
+ print_skel_dir ();
+ break;
+
case 'c':
csharp = 1;
+ line_format = "#line %d \"%s\"\n";
+ default_line_format = "#line default\n";
+
break;
default:
return (p);
}
+#ifdef __GNUC__
+#define GNUC_UNUSED __attribute__((__unused__))
+#else
+#define GNUC_UNUSED
+#endif
create_file_names()
{
int i, len;
char *tmpdir;
+ int mkstemp_res GNUC_UNUSED;
+#if defined(_WIN32) && !defined(__CYGWIN32__) && !defined(__CYGWIN__)
+ tmpdir = ".";
+#else
tmpdir = getenv("TMPDIR");
+ if (tmpdir == 0) tmpdir = getenv ("TMP");
+ if (tmpdir == 0) tmpdir = getenv ("TEMP");
if (tmpdir == 0) tmpdir = "/tmp";
+#endif
len = strlen(tmpdir);
i = len + 13;
prolog_file_name[len + 5] = 'p';
local_file_name[len + 5] = 'l';
- mkstemp(action_file_name);
- mkstemp(prolog_file_name);
- mkstemp(local_file_name);
+ mkstemp_res = mkstemp(action_file_name);
+ mkstemp_res = mkstemp(prolog_file_name);
+ mkstemp_res = mkstemp(local_file_name);
len = strlen(file_prefix);