[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Pspp-cvs] Changes to pspp/src/q2c.c
From: |
Ben Pfaff |
Subject: |
[Pspp-cvs] Changes to pspp/src/q2c.c |
Date: |
Sat, 10 Dec 2005 21:48:51 -0500 |
Index: pspp/src/q2c.c
diff -u pspp/src/q2c.c:1.26 pspp/src/q2c.c:1.27
--- pspp/src/q2c.c:1.26 Wed Oct 26 05:06:14 2005
+++ pspp/src/q2c.c Sun Dec 11 02:48:45 2005
@@ -557,16 +557,6 @@
int translatable; /* Error message is translatable */
};
-typedef struct aux_subcommand aux_subcommand;
-struct aux_subcommand
- {
- aux_subcommand *next; /* Next in the chain. */
- char *name; /* Subcommand name. */
- char *value; /* Subcommand value */
- };
-
-static aux_subcommand *aux_subcommands ;
-
/* Name of the command; i.e., DESCRIPTIVES. */
char *cmdname;
@@ -1894,152 +1884,6 @@
}
-/* Write out the code to parse aux subcommand SBC. */
-static void
-dump_aux_subcommand (const subcommand *sbc)
-{
- if (sbc->type == SBC_PLAIN )
- {
- specifier *spec;
-
- for (spec = sbc->spec; spec; spec = spec->next)
- {
- char buf[80];
- sprintf(buf,"p->%s%s",st_lower(sbc->prefix),spec->varname);
-
- dump (0, "msg(MM,\"%s is %%s\",",sbc->name);
- dump (0, "(%s < 1000)?\"not set\":settings[%s - 1000]", buf, buf);
-
- dump (0, ");");
- }
- }
- else if (sbc->type == SBC_STRING)
- {
- dump (0, "msg(MM,\"%s is \\\"%%s\\\"\",p->s_%s);",
sbc->name,st_lower(sbc->name) );
- }
- else if (sbc->type == SBC_INT)
- {
- dump (1, "{");
- dump (0, "int i;");
- dump (1, "for (i = 0; i < MAXLISTS; ++i)");
- dump (0, "msg(MM,\"%s is %%ld\",p->n_%s[i]);",
sbc->name,st_lower(sbc->name) );
- outdent();
- dump (-1, "}");
- }
- else if (sbc->type == SBC_CUSTOM)
- {
- dump (0,
"aux_%scustom_%s(p);",st_lower(prefix),make_identifier(sbc->name));
- }
- else
- assert(0);
-}
-
-
-
-/* Write out auxilliary parser. */
-static void
-dump_aux_parser (void)
-{
- int f=0;
- subcommand *sbc;
- aux_subcommand *asbc;
-
- /* Write out English strings for all the identifiers in the symbol table. */
- {
- int f, k;
- symbol *sym;
- char *buf = NULL;
-
- /* Note the squirmings necessary to make sure that the last string
- is not followed by a comma (is it necessary to do that ?? ) */
- for (sym = symtab, f = k = 0; sym; sym = sym->next)
- if (!sym->unique && !is_keyword (sym->name))
- {
- if (!f)
- {
- dump (0, "/* Strings for subcommand specifiers. */");
- dump (1, "static const char *settings[]=");
- dump (1, "{");
- f = 1;
- }
-
- if (buf == NULL)
- buf = xmalloc (1024);
- else
- dump (0, buf);
-
- sprintf (buf, "\"%s\",",sym->name);
- }
- if (buf)
- {
- buf[strlen (buf) - 1] = 0;
- dump (0, buf);
- free (buf);
- }
- if (f)
- {
- dump (-1, "};");
- dump (-1, nullstr);
- }
- }
-
-
- indent = 0;
-
- dump (0, "static int");
- dump (0, "aux_parse_%s (struct cmd_%s *p)", make_identifier (cmdname),
- make_identifier (cmdname));
- dump (1, "{");
-
- dump (1, "for (;;)");
- dump (1, "{");
-
-
- for (sbc = subcommands; sbc; sbc = sbc->next)
- {
- dump (1, "%sif (%s)", f ? "else " : "", make_match (sbc->name));
- f = 1;
- dump (1, "{");
-
- dump_aux_subcommand (sbc);
-
- dump (-1, "}");
- outdent ();
- }
-
- for (asbc = aux_subcommands ; asbc ; asbc = asbc->next)
- {
- dump (1, "%sif (%s)", f ? "else " : "", make_match (asbc->name));
- f = 1;
- dump (1, "{");
- dump(0,"aux_%s();",make_identifier(asbc->value));
- dump (-1, "}");
- outdent ();
- }
-
- dump (1, "if (!lex_match ('/'))");
- dump (0, "break;");
- dump (-2, "}");
- outdent ();
- dump (0, nullstr);
- dump (1, "if (token != '.')");
- dump (1, "{");
- dump (0, "lex_error (_(\"expecting end of command\"));");
- dump (0, "goto lossage;");
- dump (-1, "}");
- dump (0, nullstr);
- dump (-1, "return 1;");
- dump (0, nullstr);
- dump (-1, "lossage:");
- indent ();
- dump (0, "free_%s (p);", make_identifier (cmdname));
- dump (0, "return 0;");
- dump (-1, "} /* aux_parse_%s (struct cmd_%s *p) */",
- make_identifier (cmdname), make_identifier (cmdname));
- dump (0, nullstr);
-}
-
-
/* Write the output file header. */
static void
dump_header (void)
@@ -2145,8 +1989,6 @@
return directive;
}
-static void aux_parse (void);
-
int
main (int argc, char *argv[])
{
@@ -2224,11 +2066,6 @@
dump_parser (1);
dump_free (1);
}
- else if (!strcmp (directive, "aux_functions"))
- {
- aux_parse();
- dump_aux_parser ();
- }
else
error ("unknown directive `%s'", directive);
indent = 0;
@@ -2239,34 +2076,3 @@
return EXIT_SUCCESS;
}
-
-/* Parse an entire auxilliary specification. */
-static void
-aux_parse (void)
-{
- aux_subcommand *sbc;
- aux_subcommand *prevsbc = 0 ;
- get_line();
- lex_get();
-
- for (;;)
- {
- sbc = xmalloc (sizeof *sbc);
- sbc->next = prevsbc;
- sbc->name = xstrdup (tokstr);
- lex_get();
- skip_token('=');
- sbc->value = xstrdup (tokstr);
- lex_get();
- if (token == '.')
- break;
- skip_token(';');
- prevsbc = sbc;
-
- }
- /* Skip trailing star-slash line. */
- get_line ();
- aux_subcommands = sbc;
-}
-
-
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Pspp-cvs] Changes to pspp/src/q2c.c,
Ben Pfaff <=