pspp-dev
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]