X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Flexer%2Fq2c.c;h=cf5a04ee132c6df3449cccc4da8d86c1239a07e1;hb=refs%2Fbuilds%2F20101125030504%2Fpspp;hp=f2617092b3368c6173a4676ee549b3bf7cb320d5;hpb=f550aee00a62fe1d8baf62d83cd7efef6cc2ee92;p=pspp diff --git a/src/language/lexer/q2c.c b/src/language/lexer/q2c.c index f2617092b3..cf5a04ee13 100644 --- a/src/language/lexer/q2c.c +++ b/src/language/lexer/q2c.c @@ -225,11 +225,11 @@ st_upper (const char *s) /* Returns the address of the first non-whitespace character in S, or the address of the null terminator if none. */ static char * -skip_ws (const char *s) +skip_ws (char *s) { while (isspace ((unsigned char) *s)) s++; - return (char *) s; + return s; } /* Read one line from the input file into buf. Lines having special @@ -1491,12 +1491,12 @@ dump_specifier_parse (const specifier *spec, const subcommand *sbc) { if (s->optvalue) { - dump (1, "if (lex_match (lexer, '('))"); + dump (1, "if (lex_match (lexer, T_LPAREN))"); dump (1, "{"); } else { - dump (1, "if (!lex_match (lexer, '('))"); + dump (1, "if (!lex_match (lexer, T_RPAREN))"); dump (1, "{"); dump (0, "msg (SE, _(\"`(' expected after %s " "specifier of %s subcommand.\"));", @@ -1534,7 +1534,7 @@ dump_specifier_parse (const specifier *spec, const subcommand *sbc) else if (s->value == VAL_STRING) { dump (1, "if (lex_token (lexer) != T_ID " - "&& lex_token (lexer) != T_STRING)"); + "&& !lex_is_string (lexer))"); dump (1, "{"); dump (0, "msg (SE, _(\"%s specifier of %s subcommand " "requires a string argument.\"));", @@ -1542,7 +1542,7 @@ dump_specifier_parse (const specifier *spec, const subcommand *sbc) dump (0, "goto lossage;"); dump (-1, "}"); dump (-1, "free (p->%s%s);", sbc->prefix, st_lower (s->valname)); - dump (0, "p->%s%s = xstrdup (ds_cstr (lex_tokstr (lexer)));", + dump (0, "p->%s%s = ss_xstrdup (ss_tokss (lexer));", sbc->prefix, st_lower (s->valname)); } else @@ -1575,7 +1575,7 @@ dump_specifier_parse (const specifier *spec, const subcommand *sbc) if (s->valtype == VT_PAREN) { - dump (1, "if (!lex_match (lexer, ')'))"); + dump (1, "if (!lex_match (lexer, T_RPAREN))"); dump (1, "{"); dump (0, "msg (SE, _(\"`)' expected after argument for " "%s specifier of %s.\"));", @@ -1611,7 +1611,7 @@ dump_subcommand (const subcommand *sbc) { int count; - dump (1, "while (lex_token (lexer) != '/' && lex_token (lexer) != '.')"); + dump (1, "while (lex_token (lexer) != T_SLASH && lex_token (lexer) != T_ENDCMD)"); dump (1, "{"); { @@ -1669,7 +1669,7 @@ dump_subcommand (const subcommand *sbc) } } - dump (0, "lex_match (lexer, ',');"); + dump (0, "lex_match (lexer, T_COMMA);"); dump (-1, "}"); outdent (); } @@ -1705,7 +1705,7 @@ dump_subcommand (const subcommand *sbc) outdent (); if (sbc->restriction) { - dump (0, "x = ds_length (lex_tokstr (lexer));"); + dump (0, "x = ss_length (lex_tokss (lexer));"); dump (1, "if (!(%s))", sbc->restriction); dump (1, "{"); dump (0, "msg (SE, _(\"String for %s must be %s.\"));", @@ -1715,7 +1715,7 @@ dump_subcommand (const subcommand *sbc) outdent (); } dump (0, "free(p->s_%s);", st_lower(sbc->name) ); - dump (0, "p->s_%s = ds_xstrdup (lex_tokstr (lexer));", + dump (0, "p->s_%s = ss_xstrdup (lex_tokss (lexer));", st_lower (sbc->name)); dump (0, "lex_get (lexer);"); if (sbc->restriction) @@ -1755,11 +1755,11 @@ dump_subcommand (const subcommand *sbc) } else if (sbc->type == SBC_PINT) { - dump (0, "lex_match (lexer, '(');"); + dump (0, "lex_match (lexer, T_LPAREN);"); dump (1, "if (!lex_force_int (lexer))"); dump (0, "goto lossage;"); dump (-1, "p->n_%s = lex_integer (lexer);", st_lower (sbc->name)); - dump (0, "lex_match (lexer, ')');"); + dump (0, "lex_match (lexer, T_RPAREN);"); } else if (sbc->type == SBC_DBL_LIST || sbc->type == SBC_INT_LIST) { @@ -1769,9 +1769,9 @@ dump_subcommand (const subcommand *sbc) dump (0, "goto lossage;"); dump (-1,"}"); - dump (1, "while (lex_token (lexer) != '/' && lex_token (lexer) != '.')"); + dump (1, "while (lex_token (lexer) != T_SLASH && lex_token (lexer) != T_ENDCMD)"); dump (1, "{"); - dump (0, "lex_match (lexer, ',');"); + dump (0, "lex_match (lexer, T_COMMA);"); dump (0, "if (!lex_force_num (lexer))"); dump (1, "{"); dump (0, "goto lossage;"); @@ -1833,12 +1833,12 @@ dump_parser (int persistent) { if (def->type == SBC_VARLIST) dump (1, "if (lex_token (lexer) == T_ID " - "&& dict_lookup_var (dataset_dict (ds), lex_tokid (lexer)) != NULL " + "&& dict_lookup_var (dataset_dict (ds), lex_tokcstr (lexer)) != NULL " "&& lex_look_ahead (lexer) != '=')"); else { dump (0, "if ((lex_token (lexer) == T_ID " - "&& dict_lookup_var (dataset_dict (ds), lex_tokid (lexer)) " + "&& dict_lookup_var (dataset_dict (ds), lex_tokcstr (lexer)) " "&& lex_look_ahead () != '=')"); dump (1, " || token == T_ALL)"); } @@ -1883,7 +1883,7 @@ dump_parser (int persistent) f = 1; dump (1, "{"); - dump (0, "lex_match (lexer, '=');"); + dump (0, "lex_match (lexer, T_EQUALS);"); dump (0, "p->sbc_%s++;", st_lower (sbc->name)); if (sbc->arity != ARITY_MANY) { @@ -1906,7 +1906,7 @@ dump_parser (int persistent) dump(1,"else if ( settings_get_syntax () != COMPATIBLE && lex_match_id(lexer, \"ALGORITHM\"))"); dump(1,"{"); - dump (0, "lex_match (lexer, '=');"); + dump (0, "lex_match (lexer, T_EQUALS);"); dump(1,"if (lex_match_id(lexer, \"COMPATIBLE\"))"); dump(0,"settings_set_cmd_algorithm (COMPATIBLE);"); @@ -1919,12 +1919,12 @@ dump_parser (int persistent) - dump (1, "if (!lex_match (lexer, '/'))"); + dump (1, "if (!lex_match (lexer, T_SLASH))"); dump (0, "break;"); dump (-2, "}"); outdent (); dump_blank_line (0); - dump (1, "if (lex_token (lexer) != '.')"); + dump (1, "if (lex_token (lexer) != T_ENDCMD)"); dump (1, "{"); dump (0, "lex_error (lexer, _(\"expecting end of command\"));"); dump (0, "goto lossage;");