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:
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:
Qualifiers
=TITLE Qualifiers
Additional information available:
/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
=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:
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:
Qualifier
=TITLE Qualifier
Additional information available:
/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:
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:
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:
Qualifier
=TITLE Qualifier
Additional information available:
/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:
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:
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:
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:
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.