lexer: Reimplement for better testability and internationalization.
[pspp-builds.git] / src / language / lexer / q2c.c
index 4858a25706133a5303b48b8b5184ca2dc2b1804a..f53ccfc33c181ad48cba48705f35e23d5cb2d552 100644 (file)
@@ -1425,7 +1425,7 @@ make_match (const char *t)
   else if (strchr (t, hyphen_proxy))
     {
       char *c = unmunge (t);
-      sprintf (s, "lex_match_hyphenated_word (lexer, \"%s\")", c);
+      sprintf (s, "lex_match_phrase (lexer, \"%s\")", c);
       free (c);
     }
   else
@@ -1836,12 +1836,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_tokcstr (lexer)) != NULL "
-             "&& lex_look_ahead (lexer) != '=')");
+             "&& lex_next_token (lexer, 1) != T_EQUALS)");
       else
        {
          dump (0, "if ((lex_token (lexer) == T_ID "
                 "&& dict_lookup_var (dataset_dict (ds), lex_tokcstr (lexer)) "
-               "&& lex_look_ahead () != '=')");
+               "&& lex_next_token (lexer, 1) != T_EQUALS)");
          dump (1, "     || token == T_ALL)");
        }
       dump (1, "{");
@@ -2128,17 +2128,19 @@ main (int argc, char *argv[])
          indent = 0;
 
          dump (0, "#include <stdlib.h>");
-         dump (0, "#include <libpspp/assertion.h>");
-         dump (0, "#include <libpspp/message.h>");
-         dump (0, "#include <language/lexer/lexer.h>");
-         dump (0, "#include <language/lexer/variable-parser.h>");
-          dump (0, "#include <data/settings.h>");
-         dump (0, "#include <libpspp/str.h>");
-          dump (0, "#include <language/lexer/subcommand-list.h>");
-         dump (0, "#include <data/variable.h>");
+          dump_blank_line (0);
+
+          dump (0, "#include \"data/settings.h\"");
+         dump (0, "#include \"data/variable.h\"");
+         dump (0, "#include \"language/lexer/lexer.h\"");
+          dump (0, "#include \"language/lexer/subcommand-list.h\"");
+         dump (0, "#include \"language/lexer/variable-parser.h\"");
+         dump (0, "#include \"libpspp/assertion.h\"");
+         dump (0, "#include \"libpspp/message.h\"");
+         dump (0, "#include \"libpspp/str.h\"");
          dump_blank_line (0);
 
-          dump (0, "#include \"xalloc.h\"");
+          dump (0, "#include \"gl/xalloc.h\"");
          dump_blank_line (0);
 
           dump (0, "#include \"gettext.h\"");