About This Book

Syntax Conventions for the SAS Language

Overview of Syntax Conventions for the SAS Language

SAS uses standard conventions in the documentation of syntax for SAS language elements. These conventions enable you to easily identify the components of SAS syntax. The conventions can be divided into these parts:
  • syntax components
  • style conventions
  • special characters
  • references to SAS libraries and external files

Syntax Components

The components of the syntax for most language elements include a keyword and arguments. For some language elements, only a keyword is necessary. For other language elements, the keyword is followed by an equal sign (=).
keyword
specifies the name of the SAS language element that you use when you write your program. Keyword is a literal that is usually the first word in the syntax. In a CALL routine, the first two words are keywords.
In the following examples of SAS syntax, the keywords are the first words in the syntax:
CHAR (string, position)
CALL RANBIN (seed, n, p, x);
ALTER (alter-password)
BEST w.
REMOVE <data-set-name>
In the following example, the first two words of the CALL routine are the keywords:
CALL RANBIN(seed, n, p, x)
The syntax of some SAS statements consists of a single keyword without arguments:
DO;
... SAS code ...
END;
Some system options require that one of two keyword values be specified:
DUPLEX | NODUPLEX
argument
specifies a numeric or character constant, variable, or expression. Arguments follow the keyword or an equal sign after the keyword. The arguments are used by SAS to process the language element. Arguments can be required or optional. In the syntax, optional arguments are enclosed between angle brackets.
In the following example, string and position follow the keyword CHAR. These arguments are required arguments for the CHAR function:
CHAR (string, position)
Each argument has a value. In the following example of SAS code, the argument string has a value of 'summer', and the argument position has a value of 4:x=char('summer', 4);
In the following example, string and substring are required arguments, while modifiers and startpos are optional.
FIND(string, substring <,modifiers> <,startpos>
Note: In most cases, example code in SAS documentation is written in lowercase with a monospace font. You can use uppercase, lowercase, or mixed case in the code that you write.

Style Conventions

The style conventions that are used in documenting SAS syntax include uppercase bold, uppercase, and italic:
UPPERCASE BOLD
identifies SAS keywords such as the names of functions or statements. In the following example, the keyword ERROR is written in uppercase bold:
ERROR<message>;
UPPERCASE
identifies arguments that are literals.
In the following example of the CMPMODEL= system option, the literals include BOTH, CATALOG, and XML:
CMPMODEL = BOTH | CATALOG | XML
italics
identifies arguments or values that you supply. Items in italics represent user-supplied values that are either one of the following:
  • nonliteral arguments In the following example of the LINK statement, the argument label is a user-supplied value and is therefore written in italics:
    LINK label;
  • nonliteral values that are assigned to an argument
    In the following example of the FORMAT statement, the argument DEFAULT is assigned the variable default-format:
    FORMAT = variable-1 <, ..., variable-nformat><DEFAULT = default-format>;
Items in italics can also be the generic name for a list of arguments from which you can choose (for example, attribute-list). If more than one of an item in italics can be used, the items are expressed as item-1, ..., item-n.

Special Characters

The syntax of SAS language elements can contain the following special characters:
=
an equal sign identifies a value for a literal in some language elements such as system options.
In the following example of the MAPS system option, the equal sign sets the value of MAPS:
MAPS = location-of-maps
< >
angle brackets identify optional arguments. Any argument that is not enclosed in angle brackets is required.
In the following example of the CAT function, at least one item is required:
CAT (item-1 <, ..., item-n>)
|
a vertical bar indicates that you can choose one value from a group of values. Values that are separated by the vertical bar are mutually exclusive.
In the following example of the CMPMODEL= system option, you can choose only one of the arguments:
CMPMODEL = BOTH | CATALOG | XML
...
an ellipsis indicates that the argument or group of arguments following the ellipsis can be repeated. If the ellipsis and the following argument are enclosed in angle brackets, then the argument is optional.
In the following example of the CAT function, the ellipsis indicates that you can have multiple optional items:
CAT (item-1 <, ..., item-n>)
'value' or “value
indicates that an argument enclosed in single or double quotation marks must have a value that is also enclosed in single or double quotation marks.
In the following example of the FOOTNOTE statement, the argument text is enclosed in quotation marks:
FOOTNOTE <n> <ods-format-options 'text' | “text”>;
;
a semicolon indicates the end of a statement or CALL routine.
In the following example each statement ends with a semicolon: data namegame; length color name $8; color = 'black'; name = 'jack'; game = trim(color) || name; run;

References to SAS Libraries and External Files

Many SAS statements and other language elements refer to SAS libraries and external files. You can choose whether to make the reference through a logical name (a libref or fileref) or use the physical filename enclosed in quotation marks. If you use a logical name, you usually have a choice of using a SAS statement (LIBNAME or FILENAME) or the operating environment's control language to make the association. Several methods of referring to SAS libraries and external files are available, and some of these methods depend on your operating environment.
In the examples that use external files, SAS documentation uses the italicized phrase file-specification. In the examples that use SAS libraries, SAS documentation uses the italicized phrase SAS-library. Note that SAS-library is enclosed in quotation marks:
infile file-specification obs = 100;
libname libref 'SAS-library';