From 774441e68b4d2e3a4b5c6975e9614dcd4369955e Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Sun, 12 Sep 2010 14:05:36 -0700 Subject: [PATCH] lexer: Use lex_is_string() more consistently. The lexer has this function, so we might as well use it consistently. --- src/language/control/repeat.c | 4 ++-- src/language/data-io/data-list.c | 2 +- src/language/data-io/file-handle.q | 2 +- src/language/data-io/get.c | 2 +- src/language/data-io/print.c | 2 +- src/language/dictionary/variable-label.c | 3 +-- src/language/expressions/evaluate.c | 2 +- src/language/lexer/lexer.c | 2 +- src/language/lexer/q2c.c | 2 +- src/language/lexer/value-parser.c | 2 +- src/language/stats/aggregate.c | 4 ++-- src/language/tests/format-guesser-test.c | 4 ++-- src/language/utilities/echo.c | 4 ++-- src/language/utilities/host.c | 2 +- src/language/utilities/include.c | 2 +- src/language/utilities/set.q | 2 +- src/language/xforms/recode.c | 2 +- 17 files changed, 21 insertions(+), 22 deletions(-) diff --git a/src/language/control/repeat.c b/src/language/control/repeat.c index cd88a1e141..1ab3b9c2ff 100644 --- a/src/language/control/repeat.c +++ b/src/language/control/repeat.c @@ -195,7 +195,7 @@ parse_specification (struct lexer *lexer, struct repeat_block *block) count = parse_ids (lexer, dict, macro, block->pool); else if (lex_is_number (lexer)) count = parse_numbers (lexer, macro, block->pool); - else if (lex_token (lexer) == T_STRING) + else if (lex_is_string (lexer)) count = parse_strings (lexer, macro, block->pool); else { @@ -476,7 +476,7 @@ parse_strings (struct lexer *lexer, struct repeat_macro *macro, struct pool *poo { char *string; - if (lex_token (lexer) != T_STRING) + if (!lex_force_string (lexer)) { msg (SE, _("String expected.")); return 0; diff --git a/src/language/data-io/data-list.c b/src/language/data-io/data-list.c index d43af347a7..80c9849b55 100644 --- a/src/language/data-io/data-list.c +++ b/src/language/data-io/data-list.c @@ -196,7 +196,7 @@ cmd_data_list (struct lexer *lexer, struct dataset *ds) if (lex_match_id (lexer, "TAB")) delim = '\t'; - else if (lex_token (lexer) == T_STRING + else if (lex_is_string (lexer) && ds_length (lex_tokstr (lexer)) == 1) { delim = ds_first (lex_tokstr (lexer)); diff --git a/src/language/data-io/file-handle.q b/src/language/data-io/file-handle.q index 33aa1d168a..71081b922a 100644 --- a/src/language/data-io/file-handle.q +++ b/src/language/data-io/file-handle.q @@ -200,7 +200,7 @@ fh_parse (struct lexer *lexer, enum fh_referent referent_mask) handle = fh_inline_file (); else { - if (lex_token (lexer) != T_ID && lex_token (lexer) != T_STRING) + if (lex_token (lexer) != T_ID && !lex_is_string (lexer)) { lex_error (lexer, _("expecting a file name or handle name")); return NULL; diff --git a/src/language/data-io/get.c b/src/language/data-io/get.c index 14fb70a40f..cf59c8e0fb 100644 --- a/src/language/data-io/get.c +++ b/src/language/data-io/get.c @@ -77,7 +77,7 @@ parse_read_command (struct lexer *lexer, struct dataset *ds, enum reader_command { lex_match (lexer, '/'); - if (lex_match_id (lexer, "FILE") || lex_token (lexer) == T_STRING) + if (lex_match_id (lexer, "FILE") || lex_is_string (lexer)) { lex_match (lexer, '='); diff --git a/src/language/data-io/print.c b/src/language/data-io/print.c index d3d0972543..164d992759 100644 --- a/src/language/data-io/print.c +++ b/src/language/data-io/print.c @@ -252,7 +252,7 @@ parse_specs (struct lexer *lexer, struct pool *tmp_pool, struct print_trns *trns if (!parse_record_placement (lexer, &record, &column)) return false; - if (lex_token (lexer) == T_STRING) + if (lex_is_string (lexer)) ok = parse_string_argument (lexer, trns, record, &column); else ok = parse_variable_argument (lexer, dict, trns, tmp_pool, &record, &column, diff --git a/src/language/dictionary/variable-label.c b/src/language/dictionary/variable-label.c index e8abe70dc9..fbf7e200ee 100644 --- a/src/language/dictionary/variable-label.c +++ b/src/language/dictionary/variable-label.c @@ -46,9 +46,8 @@ cmd_variable_labels (struct lexer *lexer, struct dataset *ds) if (!parse_variables (lexer, dataset_dict (ds), &v, &nv, PV_NONE)) return CMD_FAILURE; - if (lex_token (lexer) != T_STRING) + if (!lex_force_string (lexer)) { - msg (SE, _("String expected for variable label.")); free (v); return CMD_FAILURE; } diff --git a/src/language/expressions/evaluate.c b/src/language/expressions/evaluate.c index 48fc1556cc..65404b43e4 100644 --- a/src/language/expressions/evaluate.c +++ b/src/language/expressions/evaluate.c @@ -142,7 +142,7 @@ cmd_debug_evaluate (struct lexer *lexer, struct dataset *dsother UNUSED) if (lex_is_number (lexer)) width = 0; - else if (lex_token (lexer) == T_STRING) + else if (lex_is_string (lexer)) width = ds_length (lex_tokstr (lexer)); else { diff --git a/src/language/lexer/lexer.c b/src/language/lexer/lexer.c index 04e6322b28..aa681c8030 100644 --- a/src/language/lexer/lexer.c +++ b/src/language/lexer/lexer.c @@ -603,7 +603,7 @@ lex_force_match (struct lexer *lexer, int t) bool lex_force_string (struct lexer *lexer) { - if (lexer->token == T_STRING) + if (lex_is_string (lexer)) return true; else { diff --git a/src/language/lexer/q2c.c b/src/language/lexer/q2c.c index 1a95d08091..cf8e53ee5c 100644 --- a/src/language/lexer/q2c.c +++ b/src/language/lexer/q2c.c @@ -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.\"));", diff --git a/src/language/lexer/value-parser.c b/src/language/lexer/value-parser.c index c492658e28..6fa4319a65 100644 --- a/src/language/lexer/value-parser.c +++ b/src/language/lexer/value-parser.c @@ -100,7 +100,7 @@ parse_number (struct lexer *lexer, double *x, const enum fmt_type *format) lex_get (lexer); return true; } - else if (lex_token (lexer) == T_STRING && format != NULL) + else if (lex_is_string (lexer) && format != NULL) { union value v; assert (! (fmt_get_category (*format) & ( FMT_CAT_STRING ))); diff --git a/src/language/stats/aggregate.c b/src/language/stats/aggregate.c index 50a98e483e..a8e3f6d71d 100644 --- a/src/language/stats/aggregate.c +++ b/src/language/stats/aggregate.c @@ -432,7 +432,7 @@ parse_aggregate_functions (struct lexer *lexer, const struct dictionary *dict, - if (lex_token (lexer) == T_STRING) + if (lex_is_string (lexer)) { struct string label; ds_init_string (&label, lex_tokstr (lexer)); @@ -499,7 +499,7 @@ parse_aggregate_functions (struct lexer *lexer, const struct dictionary *dict, int type; lex_match (lexer, ','); - if (lex_token (lexer) == T_STRING) + if (lex_is_string (lexer)) { arg[i].c = ds_xstrdup (lex_tokstr (lexer)); type = VAL_STRING; diff --git a/src/language/tests/format-guesser-test.c b/src/language/tests/format-guesser-test.c index 728080153c..6285fc042c 100644 --- a/src/language/tests/format-guesser-test.c +++ b/src/language/tests/format-guesser-test.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 2008 Free Software Foundation, Inc. + Copyright (C) 2008, 2010 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -33,7 +33,7 @@ cmd_debug_format_guesser (struct lexer *lexer, struct dataset *ds UNUSED) char format_string[FMT_STRING_LEN_MAX + 1]; g = fmt_guesser_create (); - while (lex_token (lexer) == T_STRING) + while (lex_is_string (lexer)) { fprintf (stderr, "\"%s\" ", ds_cstr (lex_tokstr (lexer))); fmt_guesser_add (g, ds_ss (lex_tokstr (lexer))); diff --git a/src/language/utilities/echo.c b/src/language/utilities/echo.c index ebd6a990fc..b27b40017a 100644 --- a/src/language/utilities/echo.c +++ b/src/language/utilities/echo.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 2005, 2009 Free Software Foundation, Inc. + Copyright (C) 2005, 2009, 2010 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -29,7 +29,7 @@ cmd_echo (struct lexer *lexer, struct dataset *ds UNUSED) { struct tab_table *tab; - if (lex_token (lexer) != T_STRING) + if (!lex_force_string (lexer)) return CMD_FAILURE; tab = tab_create(1, 1); diff --git a/src/language/utilities/host.c b/src/language/utilities/host.c index ae34436725..ac09145451 100644 --- a/src/language/utilities/host.c +++ b/src/language/utilities/host.c @@ -141,7 +141,7 @@ cmd_host (struct lexer *lexer, struct dataset *ds UNUSED) return CMD_FAILURE; ds_init_empty (&command); - while (lex_token (lexer) == T_STRING) + while (lex_is_string (lexer)) { if (!ds_is_empty (&command)) ds_put_char (&command, '\n'); diff --git a/src/language/utilities/include.c b/src/language/utilities/include.c index 59728ad0ae..52d0e09c91 100644 --- a/src/language/utilities/include.c +++ b/src/language/utilities/include.c @@ -178,7 +178,7 @@ parse_insert (struct lexer *lexer, char **filename) lex_match (lexer, '='); /* File name can be identifier or string. */ - if (lex_token (lexer) != T_ID && lex_token (lexer) != T_STRING) + if (lex_token (lexer) != T_ID && !lex_is_string (lexer)) { lex_error (lexer, _("expecting file name")); return CMD_FAILURE; diff --git a/src/language/utilities/set.q b/src/language/utilities/set.q index 0bd7738591..79fe9216b5 100644 --- a/src/language/utilities/set.q +++ b/src/language/utilities/set.q @@ -509,7 +509,7 @@ stc_custom_journal (struct lexer *lexer, struct dataset *ds UNUSED, struct cmd_s journal_enable (); else if (lex_match_id (lexer, "OFF") || lex_match_id (lexer, "NO")) journal_disable (); - else if (lex_token (lexer) == T_STRING || lex_token (lexer) == T_ID) + else if (lex_is_string (lexer) || lex_token (lexer) == T_ID) { journal_set_file_name (ds_cstr (lex_tokstr (lexer))); lex_get (lexer); diff --git a/src/language/xforms/recode.c b/src/language/xforms/recode.c index aa051fee01..8c44e14697 100644 --- a/src/language/xforms/recode.c +++ b/src/language/xforms/recode.c @@ -390,7 +390,7 @@ parse_map_out (struct lexer *lexer, struct pool *pool, struct map_out *out) } else if (lex_match_id (lexer, "SYSMIS")) set_map_out_num (out, SYSMIS); - else if (lex_token (lexer) == T_STRING) + else if (lex_is_string (lexer)) { set_map_out_str (out, pool, lex_tokstr (lexer)); lex_get (lexer); -- 2.30.2