The directives .IF, .ELSIF, .ELSE and .ENDIF are used to instruct MMS to process selected lines in your description file. The .IF directive has the following format: .IF boolean-expression [description file line] ... {.ELSIF boolean-expression} [description file line] ... [.ELSE] [description file line] ... .ENDIF In this syntax, the "description file line" is zero or more description file lines that may include further .IF directives. The .IF directive may be followed by zero or any number of .ELSIF directives, and zero or one .ELSE directive. The .IF directive must always be accompanied by a matching .ENDIF directive. MMS evaluates the 'boolean-expression' specified with the .IF directive. If true, the lines of the description file between the .IF directive and a corresponding .ELSIF, .ELSE or .ENDIF are processed; then, if either .ELSIF or .ELSE were detected, all description file lines from this line to the corresponding .ENDIF directive are ignored. When the boolean-expression specified with the .IF directive is false, all description file lines from this point to a corresponding .ELSE, .ENDIF or .ELSIF whose associated 'boolean-expression' is true, are ignored. The 'boolean-expression' specified in .IF and .ELSIF directives is defined as follows: boolean-expression :== [ .NOT ] boolean-operation | [ .NOT ] boolean-operation boolean-operator boolean-expression boolean-operation :== ( boolean-expression ) | word | word comparison-operator word word :== null | any sequence of characters, terminated by space, and not starting with '.', '(' or ')'. boolean-operator :== .AND | .OR comparison-operator :== .EQ | .NE | .GE | .LE | .GT | .LT The operands in the 'boolean-expression' take one of two forms: .IF word or, .IF word1 .EQ word2 In the first case, MMS checks to see if 'word' is a macro that has been defined to a non-null value; the expression is true if it is, false otherwise. (NOTE: this is precisely the same functionality as that of the obsolete .IFDEF directive). For example, to check that the macro FRUIT is defined, write: .IF FRUIT In the second case, MMS performs the requested comparison between 'word1' and 'word2' to determine the expression value; the comparison operation is case-sensitive. Note that, when using macros and functions in expressions of this form, you must reference the macro or function in the standard way, in $(). For example, to check that the macro FRUIT is defined to be BANANAS, write: .IF $(FRUIT) .EQ BANANAS If you need to compare words that start with the characters '.', '(' or ')' or text containing layout characters then, enclose the words or text (on both sides of the comparison operator) in quotation-marks. For example, to check that the macro FILETYPE is defined as .MMS, and that the macro VERSION is not defined as 'Version 3.2', you must write: .IF "$(FILETYPE)" .EQ ".MMS" .AND "$(VERSION)" .NE "Version 3.2"