Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ADJUSTMENT

ALIAS

COMMAND

KEY

KEYWORDS

LANGUAGE

PACKAGE

PARAMETER

PLACEHOLDER

ROUTINE

TAG

TOKEN

Qualifiers

Parameters

/COMPRESS

/COUNT

/CURRENT

/INHERIT

/LANGUAGE

/OVERVIEW

/PREFIX

/SUBSEQUENT

/UNIT

Qualifiers

Parameters

/INDICATED

/LANGUAGE

Parameters

Qualifiers

Parameter

/DIALOG

/IF_STATE

/LEARN

/LEGEND

/REMARK

/STATE

/TOPIC_STRING

Qualifier

Parameters

/DESCRIPTION

Qualifiers

Parameter

/CAPABILITIES

/COMMENT

/COMPILE_COMMAND

/EXPAND_CASE

/FILE_TYPES

/FORTRAN

/HELP_LIBRARY

/IDENTIFIER_CHARACTERS

/INITIAL_STRING

/LEFT_MARGIN

/OVERVIEW_OPTIONS

/PLACEHOLDER_DELIMITERS

/PUNCTUATION_CHARACTERS

/QUOTED_ITEM

/RIGHT_MARGIN

/TAB_INCREMENT

/TOPIC_STRING

/VERSION

/WRAP

Qualifiers

Parameter

/HELP_LIBRARY

/LANGUAGE

/PARAMETER_EXPAND

/ROUTINE_EXPAND

/TOPIC_STRING

Qualifier

Parameter

/PACKAGE

Qualifiers

Parameters

/AUTO_SUBSTITUTE

/DESCRIPTION

/DUPLICATION

/LANGUAGE

/LEADING

/PLACEHOLDER

/PSEUDOCODE

/SEPARATOR

/TOPIC_STRING

/TRAILING

/TYPE

Qualifiers

Parameters

/DESCRIPTION

/PACKAGE

/TOPIC_STRING

Qualifiers

Parameter

/EMPTY

/KEYWORDS

/LANGUAGE

/SUBTAGS

/TYPE

Qualifiers

Parameter

/DESCRIPTION

/LANGUAGE

/PLACEHOLDER

/TOPIC_STRING

Language Sensitive Editor Menu DEFINE — VMS LSE_3.0

=TITLE DEFINE
 Defines the item specified by the option word.

 Format

     DEFINE   option

Additional information available:

ADJUSTMENTALIASCOMMANDKEYKEYWORDS
LANGUAGEPACKAGEPARAMETERPLACEHOLDERROUTINE
TAGTOKEN

ADJUSTMENT

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

 Format

     DEFINE ADJUSTMENT  adjustment-name [pattern]

Additional information available:

QualifiersParameters

Qualifiers

=TITLE Qualifiers

Additional information available:

/COMPRESS/COUNT/CURRENT/INHERIT/LANGUAGE
/OVERVIEW/PREFIX/SUBSEQUENT/UNIT

/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.

/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

/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 description for DEFINE LANGUAGE/OVERVIEW_
 OPTIONS=TAB_RANGE.

/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.

/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.

/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.

/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.

/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.

/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.

Parameters

=TITLE 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.

ALIAS

=TITLE 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]

Additional information available:

QualifiersParameters

Qualifiers

=TITLE Qualifiers

Additional information available:

/INDICATED/LANGUAGE

/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.

/LANGUAGE

    /LANGUAGE=language-name

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

Parameters

=TITLE 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.

COMMAND

=TITLE COMMAND
 Defines a user command or an abbreviation for an LSE
 command.

 Format

     DEFINE COMMAND   command-name    value-string

Additional information available:

Parameters

Parameters

=TITLE 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.

KEY

=TITLE KEY
 Binds an LSE command to a key.

 Format

     DEFINE KEY   key-specifier    string

Additional information available:

QualifiersParameter

Qualifiers

=TITLE Qualifiers

Additional information available:

/DIALOG/IF_STATE/LEARN/LEGEND/REMARK/STATE/TOPIC_STRING

/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.

/IF_STATE

    /IF_STATE=GOLD
    /NOIF_STATE (D)

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

/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.

/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=?.

/REMARK

    /REMARK=(string,...)

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

/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.

/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.

Parameter

=TITLE 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.

KEYWORDS

=TITLE KEYWORDS
 Defines the indicated keyword list.

 Format

     DEFINE KEYWORDS  keyword-list-name

     keyword [/DESCRIPTION=text]

         .

         .

         .

     keyword [/DESCRIPTION=text]

     END DEFINE

Additional information available:

QualifierParameters

Qualifier

=TITLE Qualifier

Additional information available:

/DESCRIPTION

/DESCRIPTION

    /DESCRIPTION=text

 Indicates the text to be associated with the individual
 keyword.

Parameters

=TITLE 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.

LANGUAGE

=TITLE LANGUAGE
 Specifies the characteristics of a language.

 Format

     DEFINE LANGUAGE   language-name

Additional information available:

QualifiersParameter

Qualifiers

=TITLE Qualifiers

Additional information available:

/CAPABILITIES/COMMENT/COMPILE_COMMAND/EXPAND_CASE
/FILE_TYPES/FORTRAN/HELP_LIBRARY/IDENTIFIER_CHARACTERS
/INITIAL_STRING/LEFT_MARGIN/OVERVIEW_OPTIONS/PLACEHOLDER_DELIMITERS
/PUNCTUATION_CHARACTERS/QUOTED_ITEM/RIGHT_MARGIN
/TAB_INCREMENT/TOPIC_STRING/VERSION/WRAP

/CAPABILITIES

    /CAPABILITIES=DIAGNOSTICS
    /CAPABILITIES=NODIAGNOSTICS (D)

 Specifies whether the compiler can generate diagnostic
 files.

/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.

/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.)

/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.

/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.

/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.

/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.

/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"

/INITIAL_STRING

    /INITIAL_STRING=string

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

/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.

/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.

/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.

/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.

/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.

/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.

/TAB_INCREMENT

    /TAB_INCREMENT=n
    /TAB_INCREMENT=4 (D)

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

/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.)

/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.

/WRAP

    /WRAP
    /NOWRAP (D)

 Specifies whether the ENTER SPACE command (bound to
 the space bar by default) should wrap text when there
 is too much to fit on the current line. The /NOWRAP
 qualifier disables such text wrapping.

Parameter

=TITLE Parameter

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

PACKAGE

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

 Format

     DEFINE PACKAGE   package-name

Additional information available:

QualifiersParameter

Qualifiers

=TITLE Qualifiers

Additional information available:

/HELP_LIBRARY/LANGUAGE/PARAMETER_EXPAND
/ROUTINE_EXPAND/TOPIC_STRING

/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.

/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.

/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.

/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.

/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.

Parameter

=TITLE Parameter

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

PARAMETER

=TITLE PARAMETER
 Defines a parameter within a package.

 Format

     DEFINE PARAMETER   param-name

Additional information available:

QualifierParameter

Qualifier

=TITLE Qualifier

Additional information available:

/PACKAGE

/PACKAGE

    /PACKAGE=package-name

 Specifies the name of the package with which the
 parameter is associated.

Parameter

=TITLE 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.

PLACEHOLDER

=TITLE 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

Additional information available:

QualifiersParameters

Qualifiers

=TITLE Qualifiers

Additional information available:

/AUTO_SUBSTITUTE/DESCRIPTION/DUPLICATION/LANGUAGE
/LEADING/PLACEHOLDER/PSEUDOCODE/SEPARATOR
/TOPIC_STRING/TRAILING/TYPE

/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.

/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.

/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.

/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.

/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.

/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.

/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.

/SEPARATOR

    /SEPARATOR=string

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

/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.

/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.

/TYPE

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

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

Parameters

=TITLE 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 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; 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.

ROUTINE

=TITLE ROUTINE
 Defines templates for a routine contained within a
 subroutine package.

 Format

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

Additional information available:

QualifiersParameters

Qualifiers

=TITLE Qualifiers

Additional information available:

/DESCRIPTION/PACKAGE/TOPIC_STRING

/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.)

/PACKAGE

    /PACKAGE=package_name

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

/TOPIC_STRING

    /TOPIC_STRING=string

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

Parameters

=TITLE 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.

TAG

=TITLE TAG
 Defines the specified tag.

 Format

     DEFINE TAG   tag-name

Additional information available:

QualifiersParameter

Qualifiers

=TITLE Qualifiers

Additional information available:

/EMPTY/KEYWORDS/LANGUAGE/SUBTAGS/TYPE

/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.

/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
 /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.

/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.

/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.

/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

Parameter

=TITLE 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.

TOKEN

=TITLE 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

Additional information available:

QualifiersParameter

Qualifiers

=TITLE Qualifiers

Additional information available:

/DESCRIPTION/LANGUAGE/PLACEHOLDER/TOPIC_STRING

/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.

/LANGUAGE

    /LANGUAGE=language-name

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

/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.

/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.

Parameter

=TITLE 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.

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026