From 41297e85eedafff3c28eb058a65089b16818bac1 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Sun, 21 Nov 2010 11:16:10 -0800 Subject: [PATCH] Remove the NULLINE and ENDCMD settings. These settings change the lexical structure of the language, which makes lexical analysis difficult. --- NEWS | 5 ++++- doc/language.texi | 9 +-------- doc/utilities.texi | 18 ------------------ src/data/settings.c | 32 -------------------------------- src/data/settings.h | 6 ------ src/language/control/repeat.c | 4 ++-- src/language/lexer/lexer.c | 3 +-- src/language/utilities/set.q | 13 ------------- 8 files changed, 8 insertions(+), 82 deletions(-) diff --git a/NEWS b/NEWS index 3846c4b6..ade64c06 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,5 @@ PSPP NEWS -- history of user-visible changes. -Time-stamp: <2010-10-16 13:05:30 blp> +Time-stamp: <2010-11-21 11:14:27 blp> Copyright (C) 1996-9, 2000, 2008, 2009, 2010 Free Software Foundation, Inc. See the end for copying conditions. @@ -20,6 +20,9 @@ Changes from 0.7.3 to 0.7.6: * The HOST command has been updated to use more modern syntax. + * The SET and SHOW commands no longer support the ENDCMD and NULLINE + subcommands. The defaults are now the only supported values. + Changes from 0.7.2 to 0.7.3: * Charts are now produced with Cairo and Pango, instead of libplot. diff --git a/doc/language.texi b/doc/language.texi index d117a0ee..78d38acd 100644 --- a/doc/language.texi +++ b/doc/language.texi @@ -147,11 +147,6 @@ punctuator only as the last character on a line (except white space). When it is the last non-space character on a line, a period is not treated as part of another token, even if it would otherwise be part of, e.g.@:, an identifier or a floating-point number. - -Actually, the character that ends a command can be changed with -@cmd{SET}'s ENDCMD subcommand (@pxref{SET}), but we do not recommend -doing so. Throughout the remainder of this manual we will assume that -the default setting is in effect. @end table @node Commands @@ -179,9 +174,7 @@ by a forward slash (@samp{/}). There are multiple ways to mark the end of a command. The most common way is to end the last line of the command with a period (@samp{.}) as described in the previous section (@pxref{Tokens}). A blank line, or -one that consists only of white space or comments, also ends a command -by default, although you can use the NULLINE subcommand of @cmd{SET} -to disable this feature (@pxref{SET}). +one that consists only of white space or comments, also ends a command. @node Syntax Variants @section Variants of syntax. diff --git a/doc/utilities.texi b/doc/utilities.texi index bcb97618..b132f6b0 100644 --- a/doc/utilities.texi +++ b/doc/utilities.texi @@ -358,10 +358,6 @@ SET /RIB=@{NATIVE,MSBFIRST,LSBFIRST,VAX@} /RRB=@{NATIVE,ISL,ISB,IDL,IDB,VF,VD,VG,ZS,ZL@} -(program input) - /ENDCMD='.' - /NULLINE=@{ON,OFF@} - (interaction) /CPROMPT='cprompt_string' /DPROMPT='dprompt_string' @@ -530,19 +526,6 @@ formats are only for use with very old input files. The default is NATIVE. @end table -Program input subcommands affect the way that programs are parsed when -they are typed interactively or run from a command file. They are - -@table @asis -@item ENDCMD -This is a single character indicating the end of a command. The default -is @samp{.}. Don't change this. - -@item NULLINE -Whether a blank line is interpreted as ending the current command. The -default is ON. -@end table - Interaction subcommands affect the way that PSPP interacts with an online user. The interaction subcommands are @@ -807,7 +790,6 @@ SHOW [CCE] [COPYING] [DECIMALS] - [ENDCMD] [FORMAT] [LENGTH] [MXERRS] diff --git a/src/data/settings.c b/src/data/settings.c index 092187a6..ec026d4c 100644 --- a/src/data/settings.c +++ b/src/data/settings.c @@ -64,8 +64,6 @@ struct settings bool printback; bool mprint; int mxloops; - bool nulline; - char endcmd; size_t workspace; struct fmt_spec default_format; bool testing_mode; @@ -105,8 +103,6 @@ static struct settings the_settings = { true, /* printback */ true, /* mprint */ 1, /* mxloops */ - true, /* nulline */ - '.', /* endcmd */ 64L * 1024 * 1024, /* workspace */ {FMT_F, 8, 2}, /* default_format */ false, /* testing_mode */ @@ -429,34 +425,6 @@ settings_set_mxloops ( int mxloops) the_settings.mxloops = mxloops; } -/* Whether a blank line is a command terminator. */ -bool -settings_get_nulline (void) -{ - return the_settings.nulline; -} - -/* Set whether a blank line is a command terminator. */ -void -settings_set_nulline ( bool nulline) -{ - the_settings.nulline = nulline; -} - -/* The character used to terminate commands. */ -char -settings_get_endcmd (void) -{ - return the_settings.endcmd; -} - -/* Set the character used to terminate commands. */ -void -settings_set_endcmd ( char endcmd) -{ - the_settings.endcmd = endcmd; -} - /* Approximate maximum amount of memory to use for cases, in bytes. */ size_t diff --git a/src/data/settings.h b/src/data/settings.h index e68325f7..963458d8 100644 --- a/src/data/settings.h +++ b/src/data/settings.h @@ -92,12 +92,6 @@ void settings_set_mprint (bool); int settings_get_mxloops (void); void settings_set_mxloops ( int); -bool settings_get_nulline (void); -void settings_set_nulline (bool); - -char settings_get_endcmd (void); -void settings_set_endcmd (char); - size_t settings_get_workspace (void); size_t settings_get_workspace_cases (const struct caseproto *); void settings_set_workspace (size_t); diff --git a/src/language/control/repeat.c b/src/language/control/repeat.c index 130dfd68..7b5634c8 100644 --- a/src/language/control/repeat.c +++ b/src/language/control/repeat.c @@ -527,7 +527,7 @@ do_repeat_filter (struct getl_interface *interface, struct string *line) /* Strip trailing whitespace, check for & remove terminal dot. */ ds_rtrim (line, ss_cstr (CC_SPACES)); - dot = ds_chomp (line, settings_get_endcmd ()); + dot = ds_chomp (line, '.'); input = ds_ss (line); in_apos = in_quote = false; while ((c = ss_first (input)) != EOF) @@ -550,7 +550,7 @@ do_repeat_filter (struct getl_interface *interface, struct string *line) } } if (dot) - ds_put_byte (&output, settings_get_endcmd ()); + ds_put_byte (&output, '.'); ds_swap (line, &output); ds_destroy (&output); diff --git a/src/language/lexer/lexer.c b/src/language/lexer/lexer.c index 4a899bdf..00724e64 100644 --- a/src/language/lexer/lexer.c +++ b/src/language/lexer/lexer.c @@ -917,8 +917,7 @@ lex_preprocess_line (struct string *line, { strip_comments (line); ds_rtrim (line, ss_cstr (CC_SPACES)); - *line_ends_command = (ds_chomp (line, settings_get_endcmd ()) - || (ds_is_empty (line) && settings_get_nulline ())); + *line_ends_command = ds_chomp (line, '.') || ds_is_empty (line); *line_starts_command = false; if (syntax == GETL_BATCH) { diff --git a/src/language/utilities/set.q b/src/language/utilities/set.q index f109e450..a07efedf 100644 --- a/src/language/utilities/set.q +++ b/src/language/utilities/set.q @@ -73,7 +73,6 @@ int tgetnum (const char *); cprompt=string; decimal=dec:dot/comma; dprompt=string; - endcmd=string "x==1" "one character long"; epoch=custom; errors=custom; format=custom; @@ -97,7 +96,6 @@ int tgetnum (const char *); mxloops=integer "x >=1" "%s must be at least 1"; mxmemory=integer; mxwarns=integer; - nulline=null:on/off; printback=custom; prompt=string; results=custom; @@ -158,16 +156,12 @@ cmd_set (struct lexer *lexer, struct dataset *ds) if (cmd.sbc_decimal) settings_set_decimal_char (cmd.dec == STC_DOT ? '.' : ','); - if (cmd.sbc_endcmd) - settings_set_endcmd (cmd.s_endcmd[0]); if (cmd.sbc_include) settings_set_include (cmd.inc == STC_ON); if (cmd.sbc_mxerrs) settings_set_max_messages (MSG_S_ERROR, cmd.n_mxerrs[0]); if (cmd.sbc_mxwarns) settings_set_max_messages (MSG_S_WARNING, cmd.n_mxwarns[0]); - if (cmd.sbc_nulline) - settings_set_nulline (cmd.null == STC_ON); if (cmd.sbc_rib) settings_set_input_integer_format (stc_to_integer_format (cmd.rib)); if (cmd.sbc_rrb) @@ -620,12 +614,6 @@ show_decimals (const struct dataset *ds UNUSED) return xasprintf ("`%c'", settings_get_decimal_char (FMT_F)); } -static char * -show_endcmd (const struct dataset *ds UNUSED) -{ - return xasprintf ("`%c'", settings_get_endcmd ()); -} - static char * show_errors (const struct dataset *ds UNUSED) { @@ -810,7 +798,6 @@ const struct show_sbc show_table[] = {"CCD", show_ccd}, {"CCE", show_cce}, {"DECIMALS", show_decimals}, - {"ENDCMD", show_endcmd}, {"ERRORS", show_errors}, {"FORMAT", show_format}, {"LENGTH", show_length}, -- 2.30.2