X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flexer.c;h=8a3ccc21881c1cea1d2e9510fe88b9e1741c650e;hb=64f58bbdab17e4a09b725e713f4f82f567f44076;hp=53b702c4e8bb1ba851d4f767ef463b55d7d71ba1;hpb=9eb49ba79d7178c565e4447c5fd26eb050d35d63;p=pspp-builds.git diff --git a/src/lexer.c b/src/lexer.c index 53b702c4..8a3ccc21 100644 --- a/src/lexer.c +++ b/src/lexer.c @@ -29,11 +29,15 @@ #include "alloc.h" #include "command.h" #include "error.h" -#include "getline.h" +#include "getl.h" #include "magic.h" #include "settings.h" #include "str.h" +#include "gettext.h" +#define _(msgid) gettext (msgid) +#define N_(msgid) msgid + /* #define DUMP_TOKENS 1 */ @@ -116,7 +120,7 @@ restore_token (void) assert (put_token != 0); token = put_token; ds_replace (&tokstr, ds_c_str (&put_tokstr)); - st_trim_copy (tokid, ds_c_str (&tokstr), sizeof tokid); + str_copy_trunc (tokid, sizeof tokid, ds_c_str (&tokstr)); tokval = put_tokval; put_token = 0; } @@ -358,7 +362,7 @@ lex_get (void) ds_putc (&tokstr, *prog++); /* Copy tokstr to tokid, possibly truncating it.*/ - st_trim_copy (tokid, ds_c_str (&tokstr), sizeof tokid); + str_copy_trunc (tokid, sizeof tokid, ds_c_str (&tokstr)); /* Determine token type. */ token = lex_id_to_token (ds_c_str (&tokstr), ds_length (&tokstr)); @@ -380,6 +384,22 @@ lex_get (void) #endif } +/* Reports an error to the effect that subcommand SBC may only be + specified once. */ +void +lex_sbc_only_once (const char *sbc) +{ + msg (SE, _("Subcommand %s may only be specified once."), sbc); +} + +/* Reports an error to the effect that subcommand SBC is + missing. */ +void +lex_sbc_missing (const char *sbc) +{ + lex_error (_("missing required subcommand %s"), sbc); +} + /* Prints a syntax error message containing the current token and given message MESSAGE (if non-null). */ void @@ -720,7 +740,7 @@ lex_put_back_id (const char *id) save_token (); token = T_ID; ds_replace (&tokstr, id); - st_trim_copy (tokid, ds_c_str (&tokstr), sizeof tokid); + str_copy_trunc (tokid, sizeof tokid, ds_c_str (&tokstr)); } /* Weird line processing functions. */