[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[pre-lexer 11/21] lexer: Use lex_is_string() more consistently.
From: |
Ben Pfaff |
Subject: |
[pre-lexer 11/21] lexer: Use lex_is_string() more consistently. |
Date: |
Thu, 23 Sep 2010 21:20:47 -0700 |
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 cd88a1e..1ab3b9c 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 d43af34..80c9849 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 33aa1d1..71081b9 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 14fb70a..cf59c8e 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 d3d0972..164d992 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 e8abe70..fbf7e20 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 48fc155..65404b4 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 04e6322..aa681c8 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 1a95d08..cf8e53e 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 c492658..6fa4319 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 50a98e4..a8e3f6d 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 7280801..6285fc0 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 ebd6a99..b27b400 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 ae34436..ac09145 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 59728ad..52d0e09 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 0bd7738..79fe921 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 aa051fe..8c44e14 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);
--
1.7.1
- [pre-lexer 00/21] preparation for work on lexer, Ben Pfaff, 2010/09/24
- [pre-lexer 01/21] str: Make ss_alloc_substring() allocate null-terminated strings., Ben Pfaff, 2010/09/24
- [pre-lexer 13/21] command: Remove superfluous trailing spaces from command names., Ben Pfaff, 2010/09/24
- [pre-lexer 19/21] data-in: Rewrite logic for recoding input, and get rid of src_enc member., Ben Pfaff, 2010/09/24
- [pre-lexer 03/21] i18n: New function recode_substring_pool()., Ben Pfaff, 2010/09/24
- [pre-lexer 11/21] lexer: Use lex_is_string() more consistently.,
Ben Pfaff <=
- [pre-lexer 04/21] syntax-string-source: Fix format string problems., Ben Pfaff, 2010/09/24
- [pre-lexer 08/21] Make translation easier., Ben Pfaff, 2010/09/24
- [pre-lexer 14/21] command: Add specific DATASET unimplemented commands., Ben Pfaff, 2010/09/24
- [pre-lexer 12/21] command: Remove INSERT from list of unimplemented commands., Ben Pfaff, 2010/09/24
- [pre-lexer 20/21] data-in: Make data_in() parameters more uniform., Ben Pfaff, 2010/09/24
- [pre-lexer 02/21] i18n: Use UTF8 macro instead of "UTF8" literal string., Ben Pfaff, 2010/09/24
- [pre-lexer 09/21] lexer: Improve translatability of lex_error()., Ben Pfaff, 2010/09/24
- [pre-lexer 15/21] message: Consistently initialize locator; use 0 for "no line number"., Ben Pfaff, 2010/09/24
- [pre-lexer 06/21] AGGREGATE: Simplify code., Ben Pfaff, 2010/09/24
- [pre-lexer 17/21] calendar: Use sensible error reporting in calendar_gregorian_to_offset()., Ben Pfaff, 2010/09/24