PSPP divides most syntax file lines into series of short chunks called tokens. Tokens are then grouped to form commands, each of which tells PSPP to take some action—read in data, write out data, perform a statistical procedure, etc. Each type of token is described below.
. _ $ # @
Identifiers may be any length, but only the first 64 bytes are
significant. Identifiers are not case-sensitive: foobar
,
Foobar
, FooBar
, FOOBAR
, and FoObaR
are
different representations of the same identifier.
Some identifiers are reserved. Reserved identifiers may not be used in any context besides those explicitly described in this manual. The reserved identifiers are:
ALL AND BY EQ GE GT LE LT NE NOT OR TO WITH
Reserved identifiers are always used as keywords. Other identifiers
may be used both as keywords and as user-defined identifiers, such as
variable names.
-5 3.14159265359 1e100 -.707 8945.
Negative numbers are expressed with a - prefix. However, in situations where a literal - token is expected, what appears to be a negative number is treated as - followed by a positive number.
No white space is allowed within a number token, except for horizontal white space between - and the rest of the number.
The last example above, 8945. will be interpreted as two
tokens, 8945 and ., if it is the last token on a line.
See Forming commands of tokens.
Strings can be concatenated using +, so that "a" + 'b' + 'c' is equivalent to 'abc'. Concatenation is useful for splitting a single string across multiple source lines. The maximum length of a string, after concatenation, is 255 characters.
Strings may also be expressed as hexadecimal, octal, or binary character values by prefixing the initial quote character by X, O, or B or their lowercase equivalents. Each pair, triplet, or octet of characters, according to the radix, is transformed into a single character with the given value. If there is an incomplete group of characters, the missing final digits are assumed to be 0. These forms of strings are nonportable because numeric values are associated with different characters by different operating systems. Therefore, their use should be confined to syntax files that will not be widely distributed.
The character with value 00 is reserved for
internal use by PSPP. Its use in strings causes an error and
replacement by a space character.
, / = ( ) + - * / ** < <= <> > >= ~= & | .
Most of these appear within the syntax of commands, but the period (.) punctuator is used only at the end of a command. It is a 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 SET's ENDCMD subcommand (see SET), but we do not recommend doing so. Throughout the remainder of this manual we will assume that the default setting is in effect.