Merge branch 'master' of ssh://jmd@git.sv.gnu.org/srv/git/pspp
[pspp-builds.git] / doc / language.texi
index 7ce4d88938d03786c77fbc3f50ec3792e1850f0a..1345433613d3f24e7c7b26cdac457f7132761834 100644 (file)
@@ -1,4 +1,4 @@
-@node Language, Expressions, Invocation, Top
+@node Language
 @chapter The PSPP language
 @cindex language, PSPP
 @cindex PSPP, language
@@ -15,6 +15,7 @@ Later chapters will describe individual commands in detail.
 @menu
 * Tokens::                      Characters combine to form tokens.
 * Commands::                    Tokens combine to form commands.
+* Syntax Variants::             Batch vs. Interactive mode
 * Types of Commands::           Commands come in several flavors.
 * Order of Commands::           Commands combine to form syntax files.
 * Missing Observations::        Handling missing observations.
@@ -24,7 +25,8 @@ Later chapters will describe individual commands in detail.
 * BNF::                         How command syntax is described.
 @end menu
 
-@node Tokens, Commands, Language, Language
+
+@node Tokens
 @section Tokens
 @cindex language, lexical analysis
 @cindex language, tokens
@@ -159,7 +161,7 @@ doing so.  Throughout the remainder of this manual we will assume that
 the default setting is in effect.
 @end table
 
-@node Commands, Types of Commands, Tokens, Language
+@node Commands
 @section Forming commands of tokens
 
 @cindex PSPP, command structure
@@ -188,17 +190,36 @@ 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}).
 
-In batch mode only, that is, when reading commands from a file instead
-of an interactive user, any line that contains a non-space character
-in the leftmost column begins a new command.  Thus, each command
-consists of a flush-left line followed by any number of lines indented
-from the left margin.  In this mode, a plus or minus sign
-(@samp{+}, @samp{@minus{}}) as the first character
-in a line is ignored and causes that line to begin a new command,
-which allows for visual indentation of a command without that command
-being considered part of the previous command.
-
-@node Types of Commands, Order of Commands, Commands, Language
+@node Syntax Variants
+@section Variants of syntax.
+
+@cindex Batch syntax
+@cindex Interactive syntax
+
+There are two variants of command syntax, @i{viz}: @dfn{batch} mode and
+@dfn{interactive} mode.
+Batch mode is the default when reading commands from a file.
+Interactive mode is the default when commands are typed at a prompt
+by a user.
+Certain commands, such as @cmd{INSERT} (@pxref{INSERT}), may explicitly
+change the syntax mode. 
+
+In batch mode, any line that contains a non-space character
+in the leftmost column begins a new command. 
+Thus, each command consists of a flush-left line followed by any
+number of lines indented from the left margin. 
+In this mode, a plus or minus sign (@samp{+}, @samp{@minus{}}) as the
+first character in a line is ignored and causes that line to begin a
+new command, which allows for visual indentation of a command without
+that command being considered part of the previous command. 
+The period terminating the end of a command is optional but recommended.
+
+In interactive mode, each command must  either be terminated with a period,
+or an empty line must follow the command.
+The use of (@samp{+} and @samp{@minus{}} as continuation characters is not
+permitted.
+
+@node Types of Commands
 @section Types of Commands
 
 Commands in PSPP are divided roughly into six categories:
@@ -241,7 +262,7 @@ more general sense, a @dfn{procedure} is any command that causes the
 active file (the data) to be read.
 @end table
 
-@node Order of Commands, Missing Observations, Types of Commands, Language
+@node Order of Commands
 @section Order of Commands
 @cindex commands, ordering
 @cindex order of commands
@@ -339,7 +360,7 @@ Cause a transition to the procedure state.
 @end itemize
 @end table
 
-@node Missing Observations, Variables, Order of Commands, Language
+@node Missing Observations
 @section Handling missing observations
 @cindex missing values
 @cindex values, missing
@@ -369,7 +390,7 @@ For more information on missing values, see the following sections:
 documentation on individual procedures for information on how they
 handle missing values.
 
-@node Variables, Files, Missing Observations, Language
+@node Variables
 @section Variables
 @cindex variables
 @cindex dictionary
@@ -387,7 +408,7 @@ Some details of variables are described in the sections below.
 * Scratch Variables::           Variables deleted by procedures.
 @end menu
 
-@node Attributes, System Variables, Variables, Variables
+@node Attributes
 @subsection Attributes of Variables
 @cindex variables, attributes of
 @cindex attributes of variables
@@ -478,7 +499,7 @@ Similar to print format, but used by the @cmd{WRITE} command
 (@pxref{WRITE}).
 @end table
 
-@node System Variables, Sets of Variables, Attributes, Variables
+@node System Variables
 @subsection Variables Automatically Defined by PSPP
 @cindex system variables
 @cindex variables, system
@@ -522,7 +543,7 @@ was read, in format F20.
 Page width, in characters, in format F3.
 @end table
 
-@node Sets of Variables, Input and Output Formats, System Variables, Variables
+@node Sets of Variables
 @subsection Lists of variable names
 @cindex @code{TO} convention
 @cindex convention, @code{TO}
@@ -551,7 +572,7 @@ After a set of variables has been defined with @cmd{DATA LIST} or
 another command with this method, the same set can be referenced on
 later commands using the same syntax.
 
-@node Input and Output Formats, Scratch Variables, Sets of Variables, Variables
+@node Input and Output Formats
 @subsection Input and Output Formats
 
 @cindex formats
@@ -1232,7 +1253,7 @@ as hex digit pairs.  On output, hex digits are output in uppercase; on
 input, uppercase and lowercase are both accepted.  The default output
 format is A format with half the input width.
 
-@node Scratch Variables,  , Input and Output Formats, Variables
+@node Scratch Variables
 @subsection Scratch Variables
 
 @cindex scratch variables
@@ -1331,6 +1352,14 @@ file, or scratch file.  Most often, a file handle is specified as the
 name of a file as a string, that is, enclosed within @samp{'} or
 @samp{"}.
 
+A file name string that begins or ends with @samp{|} is treated as the
+name of a command to pipe data to or from.  You can use this feature
+to read data over the network using a program such as @samp{curl}
+(e.g.@: @code{GET '|curl -s -S http://example.com/mydata.sav'}), to
+read compressed data from a file using a program such as @samp{zcat}
+(e.g.@: @code{GET '|zcat mydata.sav.gz'}), and for many other
+purposes.
+
 PSPP also supports declaring named file handles with the @cmd{FILE
 HANDLE} command.  This command associates an identifier of your choice
 (the file handle's name) with a file.  Later, the file handle name can