Language Sensitive Editor — VMS LSE_3.0
Additional information available:
ALIGNANALYZEATTACHCALLCANCELCAPITALIZE
CENTERCHANGECHECKCLOSECMSCOLLAPSECOMPILE
CONTINUECONVERTCREATECUTDCLDEFINEDELETE
DOENDENLARGEENTERERASEEXITEXPAND
EXTENDEXTRACTFILLFINDFOCUSGOTOHELP
INCLUDEINSPECTLINELOADLOWERCASEMODIFY
NEXTONEOTHERPASTEPREVIOUSQUITQUOTE
READRECALLRECOVERREFRESHREORGANIZEREPEAT
REPLACEREPORTRESERVEREVIEWSAVESEARCHSELECT
SETSHIFTSHOWSHRINKSPAWNSPELLSPLIT
SUBSTITUTETABTOGGLETWOUNDOUNERASE
UNEXPANDUNRESERVEUNTABUPPERCASEVERIFY
VIEWWHATWRITE
CommandsFeaturesNew FeaturesNew UsersSCA Topics
Commands
The LSE line mode commands are:
ALIGN
Aligns comments within the selected range without performing a
fill.
ANALYZE [SCA Command]
Creates an analysis data file that describes a source file.
ATTACH [SCA Command]
Allows you to attach the terminal to another process.
CALL
Allows you to call a specified VAXTPU procedure.
CANCEL MARK
Deletes a specified mark.
CANCEL SELECT_MARK
Cancels the effect of a SET SELECT_MARK command.
CAPITALIZE WORD
Capitalizes the first letter of the current word.
CENTER LINE
Centers the current line between the left and right margins.
CHANGE CASE
Alters the case (upper/lower) of each letter in the selected
range.
CHANGE DIRECTION
Alters the direction (forward/reverse) of the current buffer.
CHANGE INDENTATION
Adds or deletes leading blanks and tabs from lines.
CHANGE TEXT_ENTRY_MODE
Alters the text entry mode (insert/overstrike) of the current
buffer.
CHANGE WINDOW_MODE
Alters the number of displayed windows.
CHECK LANGUAGE
Analyzes the definitions associated with a language and reports
errors
CLOSE BUFFER
Deletes the current buffer
CMS
Enables the execution of a DEC/CMS command within LSE.
COLLAPSE
Compresses text at the current cursor position.
COMPILE
Writes and compiles a buffer.
CONTINUE
Ends command line prompts and returns to keypad mode.
CONVERT LIBRARY [SCA Command]
Converts the specified library from Version 1.n format to Version
2.0 format.
CREATE LIBRARY [SCA Command]
Creates SCA libraries in specified directories.
CUT
Moves the selected range to the indicated buffer.
DCL
Executes a DCL command from within your editing session.
DEFINE ADJUSTMENT
Defines the behavior of the LSE viewing commands on individual
lines of a source file.
DEFINE ALIAS
For use with the EXPAND command , determines a reference name for
text or an identifier.
DEFINE COMMAND
Determines a name for a user or LSE command.
DEFINE KEY
Determines the key for an LSE command.
DEFINE KEYWORDS
Defines the indicated keyword list.
DEFINE LANGUAGE
Determines language characteristics.
DEFINE PACKAGE
Determines a subroutine package for which call templates are
generated.
DEFINE PARAMETER
Determines parameters within a package.
DEFINE PLACEHOLDER
Determines placeholder characteristics.
DEFINE ROUTINE
Determines templates for a routine within a subroutine package.
DEFINE TAG
Defines the specified tag.
DEFINE TOKEN
Determines token characteristics.
DELETE ADJUSTMENT
Removes a name from the list of adjustments associated with a
language.
DELETE ALIAS
Cancels the effect of a DEFINE ALIAS command.
DELETE BUFFER
Eliminates the specified buffer.
DELETE COMMAND
Cancels the effect of a DEFINE COMMAND command.
DELETE KEY
Cancels the effect of a DEFINE KEY command.
DELETE KEYWORDS
Cancels the indicated keywords definition.
DELETE LANGUAGE
Cancels the effect of a DEFINE LANGUAGE command.
DELETE LIBRARY [SCA Command]
Deletes an SCA library from a VMS directory.
DELETE MODULE [SCA Command]
Deletes specified modules from SCA libraries.
DELETE PACKAGE
Deletes a package definition without deleting associated routines
or parameters.
DELETE PARAMETER
Deletes a parameter definition from a package.
DELETE PLACEHOLDER
Cancels the effect of a DEFINE PLACEHOLDER command.
DELETE QUERY [SCA Command]
Deletes a specified query from an editing session.
DELETE ROUTINE
Deletes a routine definition from a package.
DELETE TAG
Removes a name from the list of tags associated with a language.
DELETE TOKEN
Cancels the effect of a DEFINE TOKEN command.
DELETE WINDOW
Deletes the current window.
DO
Executes LSE commands or TPU program. statements.
END DEFINE
Terminates a DEFINE PLACEHOLDER or TOKEN command.
END REVIEW
Terminates the current review session.
ENLARGE WINDOW
Enlarges the current window.
ENTER COMMENT
Converts pseudocode into comments.
ENTER LINE
Inserts a line break (carriage return) at the current cursor
position.
ENTER PSEUDOCODE
Inserts pseudocode placeholder delimiters.
ENTER SPACE
Inserts a blank character and performs a fill on the current line.
ENTER SPECIAL
Inserts a specified ASCII character at the current cursor
position.
ENTER TAB
Inserts indentation, if at beginning of line; otherwise inserts a
tab at the current cursor position.
ENTER TEXT
Inserts a specified string at the current cursor position.
ERASE CHARACTER
Deletes a character at the current cursor position.
ERASE LINE
Deletes a line of text from the current cursor position.
ERASE PLACEHOLDER
Deletes the text of a selected placeholder.
ERASE SELECTION
Removes the text within the selected range.
ERASE WORD
Deletes a word at the current cursor position.
EXIT [SCA Command]
Terminates an editing session and returns to the calling program
or DCL.
EXPAND
Replaces the placeholder, token, or alias with the body.
EXTEND
Compiles one or more VAXTPU procedures to extend LSE.
EXTRACT ADJUSTMENT
Extracts the definition of the named adjustment and formats the
definition as a command.
EXTRACT ALIAS
Selects the definition of the alias name and formats it as a
command.
EXTRACT KEYWORDS
Extracts the definition of the named keyword list and formats the
definition as a command.
EXTRACT LANGUAGE
Selects the definition of the named language and formats it as a
command.
EXTRACT MODULE
Extracts specified modules of source analysis data from an SCA
library.
EXTRACT PACKAGE
Extracts the definition of the named package and formats the
definition as a command.
EXTRACT PARAMETER
Extracts the definition of the named parameter and formats the
definition as a command.
EXTRACT PLACEHOLDER
Extracts the definition of the named placeholder and formats the
definition as a command.
EXTRACT ROUTINE
Extracts the definition of the named routine and formats the
definition as a command.
EXTRACT TAG
Extracts the definition of the named tag and formats the
definition as a command.
EXTRACT TOKEN
Extracts the definition of the named token and formats the
definition as a command.
FILL
Fills the lines in the selected range.
FIND [SCA Command]
Locates occurrences of symbol or file sources described by the SCA
libraries.
FOCUS
Displays an overview of the buffer and compresses the rest of the
buffer as much as possible.
GOTO BOTTOM
Moves the cursor to the bottom of the current buffer.
GOTO BUFFER
Moves the cursor to the last position held in the specified
buffer.
GOTO CHARACTER
Moves the cursor to the specified character.
GOTO COMMAND
Produces the LSE Command> prompt at which LSE or SCA commands can
be issued.
GOTO DECLARATION [SCA Required]
Displays the declaration of the source symbol indicated.
GOTO FILE
Moves the cursor to a buffer containing the specified file.
GOTO LINE
Moves the cursor to the next line.
GOTO MARK
Moves the cursor to the mark created by the preceding SET MARK
command.
GOTO PAGE
Moves the cursor to the next page.
GOTO PLACEHOLDER
Moves the cursor to the next placeholder.
GOTO QUERY [SCA Command]
Moves to the specified SCA query session.
GOTO REVIEW
Moves to the currently active review session.
GOTO SCREEN
Moves the cursor in the current direction by the number of lines
in the current window.
GOTO SOURCE
Uses the current cursor position in the review or query buffer to
select an associated diagnostic or item in the related source
buffer.
GOTO TOP
Moves the cursor to the top of the current buffer.
GOTO WORD
Moves the cursor to the next word in the current buffer.
HELP
Displays information about a specified LSE topic.
INCLUDE
Inserts the specified file at the current cursor position.
INSPECT [SCA Command]
Inspects the consistency between declarations or references for
the same symbol.
LINE
Moves the cursor in the current buffer to the start of the source
line you specify.
LOAD [SCA Command]
Loads one or more modules of source analysis data into an SCA
library.
LOWERCASE WORD
Changes the letters in the current word to lowercase.
MODIFY LANGUAGE
Modifies the characteristics of a specified language.
NEXT BUFFER
Moves your next buffer into the current window, returning to your
last position in that buffer.
NEXT ERROR
Selects the next diagnostic from the current set in buffer
$REVIEW.
NEXT OCCURRENCE [SCA Required]
Moves the cursor forward to the next occurrence of the current
item in the current query.
NEXT QUERY [SCA Command]
Moves the cursor to the next SCA query session.
NEXT STEP
Moves the cursor forward to the next error, item, name, or
occurrence depending on whether you are in REVIEW or QUERY mode.
NEXT SYMBOL [SCA Required]
Moves the cursor forward to the next item in the current query.
NEXT WINDOW
Selects the alternate window.
ONE WINDOW
Deletes all but the current window.
OTHER WINDOW
Moves the cursor from the current window to the next window if the
screen is split into multiple windows.
PASTE
Copies the contents of a specified buffer into the current buffer.
PREVIOUS BUFFER
Moves your previous buffer into the current window, returning to
your last position in that buffer.
PREVIOUS ERROR
Selects the previous diagnostic from the current set in buffer
$REVIEW.
PREVIOUS OCCURRENCE [SCA Required]
Moves the cursor back to the previous occurrence of the current
item in the current query.
PREVIOUS QUERY [SCA Command]
Moves the cursor to the previous SCA query session.
PREVIOUS STEP
Moves the cursor back to the previous error, item, name, or
occurrence depending on whether LSE is in REVIEW or QUERY mode.
PREVIOUS SYMBOL [SCA Required]
Moves the cursor back to the previous item in the current query.
PREVIOUS WINDOW
Selects the alternate window.
QUIT
Terminates an editing session without saving any modified buffers.
QUOTE
Enters a control code or other character, either as text in the
buffer you are editing or as a string command
READ
Opens a specified file for input and places its contents in a
specified buffer.
RECALL
Recalls a previous LSE command, which you can edit and execute
again.
RECOVER BUFFER
Reconstructs the contents of a buffer from a buffer change journal
file.
REFRESH
Rewrites the screen display.
REORGANIZE [SCA Command]
Optimizes the size and organization of an SCA library.
REPEAT
Executes a command a specified number of times.
REPLACE
Creates a new generation of the indicated element in your current
CMS library.
REPORT
Produces the specified report.
RESERVE
Reserves an element in your current CMS library.
REVIEW
Displays a set of diagnostic messages resulting from a
compilation.
SAVE ENVIRONMENT
Writes all user-defined languages, placeholders, and tokens to a
specified file.
SAVE SECTION
Writes the binary form of current key definitions, learn
sequences, user-defined commands, mode settings, and VAXTPU
procedures and variables to a section file.
SEARCH
Positions the cursor at a specified string in the current buffer.
SELECT ALL
Selects the entire contents of the current buffer.
SET AUTO_ERASE
Enables automatic erasing of placeholders.
SET CMS
Sets the default values for the CMS reservations and fetches that
LSE performs when you issue the appropriate LSE file manipulation
commands.
SET CURSOR
Selects either bound cursor motion or free cursor motion
SET DEFAULT_DIRECTORY
Changes your default device and directory specifications.
SET DIRECTORY
Sets the default read-only/write status of files from a specified
directory.
SET FONT
Sets the specified fonts for the screen.
SET FORWARD
Sets the current direction of the buffer forward.
SET INDENTATION
Changes the current indentation level for the buffer.
SET INSERT
Sets the text entry mode of the buffer to insert mode.
SET JOURNALING
Enables buffer change journaling for the specified buffers.
SET LANGUAGE
Changes the language associated with the buffer.
SET LEFT_MARGIN
Specifies the left margin for FILL and ENTER SPACE commands.
SET LIBRARY [SCA Command]
Specifies the SCA libraries to be used for SCA functions.
SET MARK
Specifies a name at the current cursor position for a GOTO MARK
command.
SET MODE
Changes the setting of the BELL, KEYPAD, and MENU modes.
SET MODIFY
Sets buffer status to modifiable.
SET NOAUTO_ERASE
Disables automatic erasing of placeholders.
SET NOJOURNALING
Disables buffer journaling for the specified buffers.
SET NOLANGUAGE
Disassociates the language associated with the indicated buffer.
SET NOLIBRARY [SCA Command]
Removes the specified SCA libraries from the current list of
active libraries.
SET NOMODIFY
Sets a buffer to nomodify (unmodifiable).
SET NOOUTPUT_FILE
Disassociates the buffer from any output file.
SET NOOVERVIEW
Disables overview operations in the indicated buffer.
SET NOSOURCE_DIRECTORY
Specifies the directories to be removed from the list of source
directories.
SET NOWRAP
Disables wrapping in the indicated buffer.
SET OUTPUT_FILE
Changes the output file associated with the buffer.
SET OVERSTRIKE
Sets the text entry mode of the buffer to overstrike mode.
SET OVERVIEW
Enables overview operations in the indicated buffer.
SET READ_ONLY
Specifies that following a COMPILE command or an exit from LSE,
the buffer not be written to a file.
SET REVERSE
Sets the current direction of the buffer to reverse.
SET RIGHT_MARGIN
Specifies the right margin for FILL and ENTER SPACE commands.
SET SCREEN
Changes the characteristics of the terminal display screen.
SET SCROLL_MARGINS
Delimits the lines at which the cursor triggers scrolling.
SET SEARCH
Sets text search options.
SET SELECT_MARK
Specifies a position as one end of a select range.
SET SOURCE_DIRECTORY
Specifies a search list of directories to be used to find source
files.
SET TAB_INCREMENT
Specifies the number of columns between tab stops for the buffer.
SET WRAP
Enables wrapping in the indicated buffer.
SET WRITE
Specifies that following a COMPILE command or an exit from LSE,
the buffer will be written to a file.
SHIFT
Scrolls a window horizontally (left or right).
SHOW ADJUSTMENT
Displays the characteristics of indicated adjustments.
SHOW ALIAS
Displays the characteristics of the specified alias.
SHOW BUFFER
Displays the characteristics of the specified buffer.
SHOW CMS
Displays the current SET CMS settings.
SHOW COMMAND
Displays the characteristics of the specified command.
SHOW DEFAULT_DIRECTORY
Displays the current default device and directory.
SHOW DIRECTORY
Displays the setting of the SET DIRECTORY command.
SHOW KEY
Displays the characteristics of the specified key.
SHOW KEYWORDS
Displays the characteristics of the specified keyword. list.
SHOW LANGUAGE
Displays the characteristics of the specified language.
SHOW LIBRARY [SCA Command]
Displays the directory specifications of SCA libraries.
SHOW MARK
Displays the setting of the specified mark.
SHOW MODE
Displays the current mode settings.
SHOW MODULE [SCA Command]
Displays SCA library module information.
SHOW PACKAGE
Displays the characteristics of specified packages.
SHOW PARAMETER
Displays the characteristics of specified parameters.
SHOW PLACEHOLDER
Displays the characteristics of the specified placeholder.
SHOW QUERY [SCA Command]
Displays information about current SCA query sessions.
SHOW ROUTINE
Displays the characteristics of specified routines.
SHOW SCREEN
Displays the current values set with the SET SCREEN command
SHOW SEARCH
Displays the settings of text search options.
SHOW SOURCE_DIRECTORY
Displays the setting of the SET SOURCE_DIRECTORY command.
SHOW SUMMARY
Shows statistics and other information about LSE.
SHOW TAG
Displays the characteristics of indicated tags.
SHOW TOKEN
Displays the characteristics of the specified token.
SHOW VERSION [SCA Command]
Displays the version of LSE and SCA you are working with.
SHRINK WINDOW
Shrinks the current window.
SPAWN [SCA Command]
Suspends the editing session and runs the DCL interpreter in a
subprocess.
SPELL
Runs DECspell to check the currently selected text or the entire
buffer.
SPLIT WINDOW
Divides the current window into two or more windows.
TWO WINDOWS
Splits the current window into two windows.
SUBSTITUTE
Searches for a specified text string and replaces it with another
specified string.
TAB
Inserts indentation, if at the beginning of line; otherwise,
spaces to the next tab stop.
TOGGLE SELECT_MARK
Sets and resets the state of SELECT_MARK.
UNDO ENTER COMMENT
Reverses the effect of the last ENTER COMMENT command.
UNERASE
Restores text previously deleted by an ERASE command.
UNEXPAND
Reverses the effect of the last EXPAND command.
UNRESERVE
Cancels the reservation of the indicated CMS element.
UNTAB
Removes spaces to the previous tab stop.
UPPERCASE WORD
Changes the current word to uppercase.
VERIFY [SCA Command]
Verifies that the specified SCA libraries are complete.
VIEW SOURCE
Displays an overview of the buffer.
WHAT LINE
Shows the current line number and total number of lines in the
buffer. Also shows what percentage of the lines in the buffer are
located above the current line.
WRITE
Outputs the contents of a specified buffer or selected range to a
specified file.
Features
Additional information available:
OverviewIssuing CommandsWindowsBuffersPlaceholdersLanguages
Getting StartedCommand CategoriesEntering CodeCompiling
CMS Interface
Overview
LSE is a multilanguage, advanced text editor that is layered on the
VAX Text Processing Utility (VAXTPU). LSE works with VMS languages
and other VMS productivity tools to enhance program development.
LSE allows you to control your editing environment and use LSE's
knowledge of specific languages to develop programs quickly and
accurately.
LSE provides the following features:
o Error Correction and Review
This feature allows you to compile, review, and correct
compilation errors within a single editing session. LSE provides
an interface to the supported VMS language compilers so that you
can perform compilations without leaving LSE. The compilers
provide LSE with compilation diagnostics in a way that allows you
to review compilation errors in one editing window while
displaying the related source in another window.
o Language-Specific Templates
Templates permit fast and efficient source code entry. LSE
accesses a collection of formatted language constructs, called
templates, that provide keywords, punctuation, and placeholders,
for each supported VMS language.
LSE allows you to modify existing templates or define your own
language or text templates.
o Integrated Programming Environment
LSE is integrated into the VMS development environment. It is
invoked using the DIGITAL Command Language (DCL). LSE works with
supported VMS languages, SCA, DEC/CMS (CMS), the VMS Debugger
(debugger), and the VAX Performance and Coverage Analyzer to
provide a highly interactive environment. This environment
enables you to create and edit code, to view multiple source
modules, to compile programs, and to review and correct
compile-time errors in one editing session.
LSE can be invoked directly from the debugger to correct source
code problems found during debugging sessions. In addition, LSE
can be invoked from the VAX Performance and Coverage Analyzer to
correct performance problems found during analyzing sessions.
o Online HELP Facility
LSE provides online HELP for information on unfamiliar language
constructs and routines. HELP is also provided for all of LSE's
commands and key definitions.
o Source Code Analysis
LSE's integration with SCA allows you to search for specific
information contained in your source files.
SCA is a source code cross-reference and static analysis tool
that helps programmers familiarize themselves with complex
systems. SCA accesses source information generated by supported
VMS language compilers. Thus, SCA allows you to move through
this information and gain access to related source files as
necessary. You can find out how a program symbol was declared,
where a particular routine is called, or what module needs to be
recompiled.
o Source Code Management
An interface with DEC/CMS simplifies the functions of program
development.
All CMS commands can be issued within LSE. LSE can be directed
to fetch files directly from a CMS library when you issue
standard LSE file manipulation commands. In addition, LSE has
commands RESERVE, REPLACE and UNRESERVE which perform the
corresponding CMS operation on LSE buffers.
o Program Design
The /DESIGN qualifier allows the compiler to process an input
file as a detailed design. Used with LSE and SCA, this new
capability provides an integrated software development
environment that includes the low-level design phase of the
software development life cycle.
During the design phase, any supported VAX language can be your
Program Design Language (PDL). In the VMS environment, you
create detailed designs as follows:
- Using a supported VAX language
- Embedding design information in comments
- Writing algorithms with pseudocode and regular placeholders
With LSE, you can use pseudocode placeholders to express design
information. Supported VAX languages use the special brackets «
and » to delimit pseudocode placeholders. You can express other
design information in tagged header comments. In addition, you
can convert pseudocode placeholders into comments and store the
design information in SCA libraries.
With SCA, you can perform cross-referencing and static analysis
on the design information. In addition, SCA provides a report
tool that allows you to process and analyze designs to produce a
variety of design reports. Design reports can show the current
state of design work and help you understand existing code. You
can generate help libraries and routine templates from these
design reports.
o LSE Customization
LSE allows you to extend your editing environment to handle
highly specialized editing needs. LSE provides an interface to
VAXTPU. VAXTPU is part of the VMS operating system. VAXTPU
features include a compiler and an interpreter, and procedures
for screen management and text manipulation. The VAXTPU language
is block-structured and provides looping, conditional, case, and
assignment statements, and many built-in procedures to allow you
to perform more powerful editing tasks.
o EVE/EDT Keypads
LSE provides a SET MODE KEYPAD command that sets the key
definitions to be similiar to EVE or EDT.
o System Services and Run-Time Library Templates
LSE provides packages for VMS Systems Services and for the LIB$,
SMG$, and STR$ Run-Time Library routines. In addition, LSE
allows you to define templates for packages of subroutine
libraries.
Issuing Commands
LSE provides two ways to issue commands: keypad mode and command line mode. When you invoke LSE, you are in keypad mode. In keypad mode, text that you type is inserted into a buffer. Keypad, cursor, and control keys execute LSE functions. Thus, you can press keys to perform editing functions rather than typing commands on the command line. LSE provides two keypads: EDT keypad and EVE keypad. The default is the EDT keypad. You can use the SET MODE KEYPAD command to get the EVE keypad. The EDT key bindings are used in the examples in the manual. Some LSE commands are not bound to keys. Therefore, they must be entered in command line mode. There are two command line prompts: LSE Command> and LSE>. The LSE Command> prompt will process one command. After that command is processed, LSE returns to keypad mode. There are two ways to get the LSE command> prompt: pressing the DO key or COMMAND key (PF1-KP7). LSE will place the LSE Command> prompt near the bottom of the screen. Alternatively, the LSE> prompt allows you to issue as many commands as you want. To get the LSE> prompt, you press CTRL/Z. LSE will place the LSE> prompt near the bottom of the screen. To return to keypad mode, you can press CTRL/Z again or issue the CONTINUE command.
Windows
A window is a section of your screen that displays the contents of a
buffer.
LSE allows you to create two text windows, each mapped to a different
buffer. By splitting the screen into two windows, you can view any
two buffers simultaneously.
The status line is highlighted and provides information about the
associated buffer. The status line tells you the name of the buffer,
whether you are in insert or overstrike mode, whether the buffer is
in a forward or reverse direction, and whether the buffer is a write
or read-only buffer.
The message area is located at the bottom and displays broadcast
messages and messages issued by LSE and SCA.
The prompt area overlays the top line of the message window with the
LSE> or LSE Command> prompts, which prompt for commands or required
parameters for commands. LSE commands can be used to manipulate the
screen and its format.
The following describes a common use of some of the commands and
default key bindings used to manipulate screens. If, for example,
you are editing a file called MODULES.AS, you can issue the following
commands to move a procedure from the MODULE2.AS file to the current
file.
1. Press the CHANGE WINDOW_MODE key (PF1-=).
This command will split the screen into two windows. Both
windows will contain the current buffer. The cursor will be
placed in the bottom window.
2. Issue the command: GOTO FILE MODULE2.PAS.
This command will put the contents of the file, MODULE2.AS, into
the bottom window. Now that the two files are displayed on the
screen, you can locate both the procedure you want to select and
the location in the current file where you want the procedure
placed.
3. Move to the desired procedure and press the SELECT (Keypad
Period) key. Use the arrow keys to select the entire procedure
and press the CUT (Keypad 6) key to capture the procedure.
4. Press the PREVIOUS WINDOW key (PF1-(UPARROW)) to place the cursor
in file MODULE1.PAS.
5. Press the PASTE key (PF1-KP6) at the location where the procedure
should be placed.
6. Press the CHANGE WINDOW_MODE key (PF1-=) to return the screen to
one window containing the current buffer.
The commands for manipulating buffers, along with the default key
bindings, are listed under subtopic "Screen_Commands".
Additional information available:
Screen Commands
LSE provides the following commands for manipulating screens:
CHANGE WINDOW_MODE (PF1-=)
toggles the number of windows (between one and two) displayed.
DELETE WINDOW
deletes the current window.
GOTO BUFFER
moves to the specified buffer.
GOTO FILE
moves the cursor to the buffer containing the specified file.
GOTO SCREEN
moves the cursor by the number of lines in the current window.
NEXT WINDOW (PF1-(DOWN ARROW))
selects the alternate window.
PREVIOUS WINDOW (PF1-(UP ARROW))
selects the alternate window.
REFRESH
rewrites the display screen.
SET SCREEN
defines the display screen characteristics.
SHIFT
scrolls a window to the left or to the right.
Buffers
A buffer is a temporary holding area that provides a work space for
editing text. You can create a new file or edit an existing file in
a buffer. A buffer becomes visible when it is associated with a
window that is mapped to the screen. Buffers exist only for the
duration of your editing session. When you exit from LSE, the
current buffer is discarded and the contents of the buffer are stored
in a file.
LSE allows you to create multiple buffers. Thus, you can edit
several different files in one editing session. You can create
additional buffers to store portions of text that you might want to
look at, but not edit, during your editing session.
BUFFER ATTRIBUTES
Buffers have many attributes. This section provides details on
buffer attributes and properties. You can use the SHOW BUFFER
command to display the characteristics of one or more buffers.
Buffer Names
A buffer has a name that is displayed in the status line. Buffers
are usually named by the name and type of their associated input
file. The GOTO FILE or GOTO BUFFER commands can create buffers.
Insert/Overstrike
LSE has two text entry modes: insert and overstrike. In insert
mode, text gets inserted into the buffer at the cursor position.
Text to the right of the cursor gets moved. In overstrike mode,
text typed at the cursor replaces text that is currently under the
cursor. When you start an editing session, the buffer is
automatically placed in insert mode. To change the text entry
modes, you use the CHANGE TEXT_ENTRY_MODE command.
Forward/Reverse
LSE maintains a current direction for each buffer. The current
direction is displayed in the status line. This direction is used
for SEARCH operations and the GOTO and ERASE commands. When you
start an editing session, the buffer direction is set to forward.
To set the current direction to forward, you use the SET FORWARD
command. To set the current direction to reverse, you use the SET
REVERSE command. Alternatively, you can use the CHANGE DIRECTION
command to change the current direction.
Input/Output
Buffers may have an associated input or output file. An input file
is a file that is read into a buffer when a buffer is created. An
output file indicates where LSE will write a buffer. This is
usually a new version of an input file. You can change the output
file name with the SET OUTPUT_FILE command. The GOTO FILE command
creates a buffer and reads a file into it.
Read/Write
Buffers have either the read-only or write attribute. The
read-only attribute indicates that the contents of the buffer will
not be written to a file on exit. The write attribute indicates
that the buffer will be written to a file on exit. Usually, a file
is associated with a buffer by the GOTO FILE command, which creates
a buffer and fills it with the contents of a file. When the buffer
is written, it is written to a new version of the file. If no file
is associated with a buffer that has the write attribute, LSE
prompts for a file specification on exit. Note that a buffer is
written only if its contents have been modified.
Modifiable/Unmodifiable
Buffers are either modifiable or unmodifiable. Unmodifiable
buffers protect the contents of a given buffer. You cannot change
an unmodifiable buffer. The GOTO FILE/READ_ONLY and GOTO
SOURCE/READ_ONLY commands create unmodifiable buffers. If you want
to modify an unmodifiable buffer, you must issue the SET MODIFY or
SET WRITE command.
There are some relationships between the READ-ONLY/WRITE buffer
attributes and the UNMODIFIABLE/MODIFIABLE buffer attributes.
Given these attributes, a buffer may be in one of four possible
states. The following list describes these states and explains how
to create these states for a buffer.
o MODIFIABLE - WRITE
The GOTO FILE/WRITE, GOTO SOURCE/WRITE, SET WRITE, and RESERVE
commands set buffers to this state. It is also the default for
the file specified in the LSEDIT command line. The buffer may
be modified and will be written on exit if it has been
modified.
o MODIFIABLE - READ-ONLY
This is the default for the GOTO BUFFER/CREATE command that is
used to create a "scratch" buffer. The buffer may be modified,
but it will not be written on exit.
o UNMODIFIABLE - READ-ONLY
The GOTO FILE/READ_ONLY and GOTO SOURCE/READ_ONLY commands
create buffers in this state. The buffer cannot be modified.
If you issue a SET MODIFY command on this buffer and modify the
contents, LSE will not write the contents on exit unless you
also issue the SET WRITE command for the buffer.
o UNMODIFIABLE - WRITE
A buffer can be set to this state by a user who has completed a
set of changes to a buffer in the MODIFIABLE - WRITE state and
then issued a SET NOMODIFY command for the buffer to protect
the buffer from accidental change for the remainder of the
editing session. LSE will write the file on exit if it has
been changed during the editing session.
System Buffers
Some buffers are used by LSE for special purposes. These are
called system buffers. Unlike user buffers, system buffers do not
correspond to files. You can edit a system buffer like any other
buffer, but you should avoid changing its contents. By convention,
system buffer names start with a dollar sign ($). The most
frequently used system buffers are $HELP, $MESSAGES, $REVIEW, and
$SHOW. System buffers are not displayed by the SHOW BUFFER command
unless you use the /SYSTEM_BUFFERS qualifier.
Languages
Buffers may have a language associated with them. This determines
which language is used for the language-sensitive features. The
file type of your current buffer determines the language LSE uses.
Thus, you can move between different languages in different
buffers, and LSE will provide the interfaces to the appropriate
compilers. The SET LANGUAGE command associates a language with a
buffer.
Current Indentation and Tab Settings
LSE maintains two settings to control the action of the tab key:
current indentation level and tab increment. When you are at the
left margin, the tab key indents to the current indentation level.
If you are not at the left margin, the tab key takes you to the
next tab column based on the tab increment setting. The SET
INDENTATION command sets the current indentation level; the SET
TAB_INCREMENT command sets the size of the tab increment.
Key Bindings
Buffer commands, along with default key bindings are listed under
subtopic "Buffer_Commands".
Additional information available:
Buffer Commands
LSE provides the following commands for manipulating buffers:
CHANGE DIRECTION
Alters the direction of the current buffer. This command is
bound to Key F11 (PF3 in EVE VT100).
CHANGE TEXT_ENTRY_MODE
Alters the text entry mode of the current buffer between
insert and overstrike. This command is bound to Key F14
(ENTER in EVE VT100).
COMPILE
compiles the source code in the buffers.
CUT [/BUFFER=name]
deletes and moves text in the select range to the paste or
specified buffer.
DO [/BUFFER=name]
directs LSE to execute LSE commands or VAXTPU
program statements from the current or specified buffer.
EXIT
terminates an editing session and saves all modified buffers.
EXTEND
compiles one or more VAXTPU procedures to extend LSE.
GOTO FILE file-spec
moves to the buffer containing the specified file or creates
a new buffer for the file.
GOTO BUFFER name
moves the cursor to the last position held in the specified
buffer.
GOTO SOURCE
moves to the source buffer related to the diagnostic or query
item. This command is bound to CTRL/G.
PASTE [/BUFFER=name]
copies the content of the paste or specified buffer to the
current buffer.
QUIT
terminates an editing session without saving any modified
buffers.
READ file-spec [buffer]
inputs a specified file to the current or specified buffer.
SET AUTO_ERASE
enables automatic erasing of placeholders.
SET FORWARD [/BUFFER=name]
sets the direction of the current or specified buffer forward.
This command is bound to Keypad 4 (no binding for EVE VT100).
SET INDENTATION [/BUFFER=name]
changes the indentation level for the current or specified
buffer.
SET INSERT [/BUFFER=name]
sets the text entry mode of the current or specified buffer
to insert mode.
SET LANGUAGE [/BUFFER=name]
changes the language associated with the current or specified
buffer.
SET LEFT_MARGIN [/BUFFER=name]
specifies the left margin for the buffer for FILL and ENTER
space commands.
SET MODIFY [/BUFFER=name]
sets buffer status to modifiable.
SET NOAUTO_ERASE
disables automatic erasing of placeholders.
SET NOMODIFY
sets buffer to unmodifiable.
SET NOWRAP
disables wrapping in the indicated buffer.
SET OUTPUT_FILE [/BUFFER=name]
changes the output file associated with the current or the
specified buffer.
SET OVERSTRIKE [/BUFFER=name]
sets the text entry of the current or specified buffer to
overstrike mode.
SET REVERSE [/BUFFER=name]
sets the direction of the current or specified buffer to
reverse. This command is bound to Keypad 5 (no binding for
EVE VT100).
SET RIGHT_MARGIN [/BUFFER=name]
specifies the right margin for the buffer for FILL and ENTER
space commands.
SET TAB_INCREMENT [/BUFFER=name]
specifies the number of columns between tab stops for the
current or specified buffer.
SET WRAP
enables wrapping in the indicated buffer.
SET WRITE [/BUFFER=name]
specifies that following a COMPILE command or an exit from
LSE, the specified buffer will be written to a file.
SHOW BUFFER [name | *]
displays the characteristics of a specified or default buffer.
WRITE [/BUFFER=name] [file]
outputs the content of the current or specified buffer to
to a specified file.
Placeholders
To use LSE to create or edit source code requires an understanding of
the concepts of tokens and placeholders. Tokens and placeholders are
language elements that have been predefined for each of the supported
languages. These elements can be expanded into templates for
language constructs.
Placeholders
Placeholders are markers in the source code that indicate locations
where you can provide program text. These placeholders help you to
supply the appropriate syntax in a given context. Generally, you do
not need to type placeholders, rather, they are inserted for you by
LSE. Placeholders can be recognized because they are surrounded by
brackets or braces. The exact choice for placeholder brackets is
language dependent.
There are three types of placeholders:
o Terminal placeholders
o Nonterminal placeholders
o Menu placeholders
Terminal placeholders provide text strings that describe valid
replacements for the placeholder. Nonterminal placeholders expand
into additional language constructs. Menu placeholders provide a
list of options corresponding to the placeholder. The type of a
placeholder is a property of the placeholder name.
Placeholders are either optional or required. Required placeholders,
indicated by braces, represent places in the source code where you
must provide program text. Optional placeholders, indicated by
brackets, represent places in the source code where you can either
provide additional constructs or erase the placeholder.
For example, the declaration
INTEGER {identifier}...
when expanded becomes
INTEGER id,
[identifier]...
The first appearance of the identifier placeholder is surrounded by
braces because you need at least one identifier in this declaration.
The second appearance is surrounded by brackets because additional
identifiers are optional.
Some placeholders are duplicated when expanded. These placeholders
are followed by an ellipsis. Generally, these placeholders represent
items such as identifiers, statements, expressions, datatypes, or any
location where lists of items are expected. A placeholder is
duplicated either vertically or horizontally, depending on the
context and the placeholder definition. For example, the placeholder
[identifier] in the previous example was duplicated vertically.
You may move forward or backward from placeholder to placeholder. In
addition, you can delete or expand placeholders as needed. LSE
allows you to specify uppercase, lowercase, or as defined for all
text expanded into the buffer.
You may modify placeholder definitions by means of the EXTRACT
command. See Chapter 6 for information on modifying placeholders.
Placeholder definitions may be stored in an environment file. See
Chapter 7 for information on defining your own placeholders.
TOKENS
Tokens are typically keywords in programming languages. When
expanded, tokens provide additional language constructs. Tokens are
typed directly into the buffer. Generally, tokens are used in
situations when you want to add additional language constructs where
there are no placeholders. For example, typing IF and pressing the
EXPAND key causes a template for an IF construct to appear on your
screen. Tokens are also used to bypass long menus in situations
where expanding a placeholder, such as {statement}, would result in a
lengthy menu.
You can use tokens to insert text when editing an existing file.
Because most languages have tokens for built-in functions and
keywords, you type the name for a function or keyword and press the
EXPAND key. In addition, most languages provide a token named
'statement' or 'expression' that expands into a menu of all possible
statements or expressions.
The following example demonstrates how to use tokens to edit an
existing program. In this case, the buffer, TEST.EXAMPLE, contains
the following code:
PROCEDURE test ()
IF A = B
THEN
A = C + 1
ENDIF
ENDPROCEDURE test
If you want to add more statements to this program before the IF
construct, do the following:
1. Move the cursor to the beginning of the IF procedure line.
2. Press the OPEN LINE key (PF1-KP0).
3. Press the TAB key.
Note that the cursor is placed at the same level of indentation
as the next line.
4. Type statement and press the EXPAND key.
A menu of statements will now appear on your screen. You use the
arrow keys to scroll through the menu. To select a menu item, you
press the EXPAND, ENTER, or RETURN key. You can press the space bar
to exit a menu without selecting an item.
Additional information available:
Terminal PlaceholdersNonterminal PlaceholdersMenu Placeholders
Terminal Placeholders
If the current position is on a terminal placeholder when the EXPAND key is pressed, the Editor displays a description of valid replacements for the terminal placeholder. Pressing the up and down arrows (bound to the GOTO CHARACTER/VERTICAL command) allows you to move within the text. Pressing the space bar removes the text and returns you to the original buffer without making any changes. Pressing any other key clears the text and performs the operation normally associated with the key.
Nonterminal Placeholders
If the current position is on a nonterminal placeholder when the EXPAND key is pressed, the Editor deletes the placeholder and replaces it with the text of the placeholder body.
Menu Placeholders
When a menu placeholder is expanded, the Editor displays a list of
options. Pressing the up and down arrow keys (bound to the GOTO
CHARACTER/VERTICAL command) allows you to move from one option to
another.
To obtain help text on an indicated option, press the GOLD-HELP (PF2)
sequence.
Pressing the EXPAND, ENTER, or RETURN key allows you to expand the
selected option and remove the menu display.
Pressing the key bound to the GOTO SCREEN command (Keypad 8 key) also
allows you to move through the menu, skipping several options at a
time.
Pressing any other key removes the menu display and performs the
operation normally associated with the key.
If the option is a placeholder name, the placeholder is enclosed in
the same class of delimiter as the menu option being expanded (unless
the /LIST qualifier on DEFINE PLACEHOLDER specifies otherwise) and
the Editor then automatically performs an EXPAND operation. If /LIST
is specified, the list form of the delimiter found on the menu option
is used.
If there is a description associated with the placeholder or token
name appearing as a choice in a menu, the Editor displays the
description along with the name. For example:
IF: tests an expression and establishes an action
Languages
LSE allows you to use its knowledge of programming languages to
develop software. LSE also allows you to design your own languages.
In addition to programming languages, you can define languages for
other things, such as memos or letters. Once you have defined a
language, you can save it in an environment file and recall it for
subsequent editing and update sessions.
To create a new language, you first create a source file (.LSE),
within LSE, into which you put the LSE commands that define the
elements of your language. Once the source file is completed, use
the DO command to process the definitions. You may then use the SAVE
ENVIRONMENT command to save the definitions in binary form for
subsequent use by LSE. For example, to create a file for a new
language, you do the following:
1. Create a source file in an empty buffer, with a .LSE
extension.
2. Put all language, token, and placeholder definitions
in the source file.
3. Execute the commands in the source file by executing
a DO command (to load the definitions for the current
editing session).
4. Execute a SAVE ENVIRONMENT command to save your new
language definitions in a binary file (.ENV), for
subsequent use.
Thus, to create a binary image file (.ENV) for your language, you use
the following sequence of commands:
LSE> DO
LSE> SAVE ENVIRONMENT filename
LSE> EXIT
Additional information available:
Defining a LanguageLanguage Commands
Defining a Language
All template definitions, whether text or language-oriented, begin
with a language definition command (DEFINE LANGUAGE) that specifies
language characteristics. For example, to define a language, you use
the DEFINE LANGUAGE command to specify:
1. The name of your language (DEFINE LANGUAGE).
2. The file types (/FILE_TYPES) for the language.
3. The identifier characters to be used in token and
alias names (/IDENTIFER_CHARACTERS).
4. The punctuation and delimiter characters
(/PUNCTUATION_CHARACTERS).
5. The required and optional placeholder delimiters
(/OPT, /OPTL, /REQ, /REQL).
6. The initial text heading for the new file
(/INITIAL_STRING).
7. The indentation control for tokens and placeholders
(/TAB_INCREMENT).
Example:
DEFINE LANGUAGE MEMO -
/IDENTIFIER CHARACTERS = -
"abcd....XYZ0123456789" -
/INITIAL_STRING ={memo_template}" -
/FILE_TYPES = (.MEMO) -
/TAB_INCREMENT = 4 -
/OPT = ("[","]") -
/OPTL = ("[","]...") -
/PUNCTUATION_CHARACTERS = ".,':*+-/" -
/REQ = ("[","]") -
/REQL = ("[","]...") -
To define a placeholder, you use the DEFINE PLACEHOLDER command to
specify:
1. The name of your placeholder (DEFINE PLACEHOLDER).
2. The associated language (/LANGUAGE).
3. The type of placeholder: terminal, nonterminal, or menu
(/TYPE).
4. The description that you want displayed when the placeholder
is used in a menu or in the SHOW PLACEHOLDER command.
5. The end of the placeholder definition (END DEFINE).
Example:
.
.
DEFINE PLACEHOLDER subject_line -
/LANGUAGE = MEMO -
/TYPE = TERMINAL -
"Subject of the memo."
END DEFINE
To define a token you use the DEFINE TOKEN command to specify:
1. The name of your token (DEFINE TOKEN).
2. The associated language (/LANGUAGE).
3. The description that you want displayed when the token
is used in a menu or in the SHOW TOKEN command.
4. The end of the token definition (END DEFINE).
Example:
.
.
DEFINE TOKEN location -
/LANGUAGE = MEMO -
/DESCRIPTION = "Office location"
"LOC: URE-0096"
END DEFINE
Language Commands
LSE provides the following commands for creating and manipulating
language elements:
DEFINE ALIAS [/LANGUAGE=name]
specifies the alias name to be defined in the specified
language.
DEFINE LANGUAGE name
specifies characteristics for the current language.
DEFINE PLACEHOLDER [/LANGUAGE=name]
specifies placeholder characteristics for the specified
language.
DEFINE TOKEN [/LANGUAGE=name]
specifies token characteristics for the specified language.
DELETE ALIAS [/LANGUAGE=name]
cancels the effect of a DEFINE ALIAS command used for the
specified language.
DELETE LANGUAGE name
cancels the effect of a DEFINE LANGUAGE command.
DELETE PLACEHOLDER [/LANGUAGE=name]
cancels the effects of a DEFINE PLACEHOLDER command used for
the specified language.
DELETE TOKEN [/LANGUAGE=name]
cancels the effect of DEFINE TOKEN command used in the
specified language.
DO
executes LSE commands or VAXTPU program statements.
END DEFINE
terminates a DEFINE TOKEN or DEFINE PLACEHOLDER command.
EXTRACT LANGUAGE language-name
selects the definition of the named language and formats it
as a command.
HELP/LANGUAGE [name | * ]
displays help information about the specified language.
MODIFY LANGUAGE name
modifies the characteristics of a specified language.
SAVE ENVIRONMENT file-spec
writes all user-defined languages, tokens, and placeholders
to a specified file.
SHOW ALIAS name [/LANGUAGE=name]
displays the characteristics of the specified alias for the
specified language.
SHOW LANGUAGE [ name | * ]
displays the characteristics of the specified language.
SHOW TOKEN name [/LANGUAGE=name]
displays the characteristics of the specified token for the
specified language.
SHOW PLACEHOLDER name [/LANGUAGE=name]
displays the characteristics of the specified placeholder for
the specified language.
Getting Started
If you are experimenting with a new file associated with one of the
supported languages, the following procedures may be helpful (see
also topic "Entering_Code").
o Once you have invoked LSE, and the initial string
appears on the screen, press the EXPAND key (CTRL/E) and
the structure of a program associated with your language
will appear.
o Using the arrow keys, move through the menu and expand your
choice by pressing CTRL/E, the ENTER key, or the RETURN key.
o Using the GOTO PLACEHOLDER/FORWARD key (CTRL/N), move from
one placeholder to the next, expanding and typing in text as
you go. If you need help on a placeholder (or token), press
the HELP/INDICATED key sequence (PF1-PF2) while you are
positioned on the placeholder.
o For those optional placeholders you do not want, press the
ERASE PLACEHOLDER/FORWARD key (CTRL/K).
o Enter command mode by pressing CTRL/Z, for the LSE> prompt,
or the GOLD COMMAND key sequence (PF1 and keypad 7) for the
LSE Command> prompt. When using the LSE> prompt, type
CONTINUE to return to editing. Type the EXIT or QUIT
command to leave LSE; however, if you make modifications
to the file, you must type the EXIT command to save the
changes you have made.
If you wish to get more general information about LSE, do the
following:
o To see a diagram of the keypad, press the HELP key (PF2).
o To obtain a listing of the keys and their descriptions, press
CTRL/Z to get the LSE> prompt, and type the SHOW KEY command.
o To see a list of LSE commands and their explanations, press
CTRL/Z to get the LSE> prompt, and type HELP COMMANDS.
o To display a list of all the predefined tokens or placeholders
for the language of the current buffer, press CTRL/Z to get
the LSE> prompt, and type the SHOW TOKEN or SHOW PLACEHOLDER
command.
o To get language-specific help on a particular keyword or
placeholder, position the cursor on the keyword or placeholder
and press GOLD PF2. Help is not available for all keywords and
placeholders.
Additional information available:
Using Menus
Each option in a menu is either a token, a placeholder, or a string.
If you select a token or placeholder, the expansion of that option
appears in the buffer. If you choose a string the string appears in
the buffer. The menu is removed from the screen after you select a
menu option.
When a menu first appears on the screen, you can:
1. Move through the menu by pressing the up or down arrow
keys. (This causes the indicator to move from one option
to the next.)
2. Select an option from the menu by pressing the EXPAND key
(CTRL/E), the ENTER key, or the RETURN key, while the
indicator is on the desired option.
3. Press the PF2 or HELP key to get additional help.
4. Press the space bar to cause the menu to disappear (this
has no effect on the user's buffer). Pressing any other
key also makes the menu disappear, however, the key's
function is performed.
Command Categories
The following information describes the use of LSE commands by task and function.
Additional information available:
Edit SessionsEntering CodeText ManipulationCompile and Review
CMS InterfaceIndenting CodeCursor MovementScreen Control
Tailor EnvironmentsFiles and BuffersHelp and Status
Edit Sessions
ATTACH
allows you to switch control of your terminal to another
process.
CONTINUE
exits line mode and enters keypad mode.
DCL
executes a DCL command from within your editing session
DO
executes LSE commands or VAXTPU program statements.
EXIT
terminates an edit session, returns to the calling
program, and saves buffers.
GOTO COMMAND
produces the LSE Command> prompt at which LSE or SCA commands
can be issued.
QUIT
terminates an edit session and returns to the calling
program without saving buffers.
REPEAT repeat-count [command]
executes a specified command a specified number of times.
SET DEFAULT_DIRECTORY
changes your default device and directory specifications.
SET FONT
sets the specified fonts for the screen.
SET JOURNALING
enables buffer journaling for the specified buffers.
SET NOJOURNALING
disables buffer journaling for the specified buffers.
SPAWN
suspends the edit session and spawns a subprocess at the
DCL level.
Entering Code
ENTER COMMENT
converts pseudocode into comments.
ENTER PSEUDOCODE
inserts pseudocode placeholder delimiters.
EXPAND
expands the token name at the current cursor position.
ERASE PLACEHOLDER
deletes placeholder text and related punctuation.
GOTO PLACEHOLDER
moves the cursor to a placeholder
MODIFY LANGUAGE
modifies the characteristics of a specified language.
SET AUTO_ERASE
enables automatic erasing of placeholders.
SET LANGUAGE
sets the specified language associated with the specified
buffer
SET NOAUTO_ERASE
disables automatic erasing of placeholders.
SET NOLANGUAGE
disassociates the language associated with the indicated buffer.
UNDO ENTER COMMENT
reverses the effect of the last ENTER COMMENT command.
UNERASE PLACEHOLDER
restores placeholder text to its original postion.
UNEXPAND
reverses the effect of the last EXPAND command.
Text Manipulation
CANCEL SELECT_MARK
cancels the select range of the SET SELECT_MARK command.
CAPITALIZE WORD
capitalizes the first letter of the current word, or words,
in a selected range.
CENTER LINE
centers the current line between the left and right margins.
CHANGE CASE
changes the case (upper/lower) of each letter in the specified
range.
CHANGE DIRECTION
changes the current direction of the current buffer.
CHANGE INDENTATION
adds or deletes leading blanks or tabs in the select range.
CHANGE TEXT_ENTRY_MODE
changes the edit mode (insert/overstrike) of the current buffer.
CUT
deletes and moves text in the select range to the current
buffer.
ENTER LINE
inserts a blank line at the end of a line and repositions the
cursor to it.
ENTER SPACE
inserts a blank character and performs a fill at the current
cursor position.
ENTER SPECIAL [ASCII-code]
inserts a specified ASCII character in decimal at the current
cursor position.
ENTER TAB
inserts tabs and blanks at the current cursor position.
ENTER TEXT quoted-string
inserts a specified string at the current cursor position.
ERASE CHARACTER
deletes a character from the current buffer.
ERASE LINE
deletes a line of text from the current buffer.
ERASE PLACEHOLDER
deletes placeholder text and related punctuation.
ERASE SELECTION
removes the text within the selected range.
ERASE WORD
deletes a word from the current buffer.
EXPAND
replaces placeholders, token, alias, or routine names at the
current cursor position with appropriate text or code.
FILL
fills the line in the select range.
LOWERCASE WORD
changes the letters in the current word to lowercase.
PASTE
copies the contents of the paste buffer to the current
buffer.
QUOTE
enters a control code or other character, either as text in
the buffer you are editing or as a string command
SELECT ALL
selects the entire contents of the current buffer.
SET AUTO_ERASE
enables automatic erasing of placeholders.
SET FORWARD
sets the direction of the current buffer forward.
SET INSERT
sets the text entry mode of the current buffer to insert
mode.
SET NOAUTO_ERASE
disables automatic erasing of placeholders.
SET NOWRAP
disables wrapping in the indicated buffer.
SET OVERSTRIKE
sets the text entry mode of the current buffer to overstrike
mode.
SET REVERSE
sets the direction of the current buffer to reverse.
SET SELECT_MARK
marks a position as one end of a select mark.
SET WRAP
enables wrapping in the indicated buffer.
SPELL
runs DECspell to check the currently selected text or the entire
buffer.
SUBSTITUTE quoted-search-string quoted-replace-string
searches for a specified string and replaces it with a
specified string.
TAB
inserts blanks and tabs to move cursor to current indentation
level or next tab stop.
TOGGLE SELECT_MARK
sets and resets the state of SELECT_MARK.
UNERASE erase-command-option
restores text deleted by an ERASE command option.
UNEXPAND
reverses the effect of the last EXPAND command.
UNTAB
removes blanks and tabs to the left of the cursor moving the
cursor to the previous tab stop.
UPPERCASE WORD
changes the current word to uppercase.
Compile and Review
COMPILE
compiles the contents of a buffer without leaving LSE
END REVIEW
ends an LSE REVIEW session.
GOTO SOURCE
displays the source related to the current diagnostic or
query item.
GOTO REVIEW
moves to the currently active review session.
NEXT ERROR
selects the next diagnostic in the current set.
PREVIOUS ERROR
selects the previous diagnostic in the current set.
REVIEW
selects and displays a set of diagnostic messages resulting
from a compilation.
CMS Interface
CMS [cms-command]
enables the execution of DEC/CMS command within
LSE.
GOTO FILE
moves the cursor to the buffer containing the
specified file.
GOTO SOURCE
moves from a dignostic or symbol in a review
or query buffer to the related item in the
associated source buffer.
READ
opens a specified file for input and places
its contents in a specified buffer.
RESERVE [element-name]
Reserves the element specified in your current
CMS library.
REPLACE
Replaces the element (with the same specification
as the input file for your current buffer) into
your current CMS library.
SET CMS
sets the default values for reservations and fetches
that LSE performs.
SET MODIFY
sets buffer status to modifiable.
SET SOURCE_DIRECTORY
specifies a search list of directories for your
CMS source files.
UNRESERVE
unreserves the element specified by the last
RESERVE command.
Indenting Code
CHANGE INDENTATION
adds or deletes leading blanks or tabs in the select
range.
ENTER TAB
inserts indentation at the beginning of a line or a
tab at the cursor position.
SET INDENTATION
changes the inentation level for the buffer.
SET TAB_INCREMENT
specifies the number of columns between tab stops.
TAB
inserts blanks and tabs to move cursor to current indentation
level or next tab stop.
UNTAB
removes blanks and tabs to the left of the cursor moving the
cursor to the previous tab stop.
Cursor Movement
CANCEL MARK
disassociates a mark and deletes the specified name.
CHANGE DIRECTION
changes cursor direction (forward/reverse) through the
current buffer.
GOTO BOTTOM
moves the cursor to the bottom of the current buffer.
GOTO BUFFER
moves to the last cursor position held in the specified
buffer.
GOTO CHARACTER
moves the cursor to the next character.
GOTO FILE file-spec
moves the cursor to the last position held in the buffer
specified by the file-spec.
GOTO LINE
moves the cursor to the next line.
GOTO MARK
moves the cursor to the mark-name specified by the SET MARK
command.
GOTO PAGE
moves the cursor to the next page.
GOTO PLACEHOLDER
moves the cursor to the next placeholder.
GOTO SCREEN
moves the cursor the current direction by the number of
lines in the current window.
GOTO SOURCE
moves to the source associated with the current diagnostic
or query item.
GOTO TOP
moves the cursor to the top of the current buffer.
GOTO WORD
moves the cursor to the next word in the current buffer.
LINE
moves the cursor in the current buffer to the start of the source
line you specify.
NEXT ERROR
selects the next diagnostic in the current set.
PREVIOUS ERROR
selects the previous diagnostic in the current set.
SEARCH quoted-string
moves the cursor to a specified string in the current buffer.
SET CURSOR
selects either bound cursor motion or free cursor motion.
SET FORWARD
sets the current buffer direction forward.
SET MARK
specifies a name at the current cursor position for a GOTO MARK
command.
SET REVERSE
sets the current buffer direction backward.
SET SEARCH
sets text search options.
Screen Control
CHANGE WINDOW_MODE
alters the number of displayed windows.
DELETE WINDOW
deletes the current window.
ENLARGE WINDOW
enlarges the current window.
GOTO BUFFER
moves the cursor to the last position held in
the specified buffer.
GOTO FILE
moves the cursor to a buffer containing the
specified file.
GOTO SCREEN
moves the cursor in the current direction by the
number of lines in the current window.
GOTO SOURCE
uses the current cursor position in the review or query buffer
to select an associated diagnostic or item in the related source
buffer.
NEXT WINDOW
selects the alternate window.
ONE WINDOW
deletes all but the current window.
OTHER WINDOW
moves the cursor from the current window to the next
window if the screen is split into multiple windows
PREVIOUS WINDOW
selects the alternate window.
REFRESH
rewrites the display screen
SET SCREEN
defines the display screen characteristics.
SET SCROLL_MARGINS
delimits the lines at which the cursor triggers
scrolling.
SHIFT
scrolls a window horizontally.
SHRINK WINDOW
shrinks the current window.
SPLIT WINDOW
divides the current window into two or more
windows.
TWO WINDOWS
splits the current window into two windows.
Tailor Environments
CALL
evokes a specified VAXTPU procedure.
DEFINE ALIAS
specifies the alias name to be defined in the specified
language.
DEFINE ADJUSTMENT
defines the behavior of the LSE viewing commands
on individual lines of a source file.
DEFINE COMMAND
specifies a user command or an abbreviation for an LSE
command.
DEFINE KEY
binds an LSE command to a key.
DEFINE KEYWORDS
defines the indicated keyword list.
DEFINE LANGUAGE
specifies the characteristics of a language.
DEFINE PACKAGE
specifies a subroutine package for which call templates
are automaically generated.
DEFINE PARAMETER
specifies a parameter within a specified package.
DEFINE PLACEHOLDER
specifies a placeholder and characteristics for a specified
language.
DEFINE ROUTINE
specifies templates for a routine within a package.
DEFINE TOKEN
specifies a token and characteristics for a specified
language.
DELETE ALIAS
deletes the definition of an alias name.
DELETE ADJUSTMENT
removes a name from the list of adjustments associated
with a language.
DELETE COMMAND
deletes the definition of a user-defined command.
DELETE KEY
deletes the definition of a specified key.
DELETE KEYWORDS
cancels the indicated keywords definition.
DELETE LANGUAGE
deletes the definition of a specified language.
DELETE PACKAGE
deletes the definition of a specified package.
DELETE PARAMETER
deletes the definition of a specified parameter.
DELETE PLACEHOLDER
deletes the definition of a specified placeholder.
DELETE ROUTINE
deletes the definition of a specified routine.
DELETE TOKEN
deletes the definition of a specified token.
DO
executes LSE commands or VAXTPU program statements.
END DEFINE
terminates a DEFINE TOKEN or DEFINE PLACEHOLDER command.
EXTEND
compiles one or more VAXTPU procedures to extend LSE.
EXTRACT ADJUSTMENT
extracts the definition of the named adjustment and formats
the definition as a command.
EXTRACT ALIAS
selects the definition of the alias name and formats
it as a command.
EXTRACT KEYWORDS
extracts the definition of the named keyword list and
formats the definition as a command.
EXTRACT LANGUAGE
selects the definition of the named language and formats it
as a command.
EXTRACT MODULE
extracts specified modules of source analysis data from an
SCA library.
EXTRACT PACKAGE
extracts the definition of the named package and
formats the definition as a command.
EXTRACT PARAMETER
extracts the definition of the named parameter and
formats the definition as a command.
EXTRACT PLACEHOLDER
extracts the definition of the named placeholder and
formats the definition as a command.
EXTRACT ROUTINE
extracts the definition of the named routine and
formats the definition as a command.
EXTRACT TAG
extracts the definition of the named tag and
formats the definition as a command.
EXTRACT TOKEN
extracts the definition of the named token and
formats the definition as a command.
MODIFY LANGUAGE name
modifies the characteristics of a specified language.
SAVE SECTION
writes the binary form of current key definitions, learn
sequences, user-defined commands, mode settings, and VAXTPU
procedures and variables to a section file.
SAVE ENVIRONMENT
writes all user-defined languages, tokens, and placeholders
to a specified file.
SET MODE
changes the setting of the BELL, KEYPAD, and MENU modes.
SET SEARCH
sets text search options.
Files and Buffers
CHANGE TEXT_ENTRY_MODE
switches the text entry mode between insert and overstrike.
CLOSE BUFFER
deletes the current buffer
CUT
moves selected text to a specified buffer.
DELETE BUFFER
deletes a specified buffer.
GOTO BUFFER
moves to the specified buffer.
GOTO FILE
moves to a buffer containing the specified file or reads
the file into a new buffer.
GOTO SOURCE
moves to the source associated with the current diagnostic
message or query item.
INCLUDE
inserts the specified file at the current cursor position.
NEXT BUFFER
moves your next buffer into the current window, returning
to your last position in that buffer.
PASTE
copies the contents of a specified buffer to the current
cursor position in the current buffer.
PREVIOUS BUFFER
moves your previous buffer into the current window,
returning to your last position in that buffer.
READ file-spec
inputs a specified file to the current buffer.
RECOVER BUFFER
reconstructs the contents of a buffer from a buffer change
journal file.
SET DEFAULT_DIRECTORY
changes your default device and directory specifications.
SET DIRECTORY
sets the default read-only/writeable status of files in
a specified directory.
SET FORWARD
sets the direction of the specified buffer to forward.
SET INDENTATION
changes the indentation level for the current buffer.
SET INSERT
sets the text entry mode of the specified buffer to insert
mode.
SET LEFT_MARGIN
specifies the left margin of the current buffer for FILL
and ENTER SPACE commands.
SET MODIFY
sets buffer status to modifiable.
SET NOMODIFY
sets buffer to unmodifiable (display-only).
SET NOSOURCE_DIRECTORY
specifies a directory to be removed from the list of source
directories.
SET OUTPUT_FILE
changes the output file associated with the current buffer.
SET OVERSTRIKE
sets the text entry mode of the specified buffer to overstrike
mode.
SET READ_ONLY
specifies that following a COMPILE command or an exit from
LSE, the buffer not be written to a file.
SET REVERSE
sets the direction of the specified buffer backward.
SET RIGHT_MARGIN
specifies the right margin for FILL and ENTER SPACE commands.
SET SOURCE_DIRECTORY
specifies a search list of source file directories.
SET TAB_INCREMENT
specifies the number of columns between tab stops for the
current buffer.
SET WRAP
enables wrapping in the indicated buffer.
SHOW BUFFER
displays specified buffer characteristics.
WRITE
writes the contents of the specified buffer or select range
to a specified file.
Help and Status
HELP [topic-list]
displays information about a specified topic.
SHOW ADJUSTMENT
displays the characteristics of indicated adjustments.
SHOW ALIAS
displays the characteristics of the specified alias.
SHOW BUFFER
displays the characteristics of the specified buffer.
SHOW CMS
displays the current SET CMS settings.
SHOW DEFAULT_DIRECTORY
displays the current default device and directory.
SHOW COMMAND
displays the characteristics of the specified user-defined
command.
SHOW DIRECTORY
displays the setting of the SET DIRECTORY command.
SHOW KEY
displays the characteristics of the specified keyboard
binding.
SHOW KEYWORDS
displays the characteristics of the specified keyword.
SHOW LANGUAGE
displays the characteristics of the specified language.
SHOW LIBRARY
displays the directory specifications of SCA libraries.
SHOW MARK
displays the setting of the specified mark.
SHOW MODE
Displays the current mode settings.
SHOW MODULE
displays SCA library module information.
SHOW PACKAGE
displays the characteristics of the specified package.
SHOW PARAMETER
displays the characteristics of the specified parameter.
SHOW PLACEHOLDER
displays the characteristics of the specified placeholder.
SHOW QUERY
displays information about current SCA query sessions.
SHOW ROUTINE
displays the characteristics of the specified routine.
SHOW SCREEN
displays information about current SCA query sessions.
SHOW SEARCH
displays the settings of text search options.
SHOW SOURCE_DIRECTORY
displays the directories set by the SET SOURCE_DIRECTORY
command.
SHOW SUMMARY
shows statistics and other information about LSE.
SHOW TAG
displays the characteristics of indicated tags.
SHOW TOKEN
displays the characteristics of the specified token.
SHOW VERSION
displays the current version of LSE and SCA.
WHAT LINE
shows the current line number and total number of lines
in the buffer. Also shows what percentage of the lines
in the buffer are located above the current line.
Entering Code
To support rapid source code development and decrease the occurrence of syntactic errors, LSE provides language-specific tokens and placeholders. Tokens and placeholders allow for the insertion of source code, within language constructs, by expanding the name a user types and by further expanding tokens and placeholders on syntactic markers. On-line help for language features is also provided that is keyed to the names of tokens and placeholders.
Additional information available:
TokensPlaceholdersAliasesNew FilesOld Files
Tokens
Tokens are models of program language constructs that are referenced
by name from a template buffer. When a token name is entered, LSE
replaces the name with the specified template body from the buffer
(see also topic "Tokens_and_Placeholders").
The LSE commands used for the manipulation of tokens are:
DEFINE TOKEN name
specifies template characteristics for an EXPAND command.
DELETE TOKEN name
cancels the effect of a DEFINE TEMPLATE command.
END DEFINE
terminates a DEFINE command.
EXPAND
expands the token name at the current cursor position.
EXTRACT TOKEN token-name
selects the definition of the named token and formats it
as a command.
SAVE ENVIRONMENT [ file-spec ]
writes all user-defined tokens to a specified file
SHOW TOKEN [ name | * ]
displays information about the specified token.
UNEXPAND
reverses the effect of the last EXPAND command.
Placeholders
Placeholders are syntactic character strings that hold the place of
program language constructs. When a placeholder name is expanded, it
expands to either an actual value (terminal node) or another
construct (nonterminal node) requiring further expansion (see also
Topics "Tokens_and_Placeholders").
The LSE commands used for the manipulation of placeholders are:
DEFINE PLACEHOLDER name
specifies placeholder characteristics for the current
language.
DELETE PLACEHOLDER name
cancels the effect of a DEFINE PLACEHOLDER command.
END DEFINE
terminates a DEFINE command.
ERASE PLACEHOLDER
deletes the text of a selected placeholder.
EXPAND
expands the placeholder-name at the current cursor postion.
EXTRACT PLACEHOLDER placeholder-name
selects the definition of the named placeholder and formats
it as a command.
GOTO PLACEHOLDER
moves the cursor to the next placeholder.
SAVE ENVIRONMENT [file-spec]
writes all user-defined placeholders to the specified file.
SHOW PLACEHOLDER [name | * ]
displays the characteristics of the specified placeholder.
UNEXPAND
reverses the effect of the last EXPAND command.
Aliases
Aliases are abbreviated reference names for long identifiers that
have been entered in the source code. To define an alias for an
identifier on which the cursor is currently located, press the
GOLD-CTRL/A key sequence and type the abbreviation at the prompt:
_Alias name: name
Whenever the abbreviated reference name is typed and expanded
(CTRL/E), the original identifier string will appear in the buffer.
The LSE commands used for the manipulation of aliases are:
EXTRACT ALIAS alias-name
selects the definition of the alias name and formats
it as a command.
DEFINE ALIAS name [value]
specifies the alias name to be assigned and the value
of the string to be referenced.
DELETE ALIAS name
specifies the alias name to be deleted.
New Files
To edit a new file in one of the supported languages, the following
commands are required for the manipulation of tokens and
placeholders:
o ERASE PLACEHOLDER/FORWARD (CTRL/K)
o EXPAND (CTRL/E)
o GOTO PLACEHOLDER/FORWARD (CTRL/N)
o GOTO PLACEHOLDER/REVERSE (CTRL/P)
o UNERASE PLACEHOLDER (PF1-CTRL/K)
o UNEXPAND (PF1-CTRL/E)
When you press the EXPAND key (CTRL/E), while the cursor is on a
placeholder name, one of the following will occur:
o The placeholder will be replaced automatically with a template
consisting of language constructs. This type of placeholder is
called a "nonterminal placeholder" because it will insert a
template into the buffer when expanded.
o Text will appear in a separate window to aid you in supplying a
value. This type of placeholder is called a "terminal
placeholder" because it does not insert a template into the
buffer when expanded. Instead, you must supply the necessary
text. You can press the spacebar to remove the window.
o A menu will appear that provides you with options that can be
selected and expanded into templates. This type of placeholder
is called a "menu placeholder".
In any of these three cases, you may type in the desired text over
the placeholder, and the placeholder will be erased automatically.
When expanding a menu placeholder, you can move through the options
by using the up and down arrow keys. To select an option, you press
the EXPAND key, the RETURN key, or the ENTER key. To exit the menu
without selecting an option, you press the spacebar.
You can construct a complete program by repeatedly expanding
templates. You do not have to continuously expand templates until
you reach a terminal placeholder. Rather, you may find it more
appropriate to type in the desired value yourself at a higher level
(see also topics "Tokens_and_Placeholders" and "Getting_Started").
Old Files
To edit an existing file, in one of the supported languages, you use tokens. Since tokens exist for many reserved words, simply type the token name and press the EXPAND key (CTRL/E). For example, typing IF followed by a CTRL/E causes a template for an IF construct to appear on your screen. (Use the SHOW TOKEN command to acquire a listing of all the predefined tokens.)
Compiling
While writing your program, you can use the COMPILE and REVIEW
commands to compile your code and review compilation errors without
leaving the editing session.
Supported VMS language compilers generate a file of compile-time
diagnostic information that LSE can use to review compilation errors.
The diagnostic information is generated with the /DIAGNOSTICS
qualifier.
The COMPILE command issues a DCL command in a subprocess to invoke
the appropriate compiler. LSE checks to see if the language provides
/DIAGNOSTICS capabilities. If so, LSE appends the /DIAGNOSTICS
qualifier onto the compilation command.
For example, if you issue the COMPILE command while in the buffer
TEST.ADA, the resulting DCL command is as follows:
$ ADA DEV:[DIRECTORY]TEST.ADA/DIAGNOSTICS=DEV:[DIRECTORY]TEST.DIA
LSE supports all of the compiler's command qualifiers as well as
user-supplied command procedures. You can specify DCL qualifiers,
such as /LIBRARY, when invoking the compiler from LSE. (See the
Command Dictionary for details on the COMPILE command.)
The REVIEW command displays any diagnostic messages that resulted
from a compilation. LSE displays the compilation errors in one
window, with the corresponding source code displayed in a second
window.
This multiwindow capability allows you to review your errors while
examining the associated source code. This eliminates tedious steps
in the error correction process and helps ensure that all the errors
are fixed before looping back through the compilation process.
LSE provides several commands to help you review errors and exam your
source code. The following lists these commands and their default
key bindings.
COMPILE/REVIEW
compiles and reviews the content of the current buffer.
END REVIEW
terminates the current review session.
GOTO SOURCE
uses the current cursor position in $REVIEW to select
the diagnostic in the source buffer. This command is
bound to CTRL/G.
NEXT ERROR
selects the next diagnostic message from $REVIEW.
NEXT STEP
selects the next diagnostic message from $REVIEW.
This command is bound to CTRL/F.
PREVIOUS ERROR
selects the previous diagnostic message from $REVIEW.
PREVIOUS STEP
selects the previous diagnostic message from $REVIEW.
This command is bound to CTRL/B.
REVIEW
displays the diagnostic messages resulting from a
compilation.
CMS Interface
LSE V3.0 provides for invoking DEC/CMS from the LSE command line
using the CMS command. Also, when LSE must access a file from the
directory that is the user's CMS library, LSE will automatically use
CMS to FETCH the file. LSE also has a RESERVE command to reserve the
element in your current CMS library that has the same name and type
as the file associated with your current buffer. The UNRESERVE and
REPLACE commands also provide the corresonding CMS operation for the
file in your current buffer.
See the manual for information "File Manipulation" and for
descriptions of the following new or enhanced commands related to
source code management and DEC/CMS:
CMS
GOTO FILE
GOTO SOURCE
READ
REPLACE
RESERVE
SET CMS
UNRESERVE
New Features
For information on new features, see the release notes in SYS$HELP:LSE030.RELEASE_NOTES.
Additional information available:
New LSE Commands
The following is a summary of the commands that have been added or
enhanced for LSE V3.0. Note that a number of commands are identical
to commands found in EVE V2.4.
1. ANALYZE [SCA Command]
Creates an analysis data file that describes a source file.
2. COLLAPSE
Compresses text at the current cursor position.
3. CONVERT LIBRARY [SCA Command]
Converts the specified library from Version 1.n format to Version
2.0 format.
4. DCL
Executes a DCL command from within your editing session. (EVE)
5. DEFINE ADJUSTMENT
Defines the behavior of the LSE viewing commands on individual
lines of a source file.
6. DEFINE KEYWORDS
Defines the indicated keyword list.
7. DEFINE PLACEHOLDER /[NO]PSEUDOCODE
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.
8. DEFINE TAG
Defines the specified tag.
9. DELETE ADJUSTMENT
Removes a name from the list of adjustments associated with a
language.
10. DELETE KEYWORDS
Cancels the indicated keywords definition.
11. DELETE LIBRARY [SCA Command]
Deletes an SCA library from a VMS directory.
12. DELETE TAG
Removes a name from the list of tags associated with a language.
13. ENTER COMMENT
Converts pseudocode into comments.
14. ENTER PSEUDOCODE
Inserts pseudocode placeholder delimiters.
15. EXPAND
Replaces the placeholder, token, or alias with the body.
16. EXTEND
Compiles one or more VAXTPU procedures to extend LSE. (EVE)
17. EXTRACT ADJUSTMENT
Extracts the definition of the named adjustment and formats the
definition as a command.
18. EXTRACT KEYWORDS
Extracts the definition of the named keyword list and formats the
definition as a command.
19. EXTRACT TAG
Extracts the definition of the named tag and formats the
definition as a command.
20. FIND [SCA Command]
Locates occurrences of symbol or file sources described by the
SCA libraries. The FIND command supersedes the FIND command from
previous versions.
21. FOCUS
Displays an overview of the buffer and compresses the rest of the
buffer as much as possible.
22. INSPECT [SCA Command]
Inspects the consistency between declarations or references for
the same symbol.
23. LINE
Moves the cursor in the current buffer to the start of the source
line you specify. (EVE)
24. LOAD /DELETE [SCA Command]
Deletes an analysis data file after it has been successfully
loaded into an SCA library.
25. RECALL
Recalls a previous LSE command, which you can edit and execute
again. (EVE)
26. RECOVER BUFFER
Reconstructs the contents of a buffer from a buffer change
journal file. (EVE)
27. REPORT [SCA Command]
Produces the specified report.
28. SET JOURNALING
Enables buffer change journaling for the specified buffers.
29. SET NOJOURNALING
Disables buffer journaling for the specified buffers.
30. SET NOOVERVIEW
Disables overview operations in the indicated buffer.
31. SET OVERVIEW
Enables overview operations in the indicated buffer.
32. SHOW ADJUSTMENT
Displays the characteristics of indicated adjustments.
33. SHOW KEYWORDS
Displays the characteristics of the specified keyword list.
34. SHOW SUMMARY
Shows statistics and other information about LSE. (EVE)
35. SHOW TAG
Displays the characteristics of indicated tags.
36. SPELL
Runs DECspell to check the currently selected text or the entire
buffer. (EVE)
37. VIEW SOURCE
Displays an overview of the buffer.
38. WHAT LINE
Shows the current line number and total number of lines in the
buffer. Also shows what percentage of the lines in the buffer
are located above the current line. (EVE)
New Users
The VAX Language-Sensitive Editor (LSE) is a multi-language advanced
text editor designed specifically for software development.
LSE is invoked with command line of the following form:
LSEDIT [/qualifier] [file-spec]
/qualifier
specifies LSEDIT command line qualifiers
file-spec
specifies the file to be edited. LSE reads the
file into a buffer. The name of the buffer is taken
from the file name and type specified. The file name
and type must be a valid VMS file specification.
The file type determines the language for the buffer. For example,
.FOR specifies the FORTRAN language and .AS specifies PASCAL. If you
omit the file type, or specify a file type unknown to VMS, no
language is assumed.
To simplify editing, LSE binds commonly used commands to certain
keys, and provides access to both EDT and EVE keypads. By default,
LSE is initiated in EDT-keypad mode. You can get help on keys by
pressing the HELP key, marked HELP or PF2.
You can enter a single command by typing the GOLD-COMMAND (PF1-KP7)
key sequence or pressing DO to get an "LSE Command>" prompt, entering
the command, and terminating the command with a carriage return.
Multiple commands may be entered by pressing CTRL/Z to get the "LSE>"
prompt, entering the command, and terminating the command with a
carriage return. The editor will continue to prompt for commands
using the "LSE>" prompt until the user presses CTRL/Z again.
New users may type "HELP Features" for tutorial information.
SCA Topics
[SCA]
Additional information available:
Callable SCACommand CategoriesFeaturesGetting StartedIssuing Commands
Invoking SCALibrariesNavigationNew UsersOverviewQueries
Query LanguageSCA Example
Callable SCA
The SCA Callable Interface allows you to use SCA within
independent application programs. This allows you to integrate SCA
into alternative user-interfaces and lets you generate specialized
reports based on SCA information.
The SCA Callable Interface contains two components. The first is a
set of routines termed Callable Command Routines, which comprise
a high-level interface which must always be used, regardless of
the type of application. This provides a very simple callable
interface to SCA, which will be sufficient for most applications.
Callable Command Interface Routines
o SCA$ASYNCH_TERMINATE
o SCA$CLEANUP
o SCA$DO_COMMAND
o SCA$GET_INPUT
o SCA$INITIALIZE
o SCA$LOCK_LIBRARY
o SCA$PUT_OUTPUT
o SCA$UNLOCK_LIBRARY
The second component is a set of routines termed Callable
Query Routines. The Callable Query Routines comprise a lower-
level interface to the FIND command. Using this interface, an
application has control over the specification of queries and the
manipulation of query results.
Callable Query Initialization/Cleanup Routines
o SCA$QUERY_CLEANUP
o SCA$QUERY_INITIALIZE
Callable Query Question Building Routines
o SCA$QUERY_PARSE
o SCA$QUERY_SELECT_OCCURRENCE
Callable Query Result Manipulation Routines
o SCA$QUERY_GET_ATTRIBUTE
o SCA$QUERY_GET_ATTRI_KIND_T
o SCA$QUERY_GET_ATTRI_VALUE_T
o SCA$QUERY_GET_OCCURRENCE
Callable Query Miscellaneous Routines
o SCA$QUERY_COPY
o SCA$QUERY_DISPLAY_RESULT
o SCA$QUERY_FIND
o SCA$QUERY_GET_NAME
Message Handling
The SCA callable interface handles all messages the same way:
it signals them. If you want control over the display of such
messages, you must establish a condition handler. Establishing a
condition handler is optional.
Rules for Calling SCA Routines
o Most SCA routines are not AST-reentrant; therefore, you should
not call an SCA routine (except SCA$ASYNCH_TERMINATE) from an
AST routine that may currently be interrupting an SCA routine.
o Your program must not disable ASTs.
o If your program uses event flags, you must use the VMS RTL
routines (LIB$RESERVE_EF, LIB$GET_EF, and LIB$FREE_EF) in order
to coordinate the use of event flags between your program and
SCA.
o Except for SCA$ASYNCH_TERMINATE, do not call SCA from within an
SCA callback routine or from within a routine that is handling
a condition signaled by SCA.
o Your program must not unwind when handling a condition signaled
by SCA.
Command Categories
This section lists the commands implemented by SCA. These commands can be issued from within LSE, at DCL level, or at the SCA subsystem level. See individual commands for definitions, descriptions, and examples of all SCA commands. Query Commands o DELETE QUERY o FIND o INSPECT o SHOW QUERY Navigation Commands o GOTO (DECLARATION, QUERY, SOURCE) o NEXT (OCCURRENCE, QUERY, STEP, SYMBOL) o PREVIOUS (OCCURRENCE, QUERY, STEP, SYMBOL) General Commands o EXIT o HELP Library Commands o ANALYZE o CREATE LIBRARY o DELETE LIBRARY o DELETE MODULE o EXTRACT MODULE o LOAD o REORGANIZE o SET LIBRARY o SET NOLIBRARY o SHOW LIBRARY o SHOW MODULE o SHOW VERSION o VERIFY o VERIFY/RECOVER
Features
Cross Referencing and Analysis
SCA provides cross-referencing and analysis features which allow you
to obtain information about program symbols and source files. These
capablities are provided by the FIND command, and allow you to do the
following:
o Locate symbols and occurrences of symbols
o Limit queries based on selection of attributes, including
symbol name, symbol class (routine, variable), and occurrence
class (primary declaration, read or write reference)
o Select one symbol based on the relationships between symbols
(variables, routines, modules)
o Display relationships between symbols (routine calls, type
trees)
o Select symbols based on combinations of attributes and
relationships
Consistency Checking
The consistency checking feature of SCA checks occurrences of
symbols for consistent use. This capability is provided by the
INSPECT command.
FIND
The SCA FIND command provides cross-referencing and analysis
capabilities which allow you to work with program symbol and
source file information. The FIND command allows you to do the
following:
o Locate symbols and occurrences of symbols
o Limit queries based on selection of attributes, including
symbol name, symbol class (routine, variable), and occurrence
class (primary declaration, read or write reference)
o Select one symbol based on the relationships between symbols
(variables, routines, modules)
o Display relationships between symbols (routine calls, type
trees)
o Select symbols based on combinations of attributes and
relationships
Getting Started
Chapter 7 of the LSE/SCA User Manual is an SCA sample session that
shows you how to use the basic SCA query commands and related LSE
navigational commands. This sample session allows you to do the
following:
o Verify the successful selection of your SCA library (SHOW
LIBRARY)
o Display information about all of the modules contained in your
SCA library (SHOW MODULE)
o Locate occurrences of a specified symbol (FIND) and display the
results in a query buffer
o Navigate through the information in the query buffer (NEXT
STEP, PREVIOUS STEP)
o Access the source related to the specific occurrence of a
symbol (GOTO SOURCE)
o Work with SCA queries (GOTO QUERY, NEXT QUERY, PREVIOUS QUERY,
SHOW QUERY, DELETE QUERY)
INSPECT
INSPECT performs three different kinds of checking: consistency checks, symbol checks, and occurrence checks, allowing you to check consistency in a software system both within modules and across module boundaries. As with the FIND command, the results are reported in the form of a query with diagnostic error messages. The query display reveals the structure of routines and common blocks. The format of the INSPECT command is as follows: INSPECT [/qualifier...] query_expression The format of the INSPECT command is like that of the FIND command. You use query expressions to specify what to check just as you would with FIND. Used with the /CHARACTERISTICS qualifier, query expressions form part of your input to direct which checks are applied to your software system. In general, the INSPECT command checks elements within a software system that have a high probability of causing genuine problems. To extend its ability to produce specific results, INSPECT allows you to tailor checks. In this way you can eliminate elements from a check which you have established are correct and focus on more questionable areas. INSPECT also avoids producing voluminous output, making it easy for you to pass over non-problems when searching for problem areas. As INSPECT performs checks, it takes into account the relationships between routines and their arguments, and the relationships between common blocks and the variables in common blocks. When you check a routine or common block, INSPECT also checks the arguments of the routine or the variables contained in the common block, except in the case of unused symbol checks, where only the routine is checked.
Issuing Commands
You can invoke SCA in two ways: at DCL level or at the SCA subsystem level. To invoke SCA at DCL level, you use the SCA command. The SCA command has the following form: SCA [command] [parameter] [/qualifiers] o command - Specifies a command o parameter - Specifies a command parameter o /qualifiers - Specifies command qualifiers To invoke SCA at the SCA subsystem level, you type SCA at the DCL prompt to get the SCA> prompt. You can issue any SCA command at the SCA> prompt. The command parameters and qualifiers that apply at DCL level also apply at the SCA subsystem level.
Invoking SCA
You can invoke SCA in three ways: o with LSE as an integrated tool o at DCL level as a standalone tool o via the SCA callable interface As an integrated tool, LSE supports an expanded command language, which includes all SCA standalone commands and related navigational commands. SCA-related commands are defined in the Command Dictionary and are issued in the same manner as LSE commands.
Libraries
SCA works with library data generated by supporting VMS compilers consisting of all of the symbol, module, and file names contained in a specific snapshot of the source. Once SCA libraries are created, you can select a library and query its contents from within LSE, at DCL level, or via the SCA callable interface. Library commands allow you to create and manipulate libraries and their contents. The commands allow you to produce and maintain a libraries list, which establishes a library for selection and manipulation (such as loading, querying, or the deletion of library modules) or for access to multiple physical libraries as a single virtual library.
Navigation
Tightly-knit integration with LSE provides for multimodule navigation and the ability to read and modify associated source code. Navigation within LSE is powerful and flexible. Using multiple buffers, you can create one or more query sessions. Within a session, you use cross-reference and analysis commands to query source information, and navigational commands to move through the information and to gain access to related sources. To alter the course of your analysis, you can return to an earlier query session, move to a later session, or create another session. Navigation through a query buffer, associated with a query session, or to another query session is provided by the NEXT and PREVIOUS commands, while direct access to source buffers and query sessions is provided by the GOTO command.
New Users
The VAX Source Code Analyzer (SCA) is an interactive, multi-
language, multi-module, source code cross-reference and
static analysis tool which helps developers understand the
complexities of software systems. Since it allows you to analyze
an entire system as opposed to individual modules, and helps you
understand unfamiliar systems, SCA is extremely useful during the
implementation and maintenance phases of a project.
SCA is included in the VAXset Software Engineering Tools Package.
SCA helps answer some commonly asked source code questions such
as:
o Where is a particular global variable declared, initialized,
modified, or referenced?
o In which modules are there references to a particular symbol
name?
o Are my calling arguments consistent?
o Where is a certain routine called?
SCA's query capability allows you to search and display specific
symbol, file, and module information. Its static analysis
capability allows you to display call tree information and
validate routine call arguments. SCA interfaces to supported VAX
languages for source code navigation, cross-reference, and static
analysis.
SCA is tightly integrated with the VAX Language-Sensitive Editor
(LSE). When SCA is used with LSE, you can interactively edit,
compile, debug, navigate, and analyze source code during a single
development session.
For more information see,
o Command_Categories
o Features
o Getting_Started
o Invoking_SCA
o Issuing_Commands
o Overview
o Queries
o SCA_Example
Overview
The VAX Source Code Analyzer is an interactive, multilanguage,
source code cross-reference and source code analysis tool that
aids developers in understanding large-scale software systems.
By dealing with an entire software system, instead of individual
modules, SCA is an effective tool during the implementation and
maintenance phases of a project.
The use of SCA is based on the methods commonly used to develop
software with VMS systems. For example, the following techniques
are assumed:
o A set of sources is conveniently located for development.
o Developers modify, link, and compile sources until an
executable image is successfully created.
o When an image is successfully built, the specific set of
sources associated with the image are captured as a baseline
for further development. (If CMS were used to store these
sources, a CLASS would probably be formed to contain the
baseline versions.)
o As development continues, developers must work with the
information contained in the build sources.
With these assumptions, SCA allows compiler-generated information
about the set of build sources to be stored for querying in one
unique location (an SCA library). Thus, SCA is a query tool that
allows you to reference and query time-stamped source information
that directly corresponds to source modules in your system. When
these sources are no longer of value, the SCA library can be
modified or deleted.
Queries
SCA's inquiry and reporting facilities allow you to query a library for the presence of specific symbol, file, or module information, and to determine such things as declarations of program symbols, references to the symbols, and references to source files. You can also determine the call relationships between routines by displaying call tree information. Within the editing environment, you can navigate through the complexities of an entire system and, as necessary, inspect and edit related source files. SCA provides the following capabilities: 1. Interactive query of symbol, module, and file information 2. Display of routine call relationships and type trees 3. Inspection of routines, variables, and other symbols 4. Maintenance of source code information libraries LSE provides the following additional capabilities: o Navigation through one or more SCA query sessions o Access and display of source code during an interactive query With the editing features, you can move through an unfamiliar system without regard for module or file boundaries. For example, given the task of modifying the characteristics of a variable, you can locate all of the uses of the variable across the system and make your changes without leaving LSE.
Query Language
The SCA Query Language is an enhancement to the FIND command. By issuing queries, you can both broaden and refine your use of SCA. The SCA Query Language allows you to make very explicit queries of a very large system and lets you selectively limit queries to the results of previous query operations.
Additional information available:
FeaturesThe Current QuerySyntaxFunctionsAttribute Selection
Operators
Features
The SCA Query Language allows you to do the following:
o Analyze source code using both file and symbol information.
o Use names to select symbols
o Use other attributes to select symbols
o Specify precise search parameters.
o Use the CONTAINED_BY and IN functions and pathname operators to
tailor queries.
o Perform iterative tracing of relationships between symbols.
o Designate files as symbols, allowing you to query on the basis
of either file or non-file information.
The Current Query
The current query specifies the result of the previous query.
The name of the current query is "SCA$CURRENT_QUERY". The current
query is expressed as follows:
@sca$current_query
Since the @ function defaults to the current query, this
expression may also be written as follows:
@()
Syntax
Query expressions can take the following syntax forms:
query-expression ::= attribute-selection-expression |
binary-op-expression |
function-call-expression |
(query-expression)
attribute-selection-expression ::= actual-parameter
binary-op-expression ::= query-expression binary-operator query-expression
binary-operator ::= AND | OR | XOR | \ | \\
function-call-expression ::= function-name actual-parameter |
function-name ( [actual-parameter],... )
function-name ::= nonwildcard-string
actual-parameter ::= named-actual-parameter | positional_actual_parameter
named-actual-parameter ::= formal-parameter-name = actual-parameter-value
positional_actual_parameter ::= actual-parameter-value
formal-parameter-name ::= nonwildcard-string
actual-parameter-value ::= query-expression | name-expression |
keyword-list | range-list | number
keyword-list ::= keyword | ( keyword,... )
keyword ::= nonwildcard-string
number ::= digit... | ALL
range-list ::= range | ( range,... )
range ::= number | number:number
name-expression ::= simple-string | "complex-string"
nonwildcard-string ::= {letter | digit | graphic-character}...
simple-string ::= {letter | digit | graphic-character |
wildcard-character | escape-character}...
complex-string ::= any-character...
letter ::= any-alphabetic-character
digit ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
graphic-character ::= - | _ | $
wildcard-character ::= * | %
escape-character ::= &
Functions
Functions are a general mechanism for querying SCA libraries. The
value of a function is the set of occurrences and relationships
that result from the evaluation of the function body. SCA query
expression functions are similar to functions in high-level
languages, like Pascal and Ada. Functions have a name, a parameter
list, and a result. The result of a function call is a query
expression result.
The typical form of a function call is as follows:
function-call-expression ::= function-name( [actual-parameter],... )
A function call expression is a function name followed by an
actual parameter list enclosed in parentheses. An actual parameter
list can be empty, if the function has no parameters or all
of the parameters have default actual parmeter values. If the
actual parameter list consists of exactly one parameter then the
parentheses can be dropped.
Additional information available:
ExpansionNegationIndicatedQuery UsageRelationshipIN Function
Expansion
Expansion is the process of expanding a set of occurrences to include all occurrences of the corresponding set of symbols. To perform an expansion operation, SCA first finds all the occurrences of symbols that match all of the specified restrictions. For example, they must be primary declarations; they must be occurrences of routines; and they must have the specified names. Once that set of occurrences is found, SCA finds all the symbols that correspond to that set of occurrences. The result of the query is a display that shows all occurrences of those symbols.
Additional information available:
Examples
SCA lets you specify that you want to see all the information
available for symbols that have certain types of occurrences. For
example, to display all of the occurrences of routines that have
primary declarations in the SCA library being queried, you issue
the following command:
FIND EXPAND (occurrence=primary AND symbol=routine)
You can follow an expansion with more restrictions. For example,
to display the call references of routines that have primary
declarations in the SCA library being queried, you issue the
following command:
FIND EXPAND( occurrence=primary AND symbol=routine ) AND occ=call
This is an example of a nested query expression. The inner query
expression, "EXPAND( occurrence=primary AND symbol=routine )"
is evaluated first, resulting in a set of all the occurrences
of routines for which there are primary declarations. That set
of occurrences is the input to the outer query expression, which
has the form "query-expression AND occ=call". The outer query
expression removes all occurrences except those that are call-
references.
To display declarations of symbols that have write references, you
issue the following command:
FIND EXPAND( occ=write ) AND occ=decl
Negation
The negation function finds occurrences that do not match a
query expression. The result of a call to this function is a
set containing all occurrences that are not contained in 'query_
expression'. The negation function has the following form:
FUNCTION not( query_expression : query-expression = * )
Indicated
The indicated function has no parameters. The indicated function
is only available from within LSE. The function has the following
form:
FUNCTION indicated
Query Usage
A query usage function incorporates the results of previous
queries into query expressions. The query usage function has the
following form:
FUNCTION @( query_name : file-spec = sca$current_query )
Relationship
A relationship function selects occurrences based on relationships
between occurrences. All of the relationship functions have the
same set of parameters. The different relationship functions
differ in their name and semantics. A relationship function has
the following form:
FUNCTION function-name( end : query-expression = *,
begin : query-expression = *,
depth : number = 1,
result : keyword-list = structure,
trace : query-expression = * )
Additional information available:
Non-structured Relationship ExpressionsStructured Relationship ExpressionsIndividual Relationship Functions
Relationship Parameters
Non-structured Relationship Expressions
A non-structured relationship expression selects occurrences based on relationships between occurrences. A non-structured relationship expression uses information about the relationships between occurrences, but does not preserve relationship information in the result of the expression. The result of such an expression is a non-structured set.
Structured Relationship Expressions
A structured relationship expression selects both occurrences and relationships between them. A structured relationship expression preserves relationship information in the value of the expression. The result of such an expression is a structured set.
Individual Relationship Functions
This section describes the individual relationship functions. There are two kinds of relationship functions: basic-functions and inverse-functions. Every basic-function can be transformed into its corresponding inverse function by removing the 'ING' at the end of the function and adding 'ED_BY'. For example, the basic-function 'CALLING' can be transformed to the inverse-function, 'CALLED_BY' or vice-versa. So the two commands "CALLING(y,x)" and "CALLED_BY(x,y)" produce the same result: a graph of call relationships from X to Y. Relationship functions include: o CALLING / CALLED_BY o CONTAINING / CONTAINED_BY o TYPING / TYPED_BY
Relationship Parameters
Relationship parameters determine the precise semantics of a
relationship expression. The following is a list of relationship
parameters and how they are used.
END=end-expression
Specifies those occurrences at which the tracing of relationships
can end. Only paths that end on one of these occurrences will be
included in the result. The default is END=*.
BEGIN=begin-expression
Specifies those occurrences at which the tracing of relationships
can begin. Only paths that begin on one of these occurrences will
be included in the result. The default is BEGIN=*.
DEPTH=depth-level
Specifies the number of levels of structure that are to be traced.
The default depth-level is one. DEPTH=ALL indicates that there
is no limit to the number of levels of structure that are to be
traced.
RESULT=result-keyword-list
Where 'result-keyword-list' is one or more of the following
keywords:
o [NO]STRUCTURE - Indicates whether relationship information is
to be preserved in the query result.
o BEGIN - Indicates that only those occurrences that 'begin'
the relationship graph are to be included in the result. This
keyword implies NOT RESULT=STRUCTURE. It is incompatible with
RESULT=STRUCTURE.
o END - Indicates that only those occurrences that 'end' the
relationship graph are to be included in the result. This
keyword implies NOT RESULT=STRUCTURE. It is incompatible with
RESULT=STRUCTURE.
The default is RESULT=STRUCTURE.
TRACE=trace-expression
Specifies those occurrences through which relationship tracing
is to be continued. The TRACE parameter does not affect the
first iteration. That first iteration is controlled by the BEGIN
parameter. The default is TRACE=*.
IN Function
The IN function is a special case of the CONTAINED_BY function
which restricts a set of occurrences to those occurrences that
are contained directly or indirectly (DEPTH=ALL) by a specified
(set of) primary declaration(s). The IN function has the following
form:
FUNCTION in( end : query-expression = *,
begin : query-expression = * ) =
CONTAINED_BY( end AND decl=primary,
begin,
result=begin,
depth=all )
Additional information available:
Examples
The following command finds all of the occurrences in BUILD_TABLE
named 'CODE':
FIND IN( build_table, code )
The following query finds all occurrences in BUILD_TABLE,
including those nested within declarations of BUILD_TABLE, by
omitting the second parameter:
FIND IN build_table
Attribute Selection
An attribute selection expression selects occurrences based on
the setting of occurrence and symbol attributes. If no attribute-
name is specified, then name-expression attribute is assumed. An
attribute selection expression has the following form:
attribute-selection-exp ::= [ attribute-name = ] actual-parameter
SCA supports the following types of attribute selection.
o name
o symbol class
o symbol domain
o occurrence class
o file specification
Additional information available:
Name SelectionSymbol Class SelectionSymbol Domain SelectionOccurrence Selection
File Specification Selection
Name Selection
A name selection expression selects occurrences that have
names that match a specified name expression. A name selection
expression has the following form, where 'name' is a formal
parameter name and a name-expression is a string of characters,
possibly including wildcards.
name-selection-exp ::= name-expression |
name = name-expression |
name = ( name-expression,... )
An attribute selection expression with no formal parameter name
is a name selection expression. A name expression that includes
a wildcard character is equivalent to a union of all the names
that match the name expression. A list of name expressions is
equivalent to a union of name selection expressions each having a
single name expression.
Symbol Class Selection
A symbol class selection expression selects occurrences whose
symbol class is one of those specified in the symbol class
selection expression. A symbol class selection expression has
the following form:
symbol-class-selection-exp ::= symbol=symbol-class |
symbol=( symbol-class,... )
'Symbol' is a formal parameter name and a symbol-class is one of
the following keywords:
o ARGUMENT - formal argument (such as a routine argument or macro
argument)
o COMPONENT,FIELD - component of a record
o CONSTANT,LITERAL - named compile-time constant value
o EXCEPTION - exception
o FILE - file
o FUNCTION,PROCEDURE, PROGRAM,ROUTINE, SUBROUTINE - callable
program function
o GENERIC - generic unit
o KEYWORD - keyword
o LABEL - user-specified label
o MACRO - macro
o MODULE, PACKAGE - collection of logically related elements
o PLACEHOLDER - marker where program text is needed
o PSECT - program section
o TAG - comment heading
o TASK - task
o TYPE - user-defined type
o UNBOUND - unbound name
o VARIABLE - program variable
o OTHER - any other class of symbol
A list of symbol classes is equivalent to a union of symbol class
selection expressions each having a single symbol class.
Symbol Domain Selection
A symbol domain selection expression selects occurrences whose
symbol domain is one of those specified in the symbol domain
selection expression. Symbol domain is the range of source code in
which a symbol has the potential of being used.
A symbol domain selection expression has the following form:
symbol-domain-selection-exp ::= domain=symbol-domain |
domain=( symbol-domain,... )
'Domain' is a formal parameter name and a symbol-domain is one of
the following keywords:
o INHERITABLE - able to be inherited into other modules (for
example, via BLISS library, PASCAL environment, or Ada
compilation system mechanisms)
o GLOBAL - known to multiple modules via linker global symbol
definitions
o PREDEFINED - defined by the language (examples: BLISS ap,
FORTRAN sin, PASCAL writeln)
o MULTI_MODULE - domain spans more than one module (domain=multi_
module is equivalent to domain=(inheritable,global,predefined)
o MODULE_SPECIFIC - domain is limited to one module
A list of symbol domains is equivalent to a union of symbol domain
selection expressions each having a single symbol domain.
Occurrence Selection
An occurrence selection expression selects occurrences whose
occurrence class is one of those specified in the occurrence
selection expression. An occurrence selection expression has the
following form:
occurrence-selection-exp ::= occurrence=occ-class |
occurrence=( occ-class,... )
'Occurrence' is a formal parameter name and an occurrence-class is
one of the following keywords:
Declarations
o PRIMARY - most significant declaration (such as FUNCTION)
o ASSOCIATED - associated declaration (such as EXTERNAL)
References
o READ, FETCH - fetch of a symbol value
o WRITE, STORE - assignment of a symbol value
o ADDRESS, POINTER - reference to the location of a symbol
o CALL - call to a routine or macro
o COMMAND_LINE - command line file reference
o INCLUDE - source file include referenece
o PRECOMPILED - precompiled file include referenece
o OTHER - any other kind of reference (such as a macro expansion
or use of a constant)
Other Occurrence Classes
o EXPLICIT - explicitly declared
o IMPLICIT - implicitly declared
o VISIBLE - occurrence appears in the source
o HIDDEN - occurrence does not appear in the source
File Specification Selection
A file spec selection expression selects occurrences whose
source position is in one of the files specified in the file
specification selection expression. A file specification selection
expression has the following form;
file-spec-selection-exp ::= file_spec=name-expression |
file_spec=( name-expression,... )
'File_spec' is a formal parameter name and a name-expression is a
name-expression that is interpretted as a file specification.
Parts of the name-expressions that are not specified will be
treated as wildcards. For example, 'file=foo' will be considered
equivalent to "file=*[*]foo.*;*". This applies only to the
filename and type.
Operators
Operators are a mechanism for querying SCA libraries. The value of an operator expression is the set of occurrences and relationships that result from applying the operator to the operands. SCA query expression operators are similar to functions in high- level languages, like Pascal and Ada. Operator expressions have an operator name, enclosed by two operands, which are query expressions. The result of an operator expression is a query expression result.
Additional information available:
PathnameIntersectionUnionExclusive-Or
Pathname
A pathname expression identifies symbols based on the nesting of
primary declarations. The expression has the following form:
pathname-expression ::= exp1 \ exp2 |
exp1 \\ exp2
Intersection
An intersection expression identifies occurrences which exist in
two different sets. The expression has the following form:
intersection-expression ::= exp1 AND exp2
Union
A union expression merges two sets. The expression has the
following form:
union-expression ::= exp1 OR exp2
Exclusive-Or
An exclusive-or expression selects the unique occurrences in two
different sets. The expression has the following form:
exclusive-or-expression ::= exp1 XOR exp2
SCA Example
An SCA online example (SCA$EXAMPLE) exists to show you how to
use the basic SCA query commands and related LSE navigational
commands. SCA$EXAMPLE allows you to do the following:
o Verify the successful selection of your SCA library (SHOW
LIBRARY)
o Display information about all of the modules contained in your
SCA library (SHOW MODULE)
o Locate occurrences of a specified symbol (FIND) and display the
results in a query buffer
o Navigate through the information in the query buffer (NEXT
STEP, PREVIOUS STEP)
o Access the source related to the specific occurrence of a
symbol (GOTO SOURCE)
o Work with SCA queries (GOTO QUERY, NEXT QUERY, PREVIOUS QUERY,
SHOW QUERY, DELETE QUERY)