LSE$CLIHELP.HLB  —  DEFINE
    Defines the item specified by the option word.

    Format

      DEFINE   option

1  –  ADJUSTMENT

    Defines the behavior of the LSE viewing commands on individual
    lines of a source file.

    Format

      DEFINE ADJUSTMENT  adjustment-name [pattern]

1.1  –  Qualifiers

1.1.1    /COMPRESS

       /COMPRESS (D)
       /NOCOMPRESS

    Avoids compressing groups and overrides indentation. If a group
    of lines begins with a /NOCOMPRESS line, then the group is never
    compressed.

1.1.2    /COUNT

       /COUNT (D)
       /NOCOUNT

    Controls whether the matching line contributes to the line count
    for the group. When determining whether to form a group, the line
    count is compared with the minimum_lines value for the language.

    See the description for DEFINE LANGUAGE/OVERVIEW_OPTIONS=
    MINIMUM_LINES.

1.1.3    /CURRENT

       /CURRENT=number
       /CURRENT=0 (D)

    Adjusts the indentation of the current line. If a buffer line
    matches an adjustment defined with the /CURRENT qualifier, then
    the indentation of the buffer line is adjusted by the number of
    columns given as the qualifier value. A positive value causes the
    indentation to be adjusted to the right; a negative value causes
    the indentation to be adjusted to the left. For example, DEFINE
    ADJUSTMENT then /CURRENT=1 means "Adjust each line that begins
    with the word 'then' one column to the right."

    See the DEFINE LANGUAGE/OVERVIEW_OPTIONS=TAB_RANGE description.

1.1.4    /INHERIT

       /INHERIT=inherit-keyword
       /NOINHERIT (D)

    Specifies that the indentation for the current line is taken from
    the adjusted indentation of another line.

    You can specify one of the following keywords to determine the
    indentation of the current line:

    Keyword     Description

    MAXIMUM     The visible indentation for the current line is taken
                from the adjusted indentation of either the previous
                line or the next line, whichever is larger.

    MINIMUM     The visible indentation for the current line is taken
                from the adjusted indentation of either the previous
                line or the next line, whichever is smaller.

    NEXT        The visible indentation for the current line is taken
                from the adjusted indentation of the next line.

    PREVIOUS    The visible indentation for the current line is taken
                from the adjusted indentation of the previous line.

    You cannot specify the /INHERIT qualifier with either the /PREFIX
    qualifier or the /SUBSEQUENT qualifier.

1.1.5    /LANGUAGE

       /LANGUAGE=language-name

    Specifies the language associated with the indentation adjustment.
    By default, the new adjustment is associated with the language for
    the current buffer. If there is no language associated with the
    current buffer, then the /LANGUAGE qualifier is required.

1.1.6    /OVERVIEW

       /OVERVIEW (D)
       /NOOVERVIEW

    Controls whether or not the text of the line is used as the
    overview line. If a line matches an adjustment defined with the
    /NOOVERVIEW qualifier, then the text of the line is never used
    as the overview text for compressed lines. Instead, text from a
    later line is used as the overview text. The /NOOVERVIEW qualifier
    is used to prevent uninformative text from appearing in overview
    lines.

1.1.7    /PREFIX

       /PREFIX=(indentation-value, adjustment-value)
       /NOPREFIX (D)

    Provides a way to skip a pattern at the beginning of a line
    to determine indentation or influence adjustment. The /PREFIX
    qualifier takes the following pair of values:

       Indentation-value
       Adjustment-value

    Indentation-value is one of the following keywords:

    o  CURRENT-Instructs LSE to use the indentation of the first text
       in the pattern-the beginning of the prefix.

    o  FOLLOWING-Instructs LSE to use the indentation of the text that
       follows the prefix. If there is no text after the prefix, use
       the indentation of the prefix.

    Adjustment-value is one of the following keywords:

    o  CURRENT-Instructs LSE to use the adjustment qualifier values
       given on the current definition.

    o  FOLLOWING-Instructs LSE to use the adjustment qualifier values
       from the definition that matches the text following the prefix.
       If no text follows the prefix on the current line, LSE uses the
       qualifier values for a blank line. If /PREFIX has an adjustment
       value of FOLLOWING, other action qualifiers on the definition
       are ignored.

    The combination (CURRENT,CURRENT) is not useful because it causes
    both the indentation and the adjustments to be taken from the text
    at the beginning of the pattern. This is the same as having no
    prefix at all.

    You cannot specify the /PREFIX qualifier with the /INHERIT
    qualifier.

1.1.8    /SUBSEQUENT

       /SUBSEQUENT=number
       /SUBSEQUENT=0 (D)

    Adjusts the indentation of lines after the current line. If a
    buffer line matches an adjustment defined with the /SUBSEQUENT
    qualifier, then the indentation of all lines after the given
    one are adjusted by the number of columns given as the qualifier
    value. A positive value causes the indentation to be adjusted to
    the right; a negative value causes the indentation to be adjusted
    to the left.

    Use the /SUBSEQUENT qualifier for language constructs that denote
    nesting and have well-defined endpoints. Use a positive value at
    the beginning of the construct and a negative value at the end.

    You cannot specify the /SUBSEQUENT qualifier with the /INHERIT
    qualifier.

1.1.9    /UNIT

       /UNIT
       /NOUNIT (D)

    Treats consecutive lines as a single unit. If consecutive lines in
    the buffer match adjustments defined with the /UNIT qualifier and
    have the same adjusted indentation, then the sequence of lines is
    treated as one group, with the first serving as the overview line.
    Notice that it is not required that all elements of the group
    match the same adjustment definition; it is only required that the
    /UNIT qualifier be specified on all the definitions.

1.2  –  Parameters

 adjustment-name
    Specifies the name of the adjustment being defined.

 pattern
    Specifes the string that LSE compares against source lines. If no
    pattern is used, the adjustment-name parameter is used.

    Pattern strings match any string that can be specified directly
    on the command line. Strings with special characters must be
    enclosed in quotes (" ").  Whether the string is quoted or not,
    the comparison is case-insensitive. You must use the "$()"
    convention to enclose named pattern elements.

    Definitions with literal strings take precedence over definitions
    with predefined patterns.

    A list of predefined patterns follows:

    o  COLUMN=(first-column[,last-column])-Limits the column in which
       the text may start.

       You can specify either the first column or both the first
       column and the last column. If you specify both the first
       and last columns, you must enclose the column values in
       parentheses. If you do not specify the last column, it takes
       its default from the first column.

    o  IDENTIFIER-Matches a sequence of identifier characters.

    o  LINE_END-Matches the end of a line, optionally preceeded by
       white space.

    o  OPTIONAL_SPACE-Matches any sequence of spaces and tabs.

    o  FORMFEED-Matches a form-feed character.

    o  FORTRAN_COMMENT-Matches only FORTRAN comment lines.

    o  FORTRAN_FUNCTION- Matches the first line of any FORTRAN
       function subprogram. That is defined to be any line that
       matches the following pattern:

             type [*number] FUNCTION

       where

             type :==        BYTE
                         |   LOGICAL
                         |   INTEGER
                         |   REAL
                         |   DOUBLE PRECISION
                         |   COMPLEX
                         |   DOUBLE COMPLEX
                         |   CHARACTER

             NUMBER :==     {DIGIT}...
                         |   (*)

    o  PREFIX-The preceding part of the pattern is a prefix.

    o  NUMBER-Matches any sequence of digits. White space may not
       appear between digits. In the case of a match with both NUMBER
       and IDENTIFIER, NUMBER takes precedence.

2  –  ALIAS

    Lets you assign an abbreviated sequence of characters to represent
    a longer string of text. You may then use the EXPAND command to
    produce the longer string each time the cursor is at the end of
    the abbreviated sequence.

    Format

      DEFINE ALIAS   alias-name [value]

2.1  –  Qualifiers

2.1.1    /INDICATED

    Instructs LSE to interpret the contiguous sequence of characters
    before and after the cursor as the alias (long form) for an alias
    name (short form) that you supply. To specify which characters
    are valid in an alias name for the language you are using, issue a
    DEFINE LANGUAGE command with the /IDENTIFIER_CHARACTERS qualifier.

    When you use the /INDICATED qualifier, you must not specify the
    value parameter.

2.1.2    /LANGUAGE

       /LANGUAGE=language-name

    Specifies the language associated with the alias. The default is
    the language for the current buffer.

2.2  –  Parameters

 alias-name
    Specifies the name to be defined as an alias. The characters in
    the alias name must be in the /IDENTIFIER_CHARACTERS string in the
    DEFINE LANGUAGE command.

 value
    Specifies a quoted string. When you expand the alias, LSE replaces
    the alias name with the string given by the value parameter.
    You must not use a value parameter if you specify the /INDICATED
    qualifier.

3  –  COMMAND

    Defines a user command or an abbreviation for an LSE command.

    Format

      DEFINE COMMAND   command-name    value-string

3.1  –  Parameters

 command-name
    Specifies the name to be defined as a command. A command name may
    contain up to 255 characters, but must begin with a letter, an
    underscore, or a dollar sign. After the first character, you may
    use any combination of alphanumeric characters, underscores, or
    dollar signs.

 value-string
    Specifies a quoted string containing an LSE command or the leading
    portion of an LSE command.

4  –  KEY

    Binds an LSE command to a key.

    Format

      DEFINE KEY   key-specifier    string

4.1  –  Qualifiers

4.1.1    /DIALOG

    Specifies that a dialog box should be used to prompt the user
    for parameters and qualifier values. The command parameters are
    optional if this qualifier is specified. If command parameters
    and qualifiers are specified with the /DIALOG qualifier, the
    parameters and qualifiers are used to set the initial state of
    the dialog box.

4.1.2    /IF_STATE

       /IF_STATE=GOLD
       /NOIF_STATE (D)

    Specifies that the key definition applies only to the GOLD (PF1)
    state.

4.1.3    /LEARN

    Indicates that a sequence of keystrokes, called a learn sequence,
    defines the command to be bound to a key. You must type the
    keystroke sequence immediately after the command and end the
    sequence by specifying the END DEFINE command. If you are using
    the EVE keypad, CTRL/R is bound to the END DEFINE command by
    default. However, you do not have to define a key to be the
    END DEFINE command to use the DEFINE KEY/LEARN command. When LSE
    records the learn sequence, the key being defined by the DEFINE
    KEY/LEARN command binds to the END DEFINE command. Therefore, you
    can press the key that you are defining to end the learn sequence.

    When executing the stored sequence, LSE includes your responses to
    all prompts but does not prompt you again for such information as
    the string for a SEARCH command.

    You may not use a learn sequence to enter a key definition while
    another key is in the process of being defined by another learn
    sequence.

4.1.4    /LEGEND

       /LEGEND=string
       /LEGEND=?

    Specifies the text that appears in the keypad diagram for
    this key. The string is centered in the figure for the key, or
    truncated if the string is too long for the figure.

    If you do not specify the /LEGEND qualifier with a string, the
    default is /LEGEND=?.

4.1.5    /REMARK

       /REMARK=(string, . . . )

    Specifies the explanatory text that is displayed when you issue a
    SHOW KEY/FULL command.

4.1.6    /STATE

       /STATE=GOLD

    Moves the functionality of the GOLD (PF1) key to the named key.
    You cannot specify the string parameter with the /STATE=GOLD
    qualifier.

4.1.7    /TOPIC_STRING

       /TOPIC_STRING=string
       /TOPIC_STRING=No_Topic (D)

    Specifies the string that the editor uses to retrieve help text
    for this key for display through the HELP /KEYPAD command.

    If you do not specify a string with the /TOPIC_STRING qualifier,
    the default is /TOPIC_STRING=No_Topic.

4.2  –  Parameter

 key-specifier
    Specifies a keyword that indicates the key to be defined. If you
    use the DEFINE KEY command to change the definition of a key that
    was previously defined, LSE does not save the previous definition.

 string
    Specifies an LSE command to be executed when the key is pressed.
    This is a required parameter unless you use the /LEARN qualifier;
    you cannot use the string parameter with either the /LEARN
    qualifier or the /STATE=GOLD qualifier.

5  –  KEYWORDS

    Defines the indicated keyword list.

    Format

      DEFINE KEYWORDS  keyword-list-name

      keyword [/DESCRIPTION=text]

         .
         .
         .

      keyword [/DESCRIPTION=text]

      END DEFINE

5.1  –  Qualifier

5.1.1    /DESCRIPTION

       /DESCRIPTION=text

    Indicates the text to be associated with the individual keyword.

5.2  –  Parameters

 keyword-list-name
    Identifies the keyword list. The name must follow the rules
    applied to token names in LSE. You can then use the name as the
    value you specify for the /KEYWORDS qualifier to the DEFINE TAG
    command, as well as the parameter for the DELETE KEYWORDS, EXTRACT
    KEYWORDS, and SHOW KEYWORDS commands.

 keyword
    Names an individual keyword. Each keyword on the list must appear
    on a line by itself. You cannot use continuation characters
    between the lines for each keyword, but you can use a continuation
    character between a particular keyword and its associated
    qualifier.

6  –  LANGUAGE

    Specifies the characteristics of a language.

    Format

      DEFINE LANGUAGE   language-name

6.1  –  Qualifiers

6.1.1    /CAPABILITIES

       /CAPABILITIES=DIAGNOSTICS
       /CAPABILITIES=NODIAGNOSTICS (D)

    Specifies whether the compiler can generate diagnostic files.

6.1.2    /COMMENT

       /COMMENT=(specifier, . . . )

    Specifies the character sequences of comments in the language. The
    specifiers are as follows:

    o  ASSOCIATED_IDENTIFIER=keyword

       Indicates the preferred association of comments to identifier.
       You can specify one of the following values:

       -  NEXT-Indicates that comments should be associated with the
          next identifier.

       -  PREVIOUS-Indicates that comments should be associated with
          the preceding identifier.

    o  BEGIN=list of quoted strings

       END=list of quoted strings

       Defines the character sequences that start and end bracketed
       comments. A bracketed comment begins and ends with explicit
       comment delimiters. (Note that the beginning and ending comment
       delimiters can be the same, but need not be.) The list provided
       with the specifiers BEGIN and END can be any of the following:

       -  A string that is the one open comment sequence for the
          language. You must enclose this in quotes.

       -  A parenthesized list of strings, each one of which can be
          an open comment sequence for the language. You must enclose
          each one in quotes.

       The list accompanying the BEGIN specifier must be consistent
       with the list accompanying the END specifier. If the BEGIN
       specifier lists a string, then the END specifier must also list
       a string.

       Bracketed comments are recognized by the formatting commands
       (see the ALIGN and FILL commands) and placeholder operations
       (see the ERASE PLACEHOLDER command and the /DUPLICATION
       qualifier of the DEFINE PLACEHOLDER command).

    o  TRAILING=list of quoted strings

       Defines the character sequence that introduces line-oriented
       comments. A line-oriented comment begins with a special
       character sequence (consisting of one or more characters)
       and ends at the end of the line. The list provided with the
       TRAILING specifier can be any of the following:

       -  A string that is the one-line comment sequence for the
          language.

       -  A list of strings enclosed in parentheses; each string can
          be a line-comment sequence for the language.

       Line comments are recognized by the formatting commands and
       placeholder operations, just as bracketed comments are.

    o  LINE=list of quoted strings

       Requires that the comment delimiter be the first character that
       is not blank on the line. The LINE specifier is particularly
       useful with block comments, such as the following:

              /*
              ** Here is the inside of a comment
              ** which has LINE="**" specified
              */

    o  FIXED=quoted string, column number

       Used for languages that require that a specific comment
       delimiter be placed in a specific column, such as FIXED=("*",1)
       for COBOL.

    Note that for the specifier you cannot use any character that you
    used in the /PLACEHOLDER delimiter-specification.

6.1.3    /COMPILE_COMMAND

       /COMPILE_COMMAND=string

    Specifies the default command string for the COMPILE command. (See
    the explanation of the command-string parameter in the COMPILE
    command entry.)

6.1.4    /EXPAND_CASE

       /EXPAND_CASE=AS_IS (D)
       /EXPAND_CASE=LOWER
       /EXPAND_CASE=UPPER

    Specifies the case of the text of the inserted template. AS_
    IS specifies that the inserted template be expanded according
    to the case in the token or placeholder definition. LOWER and
    UPPER specify that the inserted template be expanded lowercase or
    uppercase, respectively.

6.1.5    /FILE_TYPES

       /FILE_TYPES=(file-type[, . . . ])

    Specifies a list of file types that are valid for the language
    being defined. The file types must be enclosed in quoted strings.
    When LSE reads a file into a buffer, it sets the language for that
    buffer automatically if it recognizes the file type. For example,
    a FORTRAN file type (.FOR) sets the language to FORTRAN. Note that
    the period character must be included with the file type.

6.1.6    /FORTRAN

       /FORTRAN=ANSI_FORMAT
       /FORTRAN=NOANSI_FORMAT (D)

    Specifies special processing for ANSI FORTRAN. Note that some
    commands behave differently when you use the /FORTRAN qualifier.
    Specifying NOANSI_FORMAT causes LSE to insert templates in non-
    ANSI (tab) format.

6.1.7    /HELP_LIBRARY

       /HELP_LIBRARY=file-spec
       /NOHELP_LIBRARY (D)

    Specifies the HELP library where you can find help text for
    placeholders and tokens defined in this language. LSE applies
    the default file specification SYS$HELP:HELPLIB.HLB. If you want
    to access some HELP library other than SYS$HELP, you must supply
    an explicit device name.

6.1.8    /IDENTIFIER_CHARACTERS

       /IDENTIFIER_CHARACTERS=string

    Specifies the characters that may appear in token and alias names
    in that language. This list of characters is used in various
    contexts for the /INDICATED qualifier.

    The list of identifier characters also determines what LSE
    considers to be a word. A word is a sequence of identifier
    characters, possibly followed by one or more blanks. All nonblank,
    nonidentifier characters are considered to be distinct words.

    If you do not specify the /IDENTIFIER_CHARACTERS qualifier, LSE
    supplies the following values by default:

      "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ%$_0123456789"

6.1.9    /INITIAL_STRING

       /INITIAL_STRING=string

    Specifies the initial text that is to appear in a newly created
    buffer.

6.1.10    /LEFT_MARGIN

       /LEFT_MARGIN=n
       /LEFT_MARGIN=1 (D)
       /LEFT_MARGIN=CONTEXT_DEPENDENT

    Specifies the left margin setting that is to be associated with
    the language.

    If you specify CONTEXT_DEPENDENT as the column number, then LSE
    uses the indentation of the current line to determine the left
    margin when you use the /WRAP qualifier. When you use the FILL
    command, LSE uses the indentation of the first line of each
    selected paragraph to determine the left margin.

6.1.11    /OVERVIEW_OPTIONS

       /OVERVIEW_OPTIONS=(MINIMUM_LINES=m, TAB_RANGE=(t1,t2))

    Specifies both the minimum number of lines an overview line must
    hide and the range of acceptable tab increments.

    The specifiers are as follows:

    o  MINIMUM_LINES=m

       Specifies the minimum number of lines an overview line must
       hide. The default is 1. For example, if the value of the
       parameter on MINIMUM_LINES is 5, then a line hides other lines
       only if there are at least five lines to hide. This specifier
       helps the user to avoid having very small source-line groups,
       and thus to avoid many expansion levels.

    o  TAB_RANGE=(t1,t2)

       The TAB_RANGE specifier indicates the range of tab values for
       which the adjustment definitions are valid. The default is
       (4,8). The second value must be at least twice the first value;
       both values must be positive. For example, if the tab range
       is (4,8), then LSE assumes that the adjustment definitions
       will work for any DEFINE LANGUAGE/TAB_INCREMENT value from 4
       to 8 inclusive. If you specify a /TAB_INCREMENT value outside
       the tab range, then LSE recomputes indentation to make the
       adjustments work.

       For best performance, it is recommended that you avoid
       recomputation by choosing a range that covers reasonable
       values. The numbers specified for the DEFINE ADJUSTMENT/CURRENT
       and DEFINE ADJUSTMENT/SUBSEQUENT commands must work for any tab
       increment value in the tab range.

6.1.12    /PLACEHOLDER_DELIMITERS

       /PLACEHOLDER_DELIMITERS=(delimiter-specification[, . . . ])

    Specifies starting and ending strings that delimit placeholders.
    Placeholders can specify single constructs or lists of constructs.
    The delimiters for each type of placeholder are specified as
    a pair of quoted strings separated by commas and enclosed in
    parentheses.

    The format of a delimiter specification is as follows:

    keyword=(starting-string,ending-string)

    Possible keywords are REQUIRED, REQUIRED_LIST, OPTIONAL, OPTIONAL_
    LIST, or PSEUDOCODE. If you do not use the PSEUDOCODE keyword, the
    default is NOPSEUDOCODE. The maximum length of these strings is
    seven characters.

    The following is an example of a complete set of placeholder
    delimiter specifications:

      /PLACEHOLDER_DELIMITERS = ( -
       REQUIRED =("{<",">}"), -
       REQUIRED_LIST=("{<",">}..."), -
       OPTIONAL =("[<",">]"), -
       OPTIONAL_LIST=("[<",">]..."), -
       PSEUDOCODE=("«" , "»"))

    If any of the five keywords are not specified with the
    /PLACEHOLDER_DELIMITERS qualifier, LSE applies the following
    defaults:

      /PLACEHOLDER_DELIMITERS = ( -
       REQUIRED =("{","}"), -
       REQUIRED_LIST=("{","}..."), -
       OPTIONAL =("[","]"), -
       OPTIONAL_LIST=("[","]..."), -
       NOPSEUDOCODE)

    The placeholder delimiters that are accepted by each compiler are
    as follows:

    ADA: { } , { }... , [ ] , [ ]... , « » , <| |>

    BASIC: { } , { }... , [ ] , [ ]... , « » , << >>

    BLISS: {~ ~} , {~ ~}... , [~ ~] , [~ ~]... , «» , <~ ~>

    C: {@ @} , {@ @}... , [@ @] , [@ @]... , «» , <@ @>

    COBOL: { } , { }... , [ ] , [ ]... , « » , << >>

    FORTRAN: { } , { }... , [ ] , [ ]... , « » , << >>

    PASCAL: %{ }% , %{ }%... , %[ ]% , %[ ]%... , « » , %< >%

    PL1: { } , { }... , [ ] , [ ]... , « » , << >>

    Note that for the specifier you cannot use any character that you
    used in the /COMMENT specifier.

6.1.13    /PUNCTUATION_CHARACTERS

       /PUNCTUATION_CHARACTERS=string
       /PUNCTUATION_CHARACTERS=",;()" (D)

    Specifies the characters that are considered punctuation marks,
    or delimiters, in the language. When a placeholder name and its
    enclosing brackets are deleted, preceding white space is also
    deleted if there are punctuation characters to delimit the program
    constructs.

6.1.14    /QUOTED_ITEM

       /QUOTED_ITEM=(QUOTES=string [,ESCAPES=string])
       /NOQUOTED_ITEM (D)

    Describes the syntax of certain language elements, such as
    strings, that require special handling for proper text formatting.
    LSE uses the /QUOTED_ITEM qualifier to detect comments properly.
    LSE does not acknowledge comment strings that occur within quoted
    items, nor does it acknowledge quoted elements that occur within
    comments.

    The value of the /QUOTED_ITEM qualifier indicates the syntax of a
    quoted item. This value must be a keyword list. The keywords are
    as follows:

    o  QUOTES

       This keyword is required and must have an explicit value.
       The value must be a quoted string denoting all of the quote
       characters in the language. LSE assumes that quoted items begin
       and end with the same character.

    o  ESCAPES

       This keyword is optional. If given, then the value is required
       and must be a quoted string containing the escape characters
       for quoted items. Some languages use escape characters to
       insert quote characters into strings. For example, C uses
       the backslash (\)  as an escape character. If you omit this
       keyword, then LSE assumes that the language inserts quote
       characters into strings by doubling them.

6.1.15    /RIGHT_MARGIN

       /RIGHT_MARGIN=n
       /RIGHT_MARGIN=80 (D)

    Specifies the right margin setting that is to be associated with
    the language. By default, the right margin is set at column 80.

6.1.16    /TAB_INCREMENT

       /TAB_INCREMENT=n
       /TAB_INCREMENT=4 (D)

    Specifies that tab stops be set every n columns, beginning with
    column 1.

6.1.17    /TAG_TERMINATORS

       /TAG_TERMINATORS=(string[, . . . ])
       /TAG_TERMINATORS=(":") (D)

    Specifies the character sequences that you an use to terminate a
    tag. You can use each string in the list of strings to terminate
    a tag. When you use the /DESIGN=COMMENTS qualifier to compile
    programs, the compiler uses this information to detect tags inside
    of comments.

    You must not specify a string that ends in whitespace (space
    characters or tabs). Compilers always allow whitespace between a
    tag name and the tag terminator characters. If you want to require
    whitespace between the tag and the tag terminator string, use
    a space character as the first character of the tag terminator
    string. HP does not recommend the use of embedded whitespace.

6.1.18    /TOPIC_STRING

       /TOPIC_STRING=string

    Specifies a prefix string to be concatenated to the /TOPIC_
    STRING qualifier specified in a placeholder or token definition
    before LSE looks up the help text for that placeholder or token.
    (Typically, this is the name of the language in the HELP library.)

6.1.19    /VERSION

       /VERSION=string

    Specifies a string that represents the version number of the
    tokens and placeholders associated with this language. You use
    the SHOW LANGUAGE command to display this string.

6.1.20    /WRAP

       /WRAP
       /NOWRAP (D)

    Specifies whether text should be wrapped to a new line when you
    are typing beyond the right margin of the current line. The
    /NOWRAP qualifier disables such text wrapping.

6.2  –  Parameter

 language-name
    Specifies the name of the language whose characteristics are to be
    defined.

7  –  PACKAGE

    Defines a subroutine package for which subroutine call templates
    are automatically generated.

    Format

      DEFINE PACKAGE   package-name

7.1  –  Qualifiers

7.1.1    /HELP_LIBRARY

       /HELP_LIBRARY=file-spec

    Specifies the HELP file (.HLB file) where you can find help text
    for placeholders and tokens defined for this package. If omitted,
    then no HELP file is associated with the package.

    LSE applies the default file specification SYS$HELP:HELPLIB.HLB.
    If you want to access some device or directory other than
    SYS$HELP, you must supply an explicit device and directory name.

7.1.2    /LANGUAGE

       /LANGUAGE=(language1 [, . . . ])

    Specifies the languages from which LSE can use package entries.
    If you do not specify a language, then LSE uses the language of
    the current buffer. If no language is associated with the current
    buffer, then an error occurs.

7.1.3    /PARAMETER_EXPAND

       /PARAMETER_EXPAND=TPU_procedure_prefix

    Lets you customize calling sequences. Normally LSE uses a fixed
    algorithm to produce the appropriate placeholder definitions
    from the DEFINE PARAMETER command. If the default algorithm is
    inadequate, then you can supply explicit VAXTPU procedures to
    produce the DEFINE PLACEHOLDER command that you want.

    The argument provided with the /PARAMETER_EXPAND qualifier must
    be the prefix of a VAXTPU procedure name. Whenever LSE expands a
    parameter, it concatenates this prefix and the current language
    name, and looks for a VAXTPU procedure by that name.

7.1.4    /ROUTINE_EXPAND

       /ROUTINE_EXPAND=TPU_procedure_prefix

    Lets you customize calling sequences. Normally LSE uses a fixed
    algorithm to produce the appropriate token and placeholder
    definitions from the DEFINE ROUTINE command. If the default
    algorithm is inadequate, then you can supply explicit VAXTPU
    procedures to produce the DEFINE PLACEHOLDER or DEFINE TOKEN
    commands that you want.

    The argument provided with the /ROUTINE_EXPAND qualifier must
    be the prefix of a VAXTPU procedure name. Whenever LSE expands
    a routine, it concatenates this prefix and the current language
    name, and looks for a VAXTPU procedure by that name. For example,
    if you specify /ROUTINE_EXPAND=my_routine_expand_ and the current
    language is FORTRAN, then LSE looks for a VAXTPU procedure named
    my_routine_expand_fortran.

7.1.5    /TOPIC_STRING

       /TOPIC_STRING=string

    Specifies a prefix string to be concatenated to the TOPIC_STRING
    specified for tokens and placeholders associated with the routine
    or parameter definitions. If omitted, then the null string is used
    as the topic string. LSE uses the topic string to look up help
    text for the package.

7.2  –  Parameter

 package-name
    Specifies the name of the package being defined.

8  –  PARAMETER

    Defines a parameter within a package.

    Format

      DEFINE PARAMETER   param-name

8.1  –  Qualifier

8.1.1    /PACKAGE

       /PACKAGE=package-name

    Specifies the name of the package with which the parameter is
    associated. You must specify this qualifier.

8.2  –  Parameter

 param-name
    Specifies the name of the parameter. This name must be unique
    among the tokens of any language from which the package is used.

9  –  PLACEHOLDER

    Creates a placeholder for use with a specific language and
    establishes the characteristics of that placeholder.

    Format

      DEFINE PLACEHOLDER   placeholder-name

      placeholder body

      END DEFINE

      or

      DEFINE PLACEHOLDER   placeholder-name

      /PLACEHOLDER=  other-placeholder

9.1  –  Qualifiers

9.1.1    /AUTO_SUBSTITUTE

       /AUTO_SUBSTITUTE
       /NOAUTO_SUBSTITUTE (D)

    Specifies whether you want the next placeholder with this name
    to be replaced with the same text you typed over the current
    placeholder.

9.1.2    /DESCRIPTION

       /DESCRIPTION=string

    Specifies a single line of text to be displayed along with the
    placeholder name when the placeholder name appears in a menu
    during an EXPAND operation.

9.1.3    /DUPLICATION

       /DUPLICATION=specifier
       /DUPLICATION=CONTEXT_DEPENDENT (D)

    Specifies the type of duplication to be performed when the
    placeholder is duplicated (either by expanding it or by typing
    over it). The specifier is one of the following keywords:

    o  CONTEXT_DEPENDENT

       If the placeholder is the only item within its segment (that
       is, if it is either the only item before or the only item
       within a trailing comment), then LSE duplicates it vertically
       (see the VERTICAL keyword in this list). Otherwise, LSE
       duplicates it horizontally. White space may precede or follow
       the placeholder.

    o  HORIZONTAL

       LSE places the duplicate immediately to the right of the
       original. If you specify a separation string, LSE places the
       string between the original and the duplicate.

    o  VERTICAL

       LSE places the duplicate on the next line, immediately under
       the original. If a separation string is specified, LSE places
       it at the end of the original. If the original placeholder is
       in the commented segment of the line, then LSE also duplicates
       the comment delimiters directly underneath the delimiters
       in the original line. If necessary, LSE adds close comment
       delimiters to the original line to close a bracketed comment on
       that line.

9.1.4    /LANGUAGE

       /LANGUAGE=language-name

    Specifies the language associated with the placeholder. By
    default, the new placeholder is defined for use with the current
    buffer's language.

9.1.5    /LEADING

       /LEADING=string

    Specifies any leading text to be associated with the placeholder.
    The ERASE PLACEHOLDER command recognizes this text and erases it
    along with the placeholder. The leading text must not have any
    trailing blank spaces because the ERASE PLACEHOLDER command always
    skips over such spaces.

9.1.6    /PLACEHOLDER

       /PLACEHOLDER=other-placeholder

    Specifies the name of another defined placeholder from which this
    placeholder inherits its definition. A placeholder defined with
    the /PLACEHOLDER qualifier may not be named on the /PLACEHOLDER
    qualifier of any other definition. The /PLACEHOLDER qualifier is
    mutually exclusive with all other qualifiers except the /LANGUAGE
    qualifier.

9.1.7    /PSEUDOCODE

       /PSEUDOCODE (D)
       /NOPSEUDOCODE

    Specifies whether pseudocode can be entered at a specific
    placeholder. If you specify the /NOPSEUDOCODE qualifier for a
    placeholder, that placeholder cannot be used with pseudocode.

9.1.8    /SEPARATOR

       /SEPARATOR=string

    Specifies the string that separates each duplication of the
    placeholder. See the /DUPLICATION qualifier description.

9.1.9    /TOPIC_STRING

       /TOPIC_STRING=string

    Specifies a quoted string that LSE uses to retrieve help text
    for this placeholder. This string is appended to the string you
    specify with the /TOPIC_STRING qualifier of the DEFINE LANGUAGE
    command to form the complete string of topics that LSE uses for
    looking up the help text for this placeholder.

9.1.10    /TRAILING

       /TRAILING=string

    Specifies any trailing text to be associated with the placeholder.
    The ERASE PLACEHOLDER command recognizes this text and erases it
    along with the placeholder. The trailing text must not have any
    leading blank spaces because the ERASE PLACEHOLDER command always
    skips over such spaces.

9.1.11    /TYPE

       /TYPE=type-specifier
       /TYPE=NONTERMINAL (D)

    Specifies the kind of placeholder being defined. The type
    specifier may be NONTERMINAL, MENU, or TERMINAL.

9.2  –  Parameters

 placeholder-name
    Specifies the name of the placeholder being defined. A placeholder
    name must be unique within a language and can be a quoted string.
    To redefine an existing placeholder, you must first delete it
    using the DELETE PLACEHOLDER command.

 placeholder body
    Is the body of the placeholder being defined. The interpretation
    of the placeholder body depends on the type of placeholder. LSE
    displays the body of a terminal placeholder when you attempt to
    expand the placeholder. Note that displaying this text does not
    replace the terminal placeholder and its delimiters.

    The body of a nonterminal placeholder is the text of the
    placeholder expansion; when a nonterminal placeholder is expanded,
    the placeholder name and enclosing delimiters are replaced with
    the text of the placeholder body.

    A nonterminal placeholder can have more than one quoted string in
    each body line. For the expansion of the placeholder, you can set
    the indentation of each string by using the /INDENTATION qualifier
    and its associated keywords.

    Each quoted string in the body line of a nonterminal placeholder
    can take the qualifier and keywords described in the following
    section.

    Nonterminal Body Qualifier

    /INDENTATION=(keyword1 [,integer1, keyword2])

    keyword1

    You can specify any of the following options for keyword1:

    Option      Description

    EXPAND      Indents the string to the column of the first
                character of the nonterminal placeholder being
                expanded. This is the default value if the first body
                line is not a null string.

    CURRENT     Indents the string to the indentation of the line
                containing the placeholder or token. This is the
                default value if the first body line is a null string.

    PREVIOUS    Indents the string to the indentation of the line
                before the line containing the placeholder or token.

    FIXED       Indents the string to the specified column.

    integer1

    You can specify any integer for the integer1 option. The default
    is 0. The integer is added to the column position as specified by
    keyword1 and adjusts the indentation by that number of columns.
    The integer can be negative. When the value for keyword1 is FIXED,
    integer1 specifies the column position at which to put body text;
    it must be positive.

    keyword2

    You can specify any of the following options for keyword2:

    Option    Description

    TAB       Specifies that integer1 should be interpreted as
              specifying an adjustment in terms of tab increments
              rather than columns. Integer1 is multiplied by the
              tab increment for the buffer before it is added to the
              column specified by keyword1.

    SPACE     Specifies that integer1 should be interpreted as
              specifying an adjustment in terms of spaces. This is
              the default.

    Note that you cannot specify keyword2 when keyword1 has a FIXED
    value.

    If there is more than one quoted string in a body line, a comma
    must separate the strings. For FORTRAN, if the body line is inside
    of a comment or there is a tab in the body lines, the /INDENTATION
    qualifier and associated keywords do not take effect for the first
    quoted string for each body line.

    For more information about the use of the /INDENTATION qualifier,
    see the examples for the EXPAND command.

    Each line of the body of a menu placeholder represents one option
    in the menu. An option can be a string of text, a placeholder
    name, or a token name. If the option is a string of text, it
    must appear in quotes. If the option is a placeholder name or a
    token name and does not appear in quotes, that placeholder name or
    token name appears in uppercase letters in the menu display. For
    a placeholder name or token name to appear in lowercase letters
    in a menu, you must enter the placeholder name or token name as a
    lowercase quoted string.

    Each line in the body of a menu placeholder may take one or more
    of the following qualifiers:

    Menu Body Qualifiers  Default

    /DESCRIPTION=string
    /[NO]LIST             /NOLIST
    /PLACEHOLDER
    /TOKEN

    /DESCRIPTION=string

    Specifies a description string that is displayed in the right-
    hand column of the menu. If this qualifier is omitted, then LSE
    gets the description string from the corresponding definition if
    the line has either the /TOKEN or the /PLACEHOLDER qualifier. If
    neither /TOKEN nor /PLACEHOLDER is specified, then the line is a
    literal string and the value of the /DESCRIPTION string defaults
    to the empty string.

    /LIST
    /NOLIST (D)

    Specifies whether the delimiters for the placeholder should be
    list delimiters or not. Use this qualifier only in conjunction
    with the /PLACEHOLDER qualifier.

    /PLACEHOLDER

    Specifies that the name or string is the name of a placeholder in
    the language. This qualifier is mutually exclusive with the /TOKEN
    qualifier.

    /TOKEN

    Specifies that the name or string is the name of a token in
    the language. This qualifier is mutually exclusive with the
    /PLACEHOLDER and /[NO]LIST qualifiers.

10  –  ROUTINE

    Defines templates for a routine contained within a subroutine
    package.

    Format

      DEFINE ROUTINE   routine-name [parameter, . . . ]

10.1  –  Qualifiers

10.1.1    /DESCRIPTION

       /DESCRIPTION=string

    Specifies a single line of text to be displayed along with the
    routine name when the routine name appears in a menu during an
    EXPAND operation. The string is also passed to the /ROUTINE_
    EXPAND procedure, if any. (The default algorithm for producing
    routine calls from DEFINE ROUTINE commands does not make use of
    this value.)

10.1.2    /PACKAGE

       /PACKAGE=package_name

    Specifies the name of the package with which the routine is
    associated. You must specify this qualifier.

10.1.3    /TOPIC_STRING

       /TOPIC_STRING=string

    Specifies a quoted string that LSE uses to retrieve help text for
    this routine.

10.2  –  Parameters

 routine-name
    Specifies the name of the routine. Routine names must be unique
    within a package. Furthermore, routine names may not conflict with
    any token names used by LSE for any language using the package.

 parameter, . . .
    Specifies the names of the parameters of the routine. These
    parameters must be defined (using the DEFINE PARAMETER command)
    prior to expanding an instance of a call on this routine. However,
    the parameters do not need to be defined prior to the DEFINE
    ROUTINE command. If you omit this qualifier, then the routine
    is presumed to have no parameters.

    The following qualifiers are position-sensitive; they may be used
    only with the list of parameters to the routine.

    /BY_VALUE

    Indicates that the parameter is passed by value.

    /BY_REFERENCE

    Indicates that the parameter is passed by address.

    /BY_DESCRIPTOR

    Indicates that the address of the parameter descriptor is passed.

    /[NO]OPTIONAL

    Specifies whether the parameter is required or optional. The
    default is /NOOPTIONAL.

    The /BY_VALUE, /BY_REFERENCE, and /BY_DESCRIPTOR qualifiers are
    mutually exclusive. These qualifiers are used primarily for
    languages, such as COBOL, that require explicit specification
    of passing mechanisms for routine calls.

11  –  TAG

    Defines the specified tag.

    Format

      DEFINE TAG   tag-name

11.1  –  Qualifiers

11.1.1    /EMPTY

       /EMPTY=string-list
       /EMPTY="None" (D)

    Specifies one or more strings that indicate that a use of the
    structured tag has no subtags. If you do not specify the /EMPTY
    qualifier, then there will be no way to explicitly indicate that
    an occurrence of the tag is empty. You can always use implicitly
    empty tags by starting a new top-level tag after the current top-
    level tag, or by terminating the comment block.

    You use this qualifier only with the /TYPE=STRUCTURED case.

11.1.2    /KEYWORDS

       /KEYWORDS=keyword-list-name

    Defines the keywords that you can use with this tag. You must
    specify the keyword-list-name parameter by using the DEFINE
    KEYWORDS command. If you specify the keyword-list-name with the
    /KEYWORDS qualifier, the compiler will check that any keywords
    appearing in your source code as the value of this tag belong to
    the indicated keyword-list-name. This checking always takes place
    at compile time; the editor does not check keywords as you type
    them.

    If you specify /KEYWORDS=*, this indicates that any keyword is
    allowed and no checking of keywords is to be done.

    You use this qualifier only with the /TYPE=KEYWORD case.

11.1.3    /LANGUAGE

       /LANGUAGE=language-name

    Specifies the language associated with the tag being defined. If
    you do not specify a language, the default is the language of the
    current buffer.

11.1.4    /SUBTAGS

       /SUBTAGS=tag-list

    Indicates the subtags that can appear in a structured tag. The
    special case /SUBTAGS=* indicates that any tag is allowed. For
    example, you would use this special case for the PARAMETERS tag.

    You use this qualifier only with the /TYPE=STRUCTURED case.

11.1.5    /TYPE

       /TYPE=type-keyword

    Indicates the type of the tag. You can specify any one of the
    following types:

    Keyword Type    Description

    TEXT            Ordinary text tag (default)

    KEYWORD         List of keywords to be parsed at compile time

    STRUCTURED      Sequence of zero or more subtags

11.2  –  Parameter

 tag-name
    Specifies the name of the tag being defined. The tag name must
    consist only of alphanumeric characters, the dollar sign ($),  or
    the underscore (_),  and may contain embedded blanks. Tag names
    are case-insensitive. If you include embedded blanks, place the
    name inside quotation marks.

12  –  TOKEN

    Defines an editing token for use with the EXPAND command.

    Format

      DEFINE TOKEN   token-name

      token body

      END DEFINE

      or

      DEFINE TOKEN   token-name

      /PLACEHOLDER=  placeholder-name

12.1  –  Qualifiers

12.1.1    /DESCRIPTION

       /DESCRIPTION=string

    Specifies some text to be displayed along with the token name when
    the token name appears in a menu during an EXPAND operation or in
    a SHOW TOKEN display.

12.1.2    /LANGUAGE

       /LANGUAGE=language-name

    Specifies the language associated with the token. By default, the
    token is defined for use with the current language.

12.1.3    /PLACEHOLDER

       /PLACEHOLDER=placeholder-name

    Specifies the name of a defined placeholder that expands in place
    of the token. The token gets its description, topic string, and
    body from the defining placeholder.

    Note that the /PLACEHOLDER qualifier is mutually exclusive
    with the /DESCRIPTION and /TOPIC_STRING qualifiers and the END
    DEFINE command must not be used on the DEFINE TOKEN command when
    /PLACEHOLDER is specified. No token body is specified with the
    /PLACEHOLDER qualifier.

12.1.4    /TOPIC_STRING

       /TOPIC_STRING=string

    Specifies a quoted string that LSE uses to retrieve help text for
    this token. This string is appended to the /TOPIC_STRING qualifier
    specified in the DEFINE LANGUAGE command to form the complete
    string of topics that LSE uses to look up the help text for this
    token.

12.2  –  Parameter

 token-name
    Specifies the name for the token being defined. Each token for a
    particular language must have a unique name. Token and alias names
    must not conflict. A token name can be any character including a
    blank space, but not a leading or trailing space.

 token body
    Is the text of the token expansion. When the token is expanded,
    the token name is replaced with the text of the token body. A
    token can have more than one quoted string in each body line. For
    the expansion of the token, you can set the indentation of each
    string by using the /INDENTATION qualifier and its associated
    keywords described in the following section:

    Each quoted string in the body line of a token can take the
    qualifier and keywords described in the following section.

    Nonterminal Body QualiDefaults

    /INDENTATION=(keyword1 [,integer1, keyword2])

    keyword1

    You can specify any of the following options for keyword1:

    Option      Description

    EXPAND      Indents the string to the column of the first
                character of the nonterminal placeholder being
                expanded. This is the default value if the first body
                line is not a null string.

    CURRENT     Indents the string to the indentation of the line
                containing the placeholder or token. This is the
                default value if the first body line is a null string.

    PREVIOUS    Indents the string to the indentation of the line
                before the line containing the placeholder or token.

    FIXED       Indents the string to the specified column.

    integer1

    You can specify any integer for the integer1 option. The default
    is 0. The integer is added to the column position as specified by
    keyword1 and adjusts the indentation by that number of columns.
    The integer can be negative. When the value for keyword1 is FIXED,
    integer1 specifies the column position at which to put body text
    and must be positive.

    keyword2

    You can specify any of the following options for keyword2:

    Option    Description

    TAB       Specifies that integer1 should be interpreted as
              specifying an adjustment in terms of tab increments
              rather than columns. Integer1 is multiplied by the
              tab increment for the buffer before it is added to the
              column specified by keyword1.

    SPACE     Specifies that integer1 should be interpreted as
              specifying an adjustment in terms of spaces. This is
              the default.

    Note that you cannot specify keyword2 when keyword1 has a FIXED
    value.

    If there is more than one quoted string in a body line, a comma
    must separate the strings. For FORTRAN, if the body line is inside
    of a comment or there is a tab in the body lines, the /INDENTATION
    qualifier and associated keywords do not take effect for the first
    quoted string for each body line.

    For more information about the use of the /INDENTATION qualifier,
    see the examples for the EXPAND command.
Close Help