% Librarian I01-39O ӯ ?"AYYY@5^ALIGNnANALYZEPATTACHHBOX0CALLCANCELp CAPITALIZE,CENTERCHANGELCHECKCLOSEVCMSCOLLAPSECommandsCOMPILECONTINUECONVERT^CREATECUTDCLDEFINEDELETE!DO%END%ENLARGE&ENTER.XERASE6:EXIT6EXPAND9EXTEND:EXTRACT<FeaturesIFILLKFIND New_Features New_Users Release_Notes SCA_Topicse6EXPAND9EXTEND:EXTRACT<FeaturesIFILLKFINDUFOCUSUGOTOoHELPwINCLUDEx8INSPECTLINELOAD, LOWERCASEMODIFY New_Features New_UsersNEXTONEpOTHER:PASTEbPREVIOUSQUIT8QUOTEREADRECALL.RECOVERREDOREFRESH Release_Notes< REORGANIZE(REPEATREPLACEREPORTtRESERVE~REVIEW SCA_Topics"EXITREDOWRITEYASEEREFRESH Release_Notes< REORGANIZE(REPEATREPLACEREPORTtRESERVE~REVIEWTSAVE SCA_TopicsSEARCH:SELECTSET2SHIFT SHOW).SHRINK)SPAWN+SPELL+SPLIT, SUBSTITUTE4,TAB5TOGGLE5TWO5,UNDO6vUNERASE6UNEXPAND7` UNRESERVE7 UNTAB7 UPPERCASE8PVERIFY:VIEW<WHAT=WRITE-^ 1 SCA_Topics [SCA]2 Advanced_Query_ExamplesD The examples in this section use the SCA$EXAMPLE library. You are= encouraged to try these queries using the example library./ 1. FIND CALLED_BY( END=translit, DEPTH=ALL)4 This query gives the full call tree for TRANSLIT.G 2. FIND CALLED_BY( END=translit, BEGIN=signal_duplicate, DEPTH=ALL)E This query returns all the call paths emanating from translit that# end up calling SIGNAL_DUPLICATE. > 3. FIND CALLED_BY( translit, DEPTH=ALL, TRACE=(NOT OPEN*))A This query gives the full call tree for TRANSLIT, but does notD show any calls from items named OPEN*. Calls to items named OPEN*D appear in the call tree; however, items which are called by OPEN*@ do not appear. Try the query without the trace expression and/ compare the results when the TRACE is given.$ 4. FIND CALLED_BY( END=translit,C BEGIN=(NOT DOMAIN=PREDEFINED and NOT lib$*)," DEPTH=ALL )? This example leaves predefined functions and functions namedA LIB$* out of the call graph. Functions such as CHR and WRITELN@ in Pascal, MAX in FORTRAN, a builtin like _ADAWI in C, and soE forth are predefined. These functions are defined by the language, not the programmer.4 5. FIND IN( build_table and occ=comp, max_code )? This example finds all occurrences of MAX_CODE in the module? BUILD_TABLE. In this case, module has the sam e meaning as itC does in SHOW MODULE. This is the fastest way to limit a query toD occurrences in a particular module. The first parameter to the INC function tells SCA in what container to look. The "and occ=comp"A part of the query ensures that the BUILD_TABLE you are lookingA in is one of the modules displayed by SHOW MODULE, rather than something else.A The second parameter to the IN function tells SCA what to look5 for. This is faster than specifying the following :9 FIND IN( build_table and occ=comp ) and max_code8 Both queries in this example produce the same result.3 Routines Used in a Module But Declared Elsewhere? In this example, you find functions that are used in a givenB module but have their primary declaration in some other module.A This example is a multistep process that makes use of previousB queries. Each query in this section is numbered so that you canA refer to a specific query. If you refer to a query, adjust theC query name (for example, where @1 is used) to refer to the query name you have created.; 1. FIND IN( translit and occurrence=compilation_unit, -= symbol=function and domain=(global,inheritable) )E This query finds all occurrences of functions, either declarations) or references, in the module TRANSLIT.@ You use "domain=(global,inheritable)" to limit the query only= to occurrence in which you are interested. Only global and> inherit able symbols can be imported because module-specific@ symbols are from the same module, and predefined symbols comeA from the language. Next, you have to remove any functions that0 have their primary declaration in the module.: 2. FIND @1 AND NOT EXPAND( @1 and occurrence=primary )C This query removes any functions that have a primary declaration; in the module TRANSLIT. What remains are those global orB inheritable functions that do not have a primary declaration in  TRANSLIT.A The EXPAND function in this query can be evaluated efficientlyB by SCA. The parameter to EXPAND, @1 and occurrence=primary, canD be evaluated by looking at the result of query 1, so SCA does notE have to use the SCA library. Because the overall query does @1 ANDE ..., everything in the result is present in the result of query 1.B All we are doing is removing occurrences. In this case, SCA canB evaluate the whole query expression by looking at the result of4 que ry 1 and does not have to use the SCA library.A Items Declared In a Module But Not Used Anywhere In the ModuleB In this example, you find occurrences of functions or variablesE that are declared in a module but are not used in the module. ThisE example is a multistep process that makes use of previous queries.B The numbers by each query are used to refer to it later. If youD refer to a query, adjust the query name (for example, where @1 is6 used) to refer to the query names you have created.; 1. FIND IN( translit and occurrence=compilation_unit, -- symbol=(function, variable) )E This query finds all occurrences of functions or variables, either6 declarations or references, in the module TRANSLIT.< 2. FIND @1 AND NOT EXPAND( @1 and occurrence=reference )E This query removes from our first query any functions or variablesA that have a reference in the module TRANSLIT. What remains areA those functions or variables that are not used anywhere in the module.A The EXPAND function in this query can be evaluated efficiently@ by SCA. The parameter to EXPAND, @1 and occ=reference, can beB evaluated just by looking at the result of query 1, so SCA doesB not have to use the SCA library. Because the overall query doesC @1 AND ..., everything in the result is present in the result ofE query 1. All we are doing is removing items. In this case, SCA canB evaluate the whole query expression by looking at the result of5 query 1, and does not have to use the SCA library. Finding Unused FunctionsC This example finds functions or subroutines that are never used.E It provides several ways of solving the problem. Some of these areD easy to understand, but can be very slow on larger SCA libraries.? The more complex ones are intended to improve performance onA larger SCA libraries. They do not have a significant impact on smaller libraries.C The first exa mple finds unused functions only. Note that insteadE of saying "occurrence=call" to find functions that are called, youD specify "occurrence=reference" to find functions that are used at all. The query is as follows:2 FIND symbol=function AND occurrence=primary -C AND NOT EXPAND( symbol=function and occurrence=reference )B On the SCA$EXAMPLE library, this query works well because it is? a small library. On a larger library, it may be too slow. To@ evaluate this  query, SCA must first evaluate "symbol=functionB and occurrence=primary." It must then evaluate "symbol=functionD and occurrence=reference" before doing any additional processing.A In this case, SCA has to do twice what is essentially the sameD work. Also, SCA does not discard information about functions that< are referenced until the end, so it uses a lot of memory.? Using Previous Query Results to Find Unused Functions FasterA The next example also finds unused function s. However, it usesB previous query results, so the work is done only once. For this? reason, it is faster than the previous example. It also usesE somewhat less memory, but still not enough to make a difference on a large library.< FIND symbol=function and occurrence=(primary,reference)E In the previous query, we find all the occurrences that we want toC use. We ignore the associated declarations at this point because' they are not essential to the query.C N ext, we must select those functions that are not used as in the following query:% FIND @1 AND occurrence=primary -7 AND NOT EXPAND( @1 AND occurrence=reference )B This query removes from the list of functions in our system anyD that are referenced, leaving only unreferenced functions. BecauseA you are using a previous query with all the information in it,B SCA does not have to access the SCA library, and performance is generally faster.B However, on a l arge library, this may still be slow. The reasonB for this is that it ends up keeping a list of all the functions& and all their references in memory.2 Using Iteration to Find Unused Functions Faster@ This is the most complex example. It includes some repetitive? parts that the query language does not provide directly. YouB can do these using the callable interface, or by writing a .COMB procedure, or you can do the repetitive parts manually. This is= also the fastest form of the example and uses less memory.D Basically, you are going to split up the work into smaller piecesD to avoid having to keep everything in memory at the same time. InE this example, you process one module at a time, so you need to getE a list of modules first. You can do this by entering the following query:& 1. FIND occurrence=compilation_unit< In the next step, you have to loop through each of theD occurrences found in step 1. This part cannot be don e directly@ using the query language. You can do this using one of the following methods:B o Do this manually, stepping through the occurrences in theA query one by one, and using INDICATED() in the following0 queries where module_name is specified.B o Use the /DISPLAY options to specify only the name of eachB occurrence found, capture the result in a file, and writeB a command procedure to loop over the names. In this case,E  you use "module_name and occurrence=compilation_unit" in the: following queries where module_name is specified.? o Use the callable interface. By writing a small programE using the callable interface, you can do the loop relativelyD easily, using SCA$GET_OCCURRENCE and SCA$SELECT_OCCURRENCE.A In any case, you repeat the following steps for each of the modules found in step 1.D 2. FIND IN( module_name, symbol=function and occurrence=primary )> This step finds primary declarations of functions in the@ current module. You want only primary declarations at thisD stage because there may be some calls in other modules. In the< next step, you find any references to those functions: 3. FIND EXPAND( @2 )C This finds everything you need. At this point, what you do isC very similar to what you did for the examples in the previous section.& 4. FIND @3 and occurrence=primary -8 AND NOT EXPAND( @3 and occurrence=reference )D This finds those functions in a particular module that are notA referenced anywhere. Steps 2 through 4 must be repeated for each module.2 Basic_Query_Concepts@ This section covers some of the basic concepts underlying SCA queries.B You may want to have a hardcopy of this section. The directions+ for producing a hardcopy are as follows:D 1. Place the contents of Basic_Query_Concepts in a printable file>  by typing the following command at the DCL command line:0 $ HELP/OUTPUT=BASIC_QUERY_CONCEPTS.TXT -. _$ SCA SCA_Topics Basic_Query_ConceptsA 2. Print BASIC_QUERY_CONCEPTS.TXT from the DCL command line as follows:( $ PRINT BASIC_QUERY_CONCEPTS.TXT What Queries AreB An SCA library is a collection of information about your sourceC code. This includes information, such as the names and locations? of all variables in your code, all the places where routines@ are called and what their arguments are, and many other kinds of information.; Issuing a query is the process of selecting some of thisB information from the library. By giving a query expression withE the FIND command, you specify exactly what information you want to retrieve from the library. OccurrencesA An occurrence is any instance of an entity in your program. An> entity can be any language construct, such as a variable, a@ routine , or a constant. To further clarify this, consider theB following code fragment (not written in a particular language): 1 MODULE myprog; 2 3 VAR i,j; 4 5 ROUTINE foo() 6 BEGIN 7 i = 5; 8 j = i; 9 END; 10 END;D The code contains four entities (myprog, foo, i, j). There is oneA occurrence each of the module myprog, and the routine foo. TheE variable i, however, has three occurrences, and the variabl!e j has two. Attribute Selection@ Attribute selection is a query that selects occurrences basedB on certain attributes. For example, you can have SCA return all@ occurrences in which the name attribute is XYZ. The following3 sections list the attributes used for selection. NAME Attribute< Generally, you think of entities in you program as havingA only a name. In fact, the name of an entity is only one of itsD attributes. What you are doing when you " give the basic query FINDE X, is asking for all occurrences in the library that have the nameA attribute X. (The query FIND X is equivalent to the query FINDA NAME=X. NAME= is the default attribute, so it may be omitted.) SYMBOL_CLASS Attribute> The symbol class attribute describes an occurrence in terms? of language constructs. In the previous example, myprog is aA MODULE, foo is a ROUTINE, and i and j are variables. Thus, youC could ask SCA to find things base #d on the symbol class only. ForB example, you can find all the routines in the library by giving1 the following query: FIND SYMBOL_CLASS=ROUTINE? Note that MODULE, ROUTINE, and VARIABLE are SCA keywords for< symbol classes. Because different languages use differentC terminology, there is a need to understand how the SCA language-C independent terms relate to the language-specific terms. We haveB provided tables to help you match the SCA terms to the specificB language co $nstructs for all the languages that support SCA. See= the Getting_Started help subtopics for specific languages. OCCURRENCE AttributeB The occurrence class attribute allows you to select occurrencesB based on attributes specific to the occurrence. In the previous= example, on line 3 the occurrence of the variable i has an= occurrence class of PRIMARY. On line 7, the occurrence has? an occurrence class of WRITE, and on the following line, itsC occurrence class is R%EAD. To find all entities that are declared/ in your system, specify the following query: FIND OCCURRENCE=PRIMARYB Note that as with symbol classes, there is a need to understandA the relationship between the SCA occurrence class keywords andD the equivalent language terminology. See the Getting_Started help$ subtopics for specific languages. FILE_SPEC AttributeB Another attribute of all occurrences is the name of the file inB which they occur. If the previo&us example program was in a fileC called MYPROG.BAR, then the following query would return all theB occurrences found in the file; in this case, all occurrences of myprog, foo, i, and j: FIND FILE_SPEC="MYPROG.BAR" SYMBOL DOMAIN AttributeC The domain of an entity defines the scope within the source overA which the entity is known. Variables or routines, for example,E may be local to a particular module, or they might be known to allD modules in a system. To' find all occurrences of entities that are; known throught your system, specify the following query: FIND DOMAIN=GLOBALA See the Getting_Started help subtopics for specific languages. Basic QueriesB You have already seen examples of the most basic type of query,@ that is a query based on the selection of just one attribute. These examples are: FIND X FIND SYMBOL=ROUTINE FIND OCCURRENCE=PRIMARY FIND DOMAIN=GLOBAL FIND FILE_SPEC="MYPROG.BAR" (@ Each of these queries results in a set of occurrences. Often,@ the result of such a query contains more information than youB really want. You can explicitly indicate the result you want byA specifying multiple attributes and combining them by using set? operations. For example, if you only want the ROUTINES namedA X (rather than all items named X or all routines), specify the following query expression: FIND X AND SYMBOL=ROUTINEE In the previous example, the se)t operator AND was used to take theB intersection of the two sets. The other set operators availableB are OR, XOR, and NOT. In this manner, you can combine attributeC selection expressions using multiple set operators. For example:8 FIND (X OR Y ) AND SYMBOL=ROUTINE AND OCCURRENCE=CALLA This query finds all call references to routines named X or Y. Relationship Queries> You have already learned how to select occurrences based onB their attributes. The following* section describes how to selectB occurrences based on their relationship with other occurrences. Calls RelationshipD The most common of these relationships is the calls relationship.@ SCA provides two functions: CALLING and CALLED_BY. With these= functions, you can display the call tree structure of your? program. The most basic format of the query expression is as follows: FIND CALLED_BY FOOD In this example, the result shows a structured display of all + theB routines that FOO directly calls. You can also display routines that call FOO as follows: FIND CALLING FOOC The previous two queries answer the questions, "Who is called by1 FOO?" and, "Who is calling FOO?" respectively.@ The full syntax of the relationship functions is complex, andD each relationship function is described in more detail under SCA_@ Topics. Without explaining why the parentheses are necessary,A and emphasizing that the order of parameters is, important, theC following examples shows one more useful feature of relationshipE functions. It is possible to get a call tree of arbitrary depth by giving the following query:# FIND CALLED_BY (FOO, DEPTH=ALL )> This returns a display showing not only the routines calledA directly by FOO, but also the routines that they in turn call,D for all levels. You can replace the keyword ALL with any positive/ integer to limit the depth of the call tree. Contains Rela-tionship= Another relationship available through SCA is the contains= relationship, which is obtained through the CONTAINING andB CONTAINED_BY functions. These functions have the same syntax as the calls functions.E The CONTAINED_BY function returns all entities logically containedD within the given parameter. For example, the query FIND CONTAINEDC FOO returns two occurrences of i and one occurrence of j, in the code fragment that follows: 1 MODULE myprog.; 2 3 VAR i,j; 4 5 ROUTINE foo() 6 BEGIN 7 i = 5; 8 j = i; 9 END; 10 END;? Similarly, the following query returns the occurrence of the module MYPROG: FIND CONTAINING FOO Types Relationship> The types relationship consists of the two functions TYPINGA and TYPED_BY. These functions also have the same syntax as theE previous functions. The TYPED_BY function returns type trees. ThisA / is useful if there are many user-defined types in your system,A particularly if they are complex record structures. The TYPING- function returns the type of its argument.E For more information about all the relationship functions, see the$ help topic for each relationship.2 Building_An_SCA_LibraryB To create your own SCA library, you must first create a library< directory for it. Using your personal directory, type the= following command to create a subdirectory for a 0local SCA library: $ CREATE/DIRECTORY [.LIB1]D Once you have a directory in which to create a library, enter the0 following command to SCA to create a library:! $ SCA CREATE LIBRARY [.LIB1]@ You now have an empty SCA library. To add a module to the SCA4 library, you must first compile your source code.< Add the /ANALYSIS_DATA qualifier when you use a supported compiler. For example:! $ CC/ANALYSIS_DATA myfile.cD This produces the file MYFI1LE.ANA that you can load into your SCAC library either from LSE or standalone SCA. To load the .ANA file8 and show the new module, type the following commands: SCA> LOAD myfile.ANA SCA> SHOW MODULEE You will see that the new module has been loaded into the library,2 and you will now be able to query that library.> For more information, see the help topics for Libraries and Reducing_LOAD_Time.2 Callable_Routines3 SCA$ASYNCH_TERMINATE8 Sets a flag2 indicating that a CTRL-C has been issued. Format* SCA$ASYNCH_TERMINATE command_context 4 Argumentcommand_context# type: $SCA_COMMAND_CONTEXT access: read/write mechanism: by reference SCA command context value.4 Condition_Value_Returned6 SCA$_NORMAL Normal successful completion.4 DescriptionA The SCA$ASYNCH_TERMINATE routine sets a flag indicating that a CTRL-C has been issued.3 SCA$CLEANUPE Shuts down 3the SCA callable command interface, freeing all dynamicE memory associated with the interface routines and data structures. Format! SCA$CLEANUP command_context 4 Argumentcommand_context# type: $SCA_COMMAND_CONTEXT access: read/write mechanism: by reference An SCA command context value.4 Condition_Value_ReturnedD SCA$_NORMAL The SCA callable command interface has been0 successfully shut down.44 Description> The SCA$CLEANUP routine shuts down the SCA callable command< interface, freeing all dynamic memory associated with the* interface routines and data structures.3 SCA$DO_COMMANDD Parses an SCA subsystem command and invokes command processing if( the command is syntactically correct. Format% SCA$DO_COMMAND command_context,# command_string) [,parameter_routine], [,continuation_routin5e]+ [,continuation_prompt]% [,user_argument]' [,confirm_routine]% [,topic_routine]' [,display_routine] 4 Argumentscommand_context# type: $SCA_COMMAND_CONTEXT access: read/write mechanism: by reference SCA command context value.command_string type: character string access: read only mechanism: by descriptor An 6SCA subsystem command.parameter_routine type: procedure access: read only mechanism: by reference@ Routine that prompts for required parameters. You can specifyA LIB$GET_INPUT or a compatible routine. If a routine address ofC zero (0) is specified, commands with missing parameters fail and display a CLI error message.continuation_routine type: procedure access: read only mechanism: by reference@ Routine that prompts for th7e remainder of a continued command= (i.e., a command that ends with a hyphen). You can specify) LIB$GET_INPUT or a compatible routine.continuation_prompt type: character string access: read only mechanism: by descriptor4 Command continuation prompt string (e.g., SCA> ). user_argument type: longword access: read only mechanism: by referenceA User-specified value to be passed to any action routine (other4 than CLI prompt rou8tines) called by this routine.confirm_routine type: procedure access: read only mechanism: by valueB Command confirmation prompt routine to be used by commands thatA support a /CONFIRM qualifier. You can specify SCA$GET_INPUT orB a compatible routine. If this argument is omitted, the /CONFIRM qualifier is not supported. topic_routine type: procedure access: read only mechanism: by value@ Help topic prompt routine. You can sp9ecify LIB$GET_INPUT or a@ compatible routine. If this routine returns an error, commandA processing is terminated. If this argument is omitted, no help prompting is performed.display_routine type: procedure access: read only mechanism: by valueB Routine to be called to display one line of command output. You> can specify SCA$PUT_OUTPUT or a compatible routine. If thisA routine returns an error, command processing is terminated. If: this argument i:s omitted, no display routine is called.4 Condition_Values_Returned All SCA condition values and many system values.4 Description= The SCA$DO_COMMAND routine parses an SCA subsystem commandA and invokes command processing if the command is syntactically correct.3 SCA$GET_ATTRIBUTE. Gets a handle to an attribute of an entity. Format SCA$GET_ATTRIBUTE entity,' attribute_kind,) attribute_ha;ndle,, [,iteration_context] 4 Argumentsentity type: $SCA_HANDLE access: read only mechanism: by referenceC An SCA entity handle describing the entity or relationship whose! attributes are being obtained.attribute_kind" type: $SCA_ATTRIBUTE_KIND access: read only mechanism: by reference( The kind of attribute to be obtained.7 Any attribute-kind can be specified on this routine.attribute_handle< type: $SCA_HANDLE access: write only mechanism: by reference; An SCA attribute handle that is to describe the obtained attribute.iteration_context% type: $SCA_ITERATION_CONTEXT access: read/write mechanism: by referenceC Optional. The iteration-context. This longword must contain zeroE on the first call to this routine for a particular iteration. ThisC routine uses the longword to maintain the iteration context. The7 c=aller must not change the contents of the longword.4 Condition_Values_ReturnedE SCA$_NORMAL An attribute has been successfully returned.E SCA$_NONE Warning. An attribute has not been returned.? Either there are no such attributes at? all in the entity or there are no more$ attributes.4 DescriptionD The SCA$GET_ATTRIBUTE routine gets a handle to an attribute of an entity.<> If the iteration_context parameter is not specified, then? this routine finds the first attribute of the specified kindA (attribute_kind) and updates attribute_handle to describe that attribute.E In general, several attributes can be associated with a particularD entity. With this routine you can find all of those attributes by) using the iteration_context parameter.3 SCA$GET_ATTRI_KIND_T Gets an attribute kind. Format, SCA$GET_ATTRI_KIND_T attribu?te_handle,) attribute_kind 4 Argumentsattribute_handle type: $SCA_HANDLE access: read only mechanism: by referenceC An SCA handle describing an attribute whose attribute-kind is to be obtained.attribute_kind type: character string access: write only mechanism: by descriptor The kind of the attribute.4 Condition_Value_Returned@ SCA$_NORMAL An attribute kind has been successf@ully" returned.4 DescriptionE The SCA$GET_ATTRI_KIND_T routine returns the kind of any attribute as a character string.3 SCA$GET_ATTRI_VALUE_T Gets an attribute value. Format3 SCA$GET_ATTRI_VALUE_T handle, attribute_value- [,attribute_kind] 4 Argumentshandle type: $SCA_HANDLE access: read/write mechanism: by reference? An SCA attribute handle describing either an attribAute or an( entity whose value is to be obtained.attribute_value type: character string access: read/write mechanism: by descriptor6 The (string) value of the attribute being selected.attribute_kind" type: $SCA_ATTRIBUTE_KIND access: read/write mechanism: by reference2 Optional. The kind of attribute to be obtained.4 Condition_Values_ReturnedA SCA$_NORMAL An attribute value has been successfully" B returned.@ SCA$_NONE Warning. An attibute-value has not beenB returned. There are no such attributes inC the entity. This condition can be returned> only if this routine is processing an entity.4 Description= The SCA$GET_ATTRI_VALUE_T routine returns the value of any# attribute as a character string.B If the handle describes an attribute, then this routine C returns@ the value of that attribute. In this case, the attribute_kind# parameter must not be specified.C If the handle describes an entity, then this routine returns theB value of the first attribute of that entity that is of the kind@ specified by the attribute_kind parameter. In this case, the. attribute_kind parameter must be specified.C If you want to get more than one attribute value of a particularB kind for an entity, you must use the routine SCA$GET_ATTRIBUTE. D@ This applies only to the attribute kinds SCA$K_ATTRI_NAME and SCA$K_ATTRI_ALL.= The value of any kind of attribute can be returned by thisD routine, except for SCA$K_ATTRI_ALL. This routine will convert toE character string those attributes whose data type is not character string.E This routine does not accept the attribute-kind SCA$K_ATTRI_ALL asE the value of the attribute_kind parameter. It is not meaningful toA get just the first attribute without regard to Eattribute-kind.3 SCA$GET_CURRENT_QUERYC Gets the name of the current query in the given command context. Format, SCA$GET_CURRENT_QUERY command_context,& query_name 4 Argumentscommand_context# type: $SCA_COMMAND_CONTEXT access: read/write mechanism: by reference An SCA command context. query_name type: character string access: write only mechanism: by descriptorD The name of tFhe current query in the context of the given command context.4 Condition_Values_Returned? SCA$_NORMAL The name of the current query has been0 successfully retrieved.4 DescriptionA The SCA$GET_CURRENT_QUERY routine gets the name of the current& query in the given command context.3 SCA$GET_INPUTC Gets one record of ASCII text from the current controlling input! device specified by SYS$INPUT. Format SCA$GET_INPUT Gget_string,$ [,prompt_string]$ [,output_length]$ [,user_argument] 4 Arguments get_string type: character string access: write only mechanism: by descriptor@ Buffer to receive the line read from SYS$INPUT. The string is% returned by a call to STR$COPY_DX. prompt_string type: character string access: read only mechanism: by descriptorB Prompt message that is displa Hyed on the controlling terminal. AB valid prompt consists of text followed by a colon (:), a space,A and no carriage-return/line-feed combination. The maximum sizeD of the prompt message is 255 characters. If the controlling input6 device is not a terminal, this argument is ignored. output_length type: word access: write only mechanism: by reference@ Word to receive the actual length of the GET-STRING line, notC counting any padding in the case of a fIixed string. If the inputA line was truncated, this length reflects the truncated string. user_argument type: _UNSPECIFIED access: read only mechanism: by referenceB User-specified value that was passed to the routine that called this action routine.4 Condition_Values_Returned4 SCA$_NORMAL An input line was returned. Failure completion code from LIB$GET_ INPUT.4 DescriptionC The SCA$GET_INPUT routine gets one recoJrd of ASCII text from the; current controlling input device specified by SYS$INPUT.3 SCA$GET_OCCURRENCEC Returns an occurrence from the query specified by the query_name argument. Format) SCA$GET_OCCURRENCE command_context,$ query_name,# occurrence 4 Argumentscommand_context# type: $SCA_COMMAND_CONTEXT access: read/write mechanism: by reference An SCA command context. quKery_name type: character string access: read only mechanism: by descriptor? The name of the query in the context of the command context. occurrence type: $SCA_HANDLE access: read/write mechanism: by reference9 An SCA occurrence handle that describes an occurrence.4 Condition_Values_Returned< SCA$_NORMAL An occurrence has been successfully" returned.< SCA$_NEWNAME An occurrence has L been successfullyB returned. This occurrence has a differentC name from the occurrence that was returnedB by the previous call to this routine withC this query context. This condition implies> that this new occurrence is also of a* different symbol.< SCA$_NEWITEM An occurrence has been successfully> returned. Thi Ms new occurrence is of aB different symbol from the occurrence thatB was returned by the previous call to this9 routine with this query context.< SCA$_NOMORE Warning. An occurrence has not beenD returned. The traversal of the query result, has been exhausted.4 Description@ The SCA$GET_OCCURRENCE routine returns an occurrence from the. query specified b Ny the query_name argument.A If the occurrence handle supplied is zero, the routine returnsC a handle to the first occurrence in the query represented by theB argument query_name. If the occurrence handle supplied on inputA represents a valid occurrence, the routine returns a handle toE the next occurrence in the query result. In order to be valid, theE occurrence handle supplied on input must refer to an occurrence in4 the query represented by the argument query_name.? O The query name supplied is interpreted in the context of the> command context identified by the argument command_context.D Note that the order of retrieval of the occurrences is undefined.3 SCA$INITIALIZE2 Initializes the SCA callable command interface. Format$ SCA$INITIALIZE command_context 4 Argumentcommand_context# type: $SCA_COMMAND_CONTEXT access: write only mechanism: by referenceD SCA command context value to be initializPed. This value is passed, as an argument to other SCA$xxx routines.4 Condition_Value_ReturnedD SCA$_NORMAL The SCA callable command interface has been2 successfully initialized.4 DescriptionB The SCA$INITIALIZE routine initializes the SCA callable command interface.3 SCA$LOCK_LIBRARYB Locks all the physical libraries in the current virtual library( list so that they cannot be modified. Format& SCA$LOCK_LIBRARY comQmand_context 4 Argumentcommand_context# type: $SCA_COMMAND_CONTEXT access: read/write mechanism: by reference An SCA command context.4 Condition_Value_ReturnedE SCA$_NORMAL The libraries have been successfully locked.4 DescriptionC The SCA$LOCK_LIBRARY routine locks all the physical libraries inD the current virtual library list so that they cannot be modified.3 SCA$PUT_OUTPUTE Writes a record to the current controllinRg output device specified by SYS$OUTPUT. Format SCA$PUT_OUTPUT string," user_argument 4 Argumentsstring type: character string access: read only mechanism: by descriptorA String to be written to SYS$OUTPUT. You can concatenate one orD more additional character strings with the primary string to formC a single output record. You can specify a maximum of 20 strings.9 The maximum resulting record length is 255 chSaracters. user_argument type: _UNSPECIFIED access: read only mechanism: by referenceB User-specified value that was passed to the routine that called this action routine.4 Condition_Values_Returned? SCA$_NORMAL The string was successfully written to$ SYS$OUTPUT. Failure completion code from the VAX RMS $PUT service.4 Description< The SCA$PUT_OUTPUT routine writes a record to the current5 conTtrolling output device specified by SYS$OUTPUT.3 SCA$QUERY_CLEANUP= Cleans up an SCA query context, freeing all dynamic memory associated with the query. Format% SCA$QUERY_CLEANUP query_context 4 Argument query_context! type: $SCA_QUERY_CONTEXT access: read/write mechanism: by reference) An SCA query context to be cleaned up.4 Condition_Value_Returned@ SCA$_NORMAL The query context has been successfully$ U cleaned up.4 Description@ The SCA$QUERY_CLEANUP routine cleans up an SCA query context,8 freeing all dynamic memory associated with the query.@ This routine will become obsolete in a future version of SCA.3 SCA$QUERY_COPY> Copies a query from SRC_QUERY_CONTEXT to DST_QUERY_CONTEXT. Format' SCA$QUERY_COPY src_query_context,& dst_query_context 4 Argumentssrc_query_context! type: $SCA_QUERY_CONTEXT aVccess: read/write mechanism: by reference> An SCA query context that describes the query to be copied.dst_query_context! type: $SCA_QUERY_CONTEXT access: read/write mechanism: by reference= An SCA query context into which the query is to be copied.4 Condition_Value_ReturnedC SCA$_NORMAL The query expression has been successfully copied.4 DescriptionC The SCA$QUERY_COPY routine copies a query froWm SRC_QUERY_CONTEXTA to DST_QUERY_CONTEXT. This will copy whatever is in SRC_QUERY_C CONTEXT, whether that is a question, or a question and a result.@ This routine will become obsolete in a future version of SCA.3 SCA$QUERY_FINDE Finds the occurrences that match the query expression specified by QUERY_CONTEXT. Format" SCA$QUERY_FIND query_context 4 Argument query_context! type: $SCA_QUERY_CONTEXT access: read/write mechanism: X by reference? An SCA query context that describes a query expression to be evaluated.4 Condition_Values_ReturnedC SCA$_NORMAL The query expression has been successfully# evaluated.C SCA$_NOOCCUR No occurrences match the query expression.E SCA$_RESULTEXISTS The query already has a result prior to this call.4 DescriptionB The SCA$QUERY_FIND routine finds the occurrences that match the/Y query expression specified by QUERY_CONTEXT.@ This routine will become obsolete in a future version of SCA.3 SCA$QUERY_GET_ATTRIBUTE. Gets a handle to an attribute of an entity. Format% SCA$QUERY_GET_ATTRIBUTE entity,- attribute_kind,/ attribute_handle,2 [,iteration_context] 4 Argumentsentity type: $SCA_HANDLE access: read only mechanism: by ZreferenceC An SCA entity handle describing the entity or relationship whose! attributes are being obtained.attribute_kind" type: $SCA_ATTRIBUTE_KIND access: read only mechanism: by reference( The kind of attribute to be obtained.7 Any attribute-kind can be specified on this routine.attribute_handle type: $SCA_HANDLE access: write only mechanism: by reference; An SCA attribute handle that is to describe the obtained [ attribute.iteration_context% type: $SCA_ITERATION_CONTEXT access: read/write mechanism: by referenceC Optional. The iteration-context. This longword must contain zeroE on the first call to this routine for a particular iteration. ThisC routine uses the longword to maintain the iteration context. The7 caller must not change the contents of the longword.4 Condition_Values_ReturnedE SCA$_NORMAL An attribute has been successfully return\ed.E SCA$_NONE Warning. An attribute has not been returned.? Either there are no such attributes at? all in the entity or there are no more$ attributes.4 DescriptionD The SCA$QUERY_GET_ATTRIBUTE routine gets a handle to an attribute of an entity.< If the iteration_context parameter is not specified, then? this routine finds the first attribute of the specified kindA (attribute_kind) ]and updates attribute_handle to describe that attribute.E In general, several attributes can be associated with a particularD entity. With this routine you can find all of those attributes by) using the iteration_context parameter.D This routine will become obsolete in a future version of SCA. The5 SCA$GET_ATTRIBUTE routine supersedes this routine.3 SCA$QUERY_GET_ATTRI_KIND_T Gets an attribute kind. Format2 SCA$QUERY_GET_ATTRI_KIND_T attribute_handl^e,/ attribute_kind 4 Argumentsattribute_handle type: $SCA_HANDLE access: read only mechanism: by referenceC An SCA handle describing an attribute whose attribute-kind is to be obtained.attribute_kind type: character string access: write only mechanism: by descriptor The kind of the attribute.4 Condition_Value_Returned@ SCA$_NORMAL An attribute kind has been successful_ly" returned.4 DescriptionA The SCA$QUERY_GET_ATTRI_KIND_T routine returns the kind of any# attribute as a character string.D This routine will become obsolete in a future version of SCA. The8 SCA$GET_ATTRI_KIND_T routine supersedes this routine.3 SCA$QUERY_GET_ATTRI_VALUE_T Gets an attribute value. Format9 SCA$QUERY_GET_ATTRI_VALUE_T handle, attribute_value3 [,attribute_kind] 4 Arguments`handle type: $SCA_HANDLE access: read/write mechanism: by reference? An SCA attribute handle describing either an attribute or an( entity whose value is to be obtained.attribute_value type: character string access: read/write mechanism: by descriptor6 The (string) value of the attribute being selected.attribute_kind" type: $SCA_ATTRIBUTE_KIND access: read/write mechanism: by reference2 Optional. Thea kind of attribute to be obtained.4 Condition_Values_ReturnedA SCA$_NORMAL An attribute value has been successfully" returned.@ SCA$_NONE Warning. An attibute-value has not beenB returned. There are no such attributes inC the entity. This condition can be returned> only if this routine is processing an entity.4 DescriptionC The SCA b$QUERY_GET_ATTRI_VALUE_T routine returns the value of any# attribute as a character string.B If the handle describes an attribute, then this routine returns@ the value of that attribute. In this case, the attribute_kind# parameter must not be specified.C If the handle describes an entity, then this routine returns theB value of the first attribute of that entity that is of the kind@ specified by the attribute_kind parameter. In this case, the. attribute_kind parameter cmust be specified.C If you want to get more than one attribute value of a particular> kind for an entity, you must use the routine SCA$QUERY_GET_C ATTRIBUTE. This applies only to the attribute kinds SCA$K_ATTRI_ NAME and SCA$K_ATTRI_ALL.= The value of any kind of attribute can be returned by thisD routine, except for SCA$K_ATTRI_ALL. This routine will convert toE character string those attributes whose data type is not character string.E This routine does not accdept the attribute-kind SCA$K_ATTRI_ALL asE the value of the attribute_kind parameter. It is not meaningful toA get just the first attribute without regard to attribute-kind.D This routine will become obsolete in a future version of SCA. The9 SCA$GET_ATTRI_VALUE_T routine supersedes this routine.3 SCA$QUERY_GET_NAME Returns the name of a query. Format' SCA$QUERY_GET_NAME query_context,# query_name 4 Arguments query_contexte! type: $SCA_QUERY_CONTEXT access: read/write mechanism: by reference5 An SCA query context whose name is to be obtained. query_name type: character string access: write only mechanism: by descriptor The name of the query.4 Condition_Value_Returned= SCA$_NORMAL The query name has been successfully" returned.4 Description> The SCA$QUERY_GET_NAME routine returns the name of a query.f@ This routine will become obsolete in a future version of SCA.3 SCA$QUERY_GET_OCCURRENCED Gets the next occurrence in the query result that is specified as a query_context argument. Format- SCA$QUERY_GET_OCCURRENCE query_context,, entity_handle 4 Arguments query_context! type: $SCA_QUERY_CONTEXT access: read/write mechanism: by reference= An SCA query context whose occurrences are to be obtained.g entity_handle type: $SCA_HANDLE access: read/write mechanism: by reference1 An SCA entity handle that describes an entity.4 Condition_Values_Returned< SCA$_NORMAL An occurrence has been successfully" returned.< SCA$_NEWSYMBOL An occurrence has been successfully> returned. This new occurrence is of aB different symbol than the occurrence thatB h was returned by the previous call to this! routine.< SCA$_NOMORE Warning. An occurrence has not beenD returned. The traversal of the query result, has been exhausted.4 DescriptionB The SCA$QUERY_GET_OCCURRENCE routine successively returns everyD occurrence in a query result. It provides one pass through all of the occurrences.D This routine will become obsolete in a future version of SCiA. The6 SCA$GET_OCCURRENCE routine supersedes this routine.3 SCA$QUERY_INITIALIZE$ Initializes an SCA query context. Format+ SCA$QUERY_INITIALIZE command_context,( query_context 4 Argumentscommand_context# type: $SCA_COMMAND_CONTEXT access: read/write mechanism: by reference An SCA command context. query_context! type: $SCA_QUERY_CONTEXT access: write only mechanism: by referencjeE An SCA query context to be initialized. This value is passed as an8 argument to other SCA query routines (SCA$QUERY_xxx).4 Condition_Value_Returned@ SCA$_NORMAL The query context has been successfully% initialized.4 DescriptionE The SCA$QUERY_INITIALIZE routine initializes an SCA query context.D This routine must be called before any other SCA$QUERY_ routines.@ This routine will become obsolete in a future version of SCA.k3 SCA$QUERY_PARSE? Parses a query expression command string and sets up a query3 context if the command is syntactically correct. Format< SCA$QUERY_PARSE query_context, query_expression_string0 [,query_expression_length] 4 Arguments query_context! type: $SCA_QUERY_CONTEXT access: read/write mechanism: by reference? An SCA query context that is to describe the indicated query expression.query_expression_strinlg type: character string access: read only mechanism: by descriptor A query expression string.query_expression_length type: longword access: write only mechanism: by reference> Optional. Length of the query expression, returned from the parser.4 Condition_Values_Returned= SCA$_NORMAL The query expression string has been- successfully parsed.A SCA$_MORETEXT Warning. The qu mery expression string has? been successfully parsed, but the text@ following the query expression is not aA legal part of the query expression. ThisA condition is returned only if the query_E expression_length parameter is specified. IfD the query_expression_length parmeter is notB specified, then this routine insists thatC n the whole query_expression_string argumentB be a legal query expression; in this case1 all errors are signaled.4 DescriptionC The SCA$QUERY_PARSE routine parses a query expression string andC sets up a query context if the command is syntactically correct.@ This routine will become obsolete in a future version of SCA.3 SCA$QUERY_SELECT_OCCURRENCE= Creates a query expression that matches a specific enotity. Format0 SCA$QUERY_SELECT_OCCURRENCE query_context,/ entity_handle 4 Arguments query_context! type: $SCA_QUERY_CONTEXT access: read/write mechanism: by reference> An SCA query context that is to describe a specific entity. entity_handle type: $SCA_HANDLE access: read/write mechanism: by reference@ An SCA entity handle that describes the entity that the newly% defined quepry context is to match.4 Condition_Value_ReturnedA SCA$_NORMAL A query expression has been successfully! defined.4 DescriptionE The SCA$QUERY_SELECT_OCCURRENCE routine creates a query expression" that matches a specific entity.? You use this routine to specify queries based on the resultsB of previous queries. The entity_handle parameter is obtained by9 traversing the results of a previous query evaluation.A Typically, the qquery context of the entity_handle parameter isD not the same as the query_context parameter. However, they can beC the same. If they are the same query context, then that previousE query is replaced with the query defined by this routine and, as a) result, entity_handle becomes invalid.D This routine will become obsolete in a future version of SCA. The9 SCA$SELECT_OCCURRENCE routine supersedes this routine.3 SCA$SELECT_OCCURRENCE6 Creates a query that matches a specifric occurrence. Format' SCA$SELECT_OCCURRENCE occurrence,& query_name 4 Arguments occurrence type: $SCA_HANDLE access: read only mechanism: by referenceC An SCA occurrence handle which describes the occurrence that the# newly created query is to match. query_name type: character string access: write only mechanism: by descriptorD The name of the newly created query. This query is creasted in theA context of the same command context as that in which the input occurrence handle is defined.4 Condition_Values_ReturnedA SCA$_NORMAL A query expression has been successfully! defined.4 DescriptionE You use this routine to create new queries based on the results ofC previous queries. The occurrence handle parameter is obtained by9 traversing the results of a previous query evaluation.3 SCA$UNLOCK_LIBRARYD Unloctks all the physical libraries in the current virtual library% list so that they can be modified. Format( SCA$UNLOCK_LIBRARY command_context 4 Argumentcommand_context# type: $SCA_COMMAND_CONTEXT access: read/write mechanism: by reference An SCA command context.4 Condition_Value_Returned= SCA$_NORMAL The libraries have been successfully" unlocked.4 DescriptionD The SCA$UNLOCK_LIBRARY routin ue unlocks all the physical librariesD in the current virtual library list so that they can be modified.2 Callable_SCA: The SCA Callable Interface allows you to use SCA withinE independent application programs. This allows you to integrate SCAE into alternative user-interfaces and lets you generate specialized$ reports based on SCA information.E The SCA Callable Interface contains two components. The first is aC set of routines termed Callable Command Routines, which comvpriseB a high-level interface which must always be used, regardless of@ the type of application. This provides a very simple callableD 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 terwmed Callable@ Query Routines. The Callable Query Routines comprise a lower-@ level interface to the FIND command. Using this interface, anD application has control over the specification of queries and the! manipulation of query results.1 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 o SCA$SELECT_OCCURRENCE x. Callable Query Result Manipulation Routines o SCA$GET_ATTRIBUTE o SCA$GET_ATTRI_KIND_T o SCA$GET_ATTRI_VALUE_T o SCA$GET_OCCURRENCE 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$GET_CURRENT_QUERY o SCA$QUERY_COPY o SCA$QUERY_FIND o SCA$QUERY_GET_NAME Message Handling@ The SCA calla yble interface handles all messages the same way:@ it signals them. If you want control over the display of suchC messages, you must establish a condition handler. Establishing a! condition handler is optional.! Rules for Calling SCA RoutinesD o Most SCA routines are not AST-reentrant; therefore, you shouldC not call an SCA routine (except SCA$ASYNCH_TERMINATE) from anD AST routine that may currently be interrupting an SCA routine.) o Your program must not disazble ASTs.@ o If your program uses event flags, you must use the VMS RTLE routines (LIB$RESERVE_EF, LIB$GET_EF, and LIB$FREE_EF) in orderC to coordinate the use of event flags between your program and SCA.E o Except for SCA$ASYNCH_TERMINATE, do not call SCA from within anD SCA callback routine or from within a routine that is handling" a condition signaled by SCA.E o Your program must not unwind when handling a condition signaled by SCA. {2 CALLED_BY> The CALLED_BY function is a relationship function. It finds? occurrences that have a CALLED_BY relationship between them.C For example, if routine B is called by routine A, then these twoB occurrences are in a CALLED_BY relationship. In its most common+ form, the function format is as follows:: CALLED_BY( , , DEPTH={ | ALL} )? In this format, and can be any legal query@ expression, and is a positive intege|r. A typical useE of the function is to find those routines which are called by some" specified routine. For example:( FIND CALLED_BY( xyz, *, DEPTH=ALL )C This query finds the full call tree below XYZ, where XYZ is someD routine in the SCA database. In other words, this query finds allB routines which are either directly or indirectly called by XYZ.E The CALLED_BY function provides the power to return the exact call0 tree you want. The full format is as follows: } CALLED_BY( [ END= ],! [ BEGIN= ],) [ DEPTH={ | ALL} ],( [ RESULT=RESULT_KEYWORD ],* [ TRACE=query_expression ] )D In the previous format, and < caller> is any legal query@ expresion, is a positive integer, RESULT_KEYWORD canA be STRUCTURE, NOSTRUCTURE, ANY_PATH, BEGIN, or END, and QUERY_, EXPRESSION is any legal query expression.@ For a full description of the CALLED_BY relations~hip, see the LSE/SCA User Manual. 2 CALLING< The CALLING function is a relationship function. It finds> occurrences with the CALLING relationship between them. For= example, if routine A is calling routine B, then these two@ occurrences are in a CALLING relationship. In its most common+ form, the function format is as follows:8 CALLING( , , DEPTH={ | ALL} )? In this format, and can be any legal queryB expression and is a positive integer. A typical use of@ the function is to find those routines which are calling some' specified routine call. For example,& FIND CALLING( abc, *, DEPTH=ALL )C This query finds the full call tree above ABC, where ABC is someE routine in the SCA database. In other words, find all the routines/ that are directly or indirectly calling ABC.C The CALLING function provides the power to return the exact call( tree of interest. The full format is: CALLING ( [ END= ], [ BEGIN= ],( [ DEPTH={ | ALL} ],' [ RESULT=RESULT_KEYWORD ],) [ TRACE=query_expression ] )C In the previous format, and is any legal queryC expresion, is a positive integer, RESULT_KEYWORD can beB STRUCTURE, ANY_PATH, BEGIN, or END, and QUERY_EXPRESSION is any legal query expression.> For a full description of the CALLING relationship, see the LSE/SCA User Manual.2 Command_Categories< This section lists the commands implemented by SCA. TheseB commands can be issued from within LSE, at DCL level, or at the@ SCA subsystem level. See individual commands for definitions,2 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)0( o PREVIOUS (OCCURRENCE, QUERY, STEP, SYMBOL) General Commands o EXIT o HELP o SHOW VERSION 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 VERIFY o VERIFY/RECOVER2 CONTAINED_BYA The CONTAINED_BY function is a relationship function. It findsE occurrences that have a CONTAINED_BY relationship between them. In; its most common form, the function format is as follows:C CONTAINED_BY( , , DEPTH={ | ALL} )E In this format, and can be any legal query2 expression, and is a positive integer.D Some examples will help you understand this function. The diagram* that follows applies to these examples. A (module)( +---- ---------------------+( | |( | B (routine) |( | +-------------------+ |( | | | |( | | C (routine) | |( | | +-------------+ | |( | | | | | |( | | | D (variable)| | |( | | | | | |( | | | | | |( | | +-------------+ | |( | |  | |( | +-------------------+ |( | |( | E (variable) |( | |( +-------------------------+" Consider the following queries:* 1. FIND CONTAINED_BY( A, *, DEPTH=1 )* 2. FIND CONTAINED_BY( C, *, DEPTH=1 )* 3. FIND CONTAINED_BY( A, *, DEPTH=2 )B The first query returns A (the container), B (a containee), and@ E (a containee). Similarly, t he second query returns C and D.C The third query returns A, B, and C and E. The D variable is NOT: included because it is not reachable at a depth of two.* Now consider the following two queries:, 4. FIND CONTAINED_BY( A, D, DEPTH=ALL )* 5. FIND CONTAINED_BY( A, D, DEPTH=2 )E Query four returns A (the container), B (because it is on the pathE to D), C (becasue it is on the path) and D (which is the containee@ being searched for). The fifth query does not return an ything> because the D variable cannot be reached at a depth of two.B Where a container begins and ends is determined by the languageC syntax. These boundaries are reported to SCA by the compiler and: used by the CONTAINED_BY function to determine nesting.C The CONTAINED_BY function provides the power to return the exact= nesting structure you want. The full format is as follows:% CONTAINED_BY( [ END= ],' [ BEGIN= ],, [ DEPTH={ | ALL} ],+ [ RESULT=RESULT_KEYWORD ],- [ TRACE=query_expression ] )C In the previous format, and is any legalC query expression, is a positive integer, RESULT_KEYWORDE can be STRUCTURE, NOSTRUCTURE, ANY_PATH, BEGIN, or END, and QUERY_, EXPRESSION is any legal query expression.C For a full description of the CONTAINED_BY relationship, see theD LSE/SCA User Manual. See also the help topic for the IN function,5 which is similar to the CONTAINED_BY relationship. 2 CONTAINING? The CONTAINING function is a relationship function. It finds@ occurrences that have a CONTAINING relationship between them.> In its most common form, the function format is as follows:A CONTAINING( , , DEPTH={ | ALL} )E In this format, and can be any legal query2 expression, and is a positive integer.B Some examples will help you understand the CONTAINING function.6 The diagram that follows applies to these examples. A (module)( +-------------------------+( | |( | B (routine) |( | +-------------------+ |( | | | |( | | C (routine) | |( | | +-------------+ | |( | | | | | |( | | | D (variable)| | |( | | | | | |( | | | | | |( | | +-------------+ | |( | | | |( | +-------------------+ |( | |( | E (variable) |( | |( +-------------------------+" Consider the following queries:( 1. FIND CONTAINING( D, *, DEPTH=1 )( 2. FIND CONTAINING( C, *, DEPTH=1 )( 3. FIND CONTAINING( D, *, DEPTH=2 )D The first query returns D (the containee), and C (the container).? Similarly, the second query returns C and B. The third query returns D, C and B.( Now consider the following 2 queries:* 4. FIND CONTAINING( D, A, DEPTH=ALL )( 5. FIND CONTAINING( D, A, DEPTH=2 )@ Query four returns D (the containee), C (because it is on the@ path to A), B (because it is on the path) and A (which is the? container being looked fo r). The fifth query does not return: anything because A cannot be reached at a depth of two.B Where a container begins and ends is determined by the languageC syntax. These boundaries are reported to SCA by the compiler and8 used by the CONTAINING function to determine nesting.A The CONTAINING function provides the power to return the exact= nesting structure you want. The full format is as follows:# CONTAINING( [ END= ],% [ BEGIN= ],* [ DEPTH={ | ALL} ],) [ RESULT=RESULT_KEYWORD ],+ [ TRACE=query_expression ] )C In the previous format, and is any legalC query expression, is a positive integer, RESULT_KEYWORDE can be STRUCTURE, NOSTRUCTURE, ANY_PATH, BEGIN, or END, and QUERY_, EXPRESSION is any legal query expression.A For a full description of the CONTAINING relationship, see the LSE/SCA User Manual. 2 DOMAIN D DOMAIN is an attribute of an occurrence that determines the scopeC of the symbol defined. It is the range of source code in which a* symbol has the potential of being used.A For example, A BLISS OWN declaration creates a symbol that hasB a module-specific symbol domain; it cannot be used outside thatB module. On the other hand, a BLISS GLOBAL declaration creates aD symbol that has a multimodule symbol domain; it has the potential) of being used in more than one module.' The format for DOMAIN is as follows: DOMAIN=(keyword[,keyword...])+ The keyword can be one of the following:@ o INHERITABLE - able to be inherited into other modules (for@ example, through BLISS library, PASCAL environment, or Ada$ compilation system mechanisms)A o GLOBAL - known to multiple modules via linker global symbol definitions? o PREDEFINED - defined by the language (examples: BLISS ap," FORTRAN sin, PASCAL writeln)E o MULT I_MODULE - domain spans more than one module (domain=multi_D module is equivalent to domain=(inheritable,global,predefined)7 o MODULE_SPECIFIC - domain is limited to one module: The previous keywords are SCA terms. For information on> corresponding language-specific terms, request help for theE appropriate language table (for example, FORTRAN_ATTRIBUTES_TABLE)( under the Getting_Started help topic.1 An example using the DOMAIN attribute follows:+ FIND DOMAIN=GLOBAL AND SYMBOL=VARIABLE( This query find all global variables. 2 EXPANDC The EXPAND function determines the symbol to which an occurrenceB belongs and returns the full set of occurrences for the symbol.A For example, the following code fragments, written in a pseudo; language, declare and use the variable i in three files.+ file 1 file 2 file 3+ ------ ------ ------3 GLOBAL i (d) LOCAL i (d) EXTERNAL i (d)7 i := 0 (wr) i := 5 (wr) IF i EQUALS 0 (rr) (d) - declaration (wr) - write reference (rr) - read referenceB The pseudo language defines variables, such that the variable iD in "file 1" and the variable i in "file 3" are the same variable.D The variable i in "file 2", however, is a different variable. SCAD treats these variables in the same manner by saying there are two5 unique symbols which happen to have the same name.? The important point in the previous example is that what theE programmer considers unique items SCA also considers unique items.) In SCA terms, these items are symbols.C Given the previous code fragments, consider the follwoing query:3 FIND SYMBOL_CLASS=VARIABLE AND OCCURRENCE=READD This query returns one occurrence, which is the read reference in) "file 3." Now consider the next query:= FIND EXPAND( symbol_class=variable and occurrence=read )D This query returns two occurren ces of "i" in "file 1" and the twoD occurrences of "i" in "file 3." The EXPAND function uses the readC reference to determine the corresponding symbol and then returnsC all the occurrences for that symbol. In this case the symbol was the global variable "i".E Note that the two occurrences in "file 2" are not returned becauseB they belong to a different symbol. The programmer does not viewE the i in "file 2" to be the same as the i in "file 1" and "file 3" and SCA reflects that view.D When given more than one occurrence, the EXPAND function performsC this operation iteratively and removes any duplicate occurrences from the result.D In the following example, you use the EXPAND function to find theD declarations of routines defined in the system, but which are not1 used. To do this, specify the following query:9 FIND (SYMBOL=ROUTINE AND OCCURRENCE=PRIMARY) AND NOT4 EXPAND(SYMBOL=ROUTINE AND OCCURRENCE=REFERENCE) 2 FILE_SPECE FILE_SPEC is an attribute selection that specifies the name of theB file. You identify a source file by its VMS file specification.? You should enclose the file specification in quotation marks, because it normally contains a period (.)8 The format for the FILE_SPEC attribute is as follows: FILE_SPEC="filename.filetype"4 An example using the FILE_SPEC attribute follows: FIND FILE_SPEC="MYPROG.FOR"; This query finds all occurrences in the file MYPROG.FOR. 2 Getting_StartedC SCA works with many languages. See the subtopics in this sectionB for information about getting started with a specific language. 3 Using_AdaC This section contains some basic examples that show what SCA canC do to help you with your programs. The examples have very littleA explanation. For a more detailed explanation of the underlyingC concepts, see the Basic_Query_Concepts help topic. The remainder? of this section is written in terms that are specif ic to Ada programs.E If you want to follow along and try the examples, you will need toB have an SCA library available. If you do not know how to createC an SCA library, read the Building_An_SCA_Library help topic. TheC examples use generic variable names (such as 'i'). You will haveC to substitute variable names that exist in your code when trying the examples.C The first example is the easiest query: It lets you find all theD items in your SCA library named 'i', and shows you all the places/ where they appear (all occurrences of 'i'). FIND i> You can search for any name in this manner, including using. wildcard characters (for example, FIND i*).? Suppose you are looking for an occurrence, and you know that@ it occurs in a particular file. The following query finds allC occurrences of items that are named 'i' but will then limit them= to those which happen to occur in the file named PROG.ADA." FIND i AND FILE_SPEC="P ROG.ADA"B Another typical question one might ask is, "Find all the placesB where this item is assigned to (or read from, called, declared,B and so forth)." The next example finds all occurrences of itemsE that are named 'i', but then limits them to only those occurrences! where 'i' is assigned a value: FIND i AND OCCURRENCE=WRITEE (SCA understands many occurrence classes other then WRITE. See theE help subtopics under Getting_Started for tables containing all the; SCA attributes and their corresponding meanings in Ada.)A Often, you only want to know where (in what file or package) a@ particular function is, so that you can go to it and edit it.A You can use the first query (where 'i' will be the name of the> function) and then look through the output. The output willA include all occurrences of the function, one of which would beE its declaration, which you can then select. Or, you can ask SCA to: limit the search for you by typing the following query: FIND i AND OCCURRENCE=PRIMARY> In SCA terms, a primary declaration is the most significantC declaration of an item. For an Ada function, this means the bodyD of the function, or package, or generic, and so forth. This is inC contrast to the specification, which is considered an associated declaration.B Another problem you might have is that there are many differentC items in your system having a given name. Some may be variables;C others may be functions, constants, tasks, and so forth. Suppose@ you want to find only the functions named i. Again, the queryE FIND i will give you what you want, but it will also give you much7 more. It is preferable to issue the following query:# FIND i AND SYMBOL_CLASS=FUNCTIOND The previous four examples have selected information based on twoD attributes. The last example selected information based on a nameD attribute (in this case, i) and a symbol class attribute (in thisB case, FUNCTION). Note how the attributes are combined using theE boolean operator AND. In general, you can select items out of yourD library based on any combination of attributes, using AND as well3 as the other logical operators OR, XOR, and NOT.> The next example shows another primary feature of SCA - theE ability to display relationships between items. This example showsB the most common use of this feature. It finds the complete callB tree (that is, all functions called directly and indirectly) of the function named i. FIND CALLED_BY (i, DEPTH=ALL)? If you want to limit the depth of the call tree, replace the' keyword ALL by any positive integer.E The final part of this section describes how to go directly to theD source code once you have issued a query. After issuing the queryC FIND i, for example, you can have an LSE query buffer containing+ something that looks like the following: I variable- ADA_MODULE\60 object declaration* ADA_MODULE\75 write reference) ADA_MODULE\79 read reference) ADA_MODULE\122 read reference* ADA_MODULE\144 write reference0 ADA_MODULE\146 read, write reference* ADA_MODULE\149 write reference) ADA_MODULE\149 read reference$ ADA_MODULE\150 reference) ADA_MODULE\166 read referenceE The first two lines of this display will be highlighted. The firstC line represents the item you looked for (i), and the rest of theC lines represent the different places in the code where this itemE occurred (that is, the occurrences of i). By using the up and downE arrows on your keyboard, or by clicking on an occurrence with yourB mouse, you can choose the occurrence you want to see. Then, allE you have to do is type CTRL/G (the keyboard equivalent of the GOTOC SOURCE command) and LSE will bring the source file into a buffer0 and position you at the occurrence you chose.E To obtain help on the following topics, request help as indicated.C o For help on query language, see the Basic_Query_Concepts help topic.A o For help on libraries, see the Building_An_SCA_Library help topic.3 Ada_Attributes_Table= The following table lists the SCA symbol classes and their! corresponding meanings in Ada.= SCA Symbol Classes and Equivalent Ada Language Terminology, SCA Term Ada Term Explanation> Argument Formal A subprogram formal parameter parameterD Component, Component Record components and discriminants Field Constant, Constant Literal Exception Exception? File File A file used during compilation Function, All Procedure, subprograms, Program, entries, Routine, and ACCEPT Subroutine statements? Generic Generic  Generic subprograms or generic) packages0 Keyword Keyword PDF keyword tag Label Labels and loop identifiers Macro N/A Module, Packages Package0 Placeholder Placeholder LSE placeholder Psect N/A( Tag Tag PDF tag- Task Task Task objects Type Type7 Unbound Unbound Pragmas and attributes Variable ObjectA The following table lists the SCA occurrence classes and their! corresponding meanings in Ada.A SCA Occurrence Classes and Equivalent Ada Language Terminology, SCA Term Ada Term Explanation: Primary Body For example, package bodyC Associated Specification For example, package specificationC Declaration Declaration Any declaration, either primary or+  associated3 Reference Reference Any nondeclaration Read, Fetch Read Write, Store Write Address, N/A Pointer Call CallB Command_line Command line A file referred to on the command? line; for example, ADA foo.ada Include N/A Precompiled N/A= Explicit Explicit An entity that is explicitly7 dec lared. For example,D declarations resulting from generic0 instantiations.E Implicit Implicit Any symbol declared by the compiler,8 for example a loop nameB Visible Visible A symbol whose name is visible in+ the sourceC Hidden Hidden A symbol whose name is not visible< in the source; for example,0 anonymous types@ Compilation_ Compilation Subprogram declaration or body,D unit unit package declaration or body, and so& forth= The following table lists the SCA domain classes and their! corresponding meanings in ADA.= SCA Domain Classes and Equivalent Ada Language Terminology, SCA Term Ada Term Explanation> Inheritable Objects declared in a package. specification Global N/A Predefined N/AC Multi_module Inheritable, Global and PredefinedA Module_ Module Objects known to only one module specific specific3 Using_BASICC This section contains some typical examples that illustrate whatD SCA can do to help you with your programs. The examples have veryE little explanation. If you want a more detailed e xplanation of theD underlying concepts, see the Basic_Query_Concepts help topic. TheE remainder of this section is written in terms that are specific to BASIC programs.E If you want to follow along and try the examples, you will need toB have an SCA library available. If you do not know how to createC an SCA library, read the Building_An_SCA_Library help topic. TheD examples use generic variable names (such as i). You will have toB substitute variable names that actually exist in your code when trying the examples.B The first example is the easiest query of all: It lets you findC all the items in your SCA library named i, and shows you all the3 places where they appear (all occurrences of i). FIND i> You can search for any name in this manner, including using. wildcard characters (for example, FIND i*).@ Now let's say you are looking for an occurrence, and you knowE that it occurs in a particular file. The following query find s allD occurrences of items that are named i but will then limit them to< those which happen to occur in the file named 'PROG.BAS'." FIND i AND FILE_SPEC="PROG.BAS"A Another typical question one might ask is "Find all the placesB where this item is assigned to (or read from, called, declared,B and so forth)." The next example finds all occurrences of itemsC that are named i, but then limits them to only those occurrences where i is assigned a value. FIND i AND OC CURRENCE=WRITEE (SCA understands many occurrence classes other then WRITE. See theE help subtopics under Getting_Started for tables containing all the= SCA attributes and their corresponding meanings in BASIC.)@ Often, you only want to know where (in what file or module) a@ particular function is, so that you can go to it and edit it.B You could use the first query (where i would be the name of the? function) and then look through the output. The output wouldA include a ll occurrences of the function, one of which would beE its definition, which you could then select. Or, you could ask SCA= to limit the search for you by typing the following query: FIND i AND OCCURRENCE=PRIMARY> In SCA terms, a primary declaration is the most significant? declaration of an item. For a BASIC function, this means the> actual location of the function body. This is as opposed to< an associated declaration, examples of which are EXTERNAL3 declarations, and DECLARE FUNCTION declarations.B Another problem you might have is that there are many differentC items in your system having a given name. Some may be variables;D others may be functions, constants, labels, and so forth. Suppose@ you want to find only the functions named i. Again, the queryD FIND i would give you what you wanted, but it would also give you< much more. It is preferable to issue the following query:# FIND i AND SYMBOL_CLASS=FUNCTIOND The last four examp les have all selected information based on twoD attributes. The last example selected information based on a nameD attribute (in this case, i) and a symbol class attribute (in thisB case, FUNCTION). Note how the attributes are combined using theE boolean operator AND. In general, you can select items out of yourD library based on any combination of attributes, using AND as well2 as the other logical operators OR, XOR and NOT.> The next example shows another primary feature of S CA - the> ability to display relationships between items. The exampleA given here shows the most common use of this feature. It findsE the complete call tree (that is, all functions called directly and( indirectly), of the function named i. FIND CALLED_BY (I, DEPTH=ALL)C If you want to limit the depth of the call tree, you can replace+ the keyword ALL by any positive integer.E The final part of this section describes how to go directly to theD source code once yo u have issued a query. After issuing the queryE FIND i, for example, you could have an LSE query buffer containing+ something that looks like the following: I variable1 BASIC_MODULE\60 variable declaration, BASIC_MODULE\75 write reference+ BASIC_MODULE\79 read reference. BASIC_MODULE\95 address reference+ BASIC_MODULE\122 read reference, BASIC_MODULE\144 write reference+ BASIC_MODULE\146 read re ference, BASIC_MODULE\149 write reference+ BASIC_MODULE\149 read reference. BASIC_MODULE\150 address reference+ BASIC_MODULE\166 read referenceE The first two lines of this display will be highlighted. The firstC line represents the item you looked for (I), and the rest of theC lines represent the different places in the code where this itemE occurred (that is, the occurrences of I). By using the up and downE arrows on your keyboa rd, or by clicking on an occurrence with yourB mouse, you can choose the occurrence you want to see. Then typeC CTRL/G (the keyboard equivalent of the GOTO SOURCE command), andC LSE will bring the source file into a buffer and position you at the occurrence you chose.E To obtain help on the following topics, request help as indicated.C o For help on query language, see the Basic_Query_Concepts help topic.A o For help on libraries, see the Building_An_SCA_Library help topic.3 BASIC_Attributes_Table= The following table lists the SCA symbol classes and their# corresponding meanings in BASIC.? SCA Symbol Classes and Equivalent BASIC Language Terminology, SCA Term BASIC Term Explanation< Argument Parameter Subprogram formal parameter Component, Record Field component Constant, Constant Literal Exception N/AA File File A file used during a compilationE Function, Program or For example, PROGRAM, SUB, FUNCTION,- Procedure, subprogram DEF, PICTURE Program, Routine, Subroutine Generic N/A. Keyword Keyword A PDF keywordA Label Label A line number or statement label Macro N/A Module, N/A Package0 Placeholder Placeholder LSE placeholder4 Psect Psect MAP or COMMON block( Tag Tag PDF tag Task N/AD Type Type For example, word, double, decimal,- and so forth Unbound N/A Variable VariableA The following table lists the SCA occurrence classes and their# corresponding meanings in BASIC.C SCA Occurrence Classes and Equivalent BASIC Language Terminology, SCA Term BASIC Term Explanation> Primary Declaration For variables, where they areD declared with, for example, DECLARED or MAP statements. For subprograms,A where they are defined, that is,E where the body of the subprogram is.A Associated Declaration EXTERNAL declarations or DECLARE4 FUNCTION statements? Declaration Declaration Either a PRIMARY or ASSOCIATED, declaration Read, Fetch Read Write, Store WriteA Address, Address Actual parameter to LOC function Pointer reference Call Call@ Command_line Command line A file specified on the commandA line; For example, BASIC foo.bas? Include Include A file specified in a %INCLUDE* directive Precompiled N/A3 Reference Reference Any nondeclaration@ Explicit Explicit Any symbol declared by the userD Implicit Implicit Any symbol declared by the compilerA when it sees the first referenceB Visible Visible A symbol whose name is visible in+ the sourceD Hidden Hidden A symbol not visible in the source;E for example, function return values,6 implicit declarations@ Compilation_ For example, a PROGRAM, SUB, or) unit FUNCTION= The following table lists the SCA domain classes and their# corresponding meanings in BASIC.? SCA Domain Classes and Equivalent BASIC Language Terminology, SCA Term BASIC Term Explanation Inheritable N/A> Global Available across modules; for: example, through EXTERNAL- declarations= Predefined Predefined Defined by the language; for@ example, DECIMAL, PI, CHR$, and) so forthD Multi_module Predefined, global, and inheritableD Module_ Visible only within one module; for3 specific example, variables3 Using_B LISSC This section contains some basic examples that show what SCA canC do to help you with your programs. The examples have very littleA explanation. For a more detailed explanation of the underlyingC concepts, see the Basic_Query_Concepts help topic. The remainderA of this section is written in terms that are specific to BLISS programs.E If you want to follow along and try the examples, you will need toB have an SCA library available. If you do not know how to create C an SCA library, read the Building_An_SCA_Library help topic. TheD examples use generic variable names (such as i). You will have toB substitute variable names that actually exist in your code when trying the examples.C The first example is the easiest query. It lets you find all theB items in your SCA library named i, and shows you all the places, where they appear (all occurrences of i): FIND i> You can search for any name in this manner, including using. w ildcard characters (for example, FIND i*).C Now suppose you are looking for an occurrence, and you know that@ it occurs in a particular file. The following query finds allE occurrences of items that are named i, but will then limit them to9 those that happen to occur in the file named PROG.B32." FIND i AND FILE_SPEC="PROG.B32"B Another typical question you might ask is, "Find all the placesE where this item is assigned to (or read from, called, declared andC so forth) ." The next example finds all occurrences of items thatD are named i, but then limits them to only those occurrences where i is assigned a value: FIND i AND OCCURRENCE=WRITEE (SCA understands many occurrence classes other then WRITE. See theE help subtopics under Getting_Started for tables containing all the= SCA attributes and their corresponding meanings in BLISS.)@ Often, you only want to know where (in what file or module) aC particular routine is, so that you can go to it and edit it. YouD can use the first query (where i will be the name of the routine)@ and then look through the output. The output will include allD occurrences of the routine, one of which will be its declaration,E which you can then select. Or, you can ask SCA to limit the search) for you by typing the following query: FIND i AND OCCURRENCE=PRIMARY> In SCA terms, a primary declaration is the most significant> declaration of an item. For a BLISS routine, th is means the> place where the routine is actually implemented. This is inE contrast to FORWARD or EXTERNAL declarations, which are associated declarations.B Another problem you might have is that there are many differentC items in your system having a given name. Some may be variables;B others may be routines, literals, macros, and so forth. Suppose? you want to find only the routines named i. Again, the queryB FIND i will give you what you wanted, but it will also give y ou< much more. It is preferable to issue the following query:" FIND i AND SYMBOL_CLASS=ROUTINED The last four examples have all selected information based on twoD attributes. The last example selected information based on a nameD attribute (in this case, i) and a symbol_class attribute (in thisA case, ROUTINE). Note how the attributes are combined using theE boolean operator AND. In general, you can select items out of yourD library based on any combination of attributes, using AND as well3 as the other logical operators OR, XOR, and NOT.> The next example shows another primary feature of SCA - theE ability to display relationships between items. This example showsB the most common use of this feature. It finds the complete callE tree (that is, all routines called directly and indirectly) of the routine named i. FIND CALLED_BY (i, DEPTH=ALL)? If you want to limit the depth of the call tree, replace the' keyword ALL by any positi ve integer.E The final part of this section describes how to go directly to theD source code once you have issued a query. After issuing the queryC FIND i, for example, you can have an LSE query buffer containing+ something that looks like the following: I variable. BLISS_MODULE\60 LOCAL declaration, BLISS_MODULE\75 write reference+ BLISS_MODULE\79 read reference+ BLISS_MODULE\122 read reference, BLISS_MODULE\144 write reference+ BLISS_MODULE\146 read reference, BLISS_MODULE\149 write reference+ BLISS_MODULE\149 read reference+ BLISS_MODULE\150 read reference+ BLISS_MODULE\166 read referenceE The first two lines of this display will be highlighted. The firstC line represents the item you looked for (i), and the rest of theC lines represent the different places in the code where this itemE occurred (that is, the occurrences of i ). By using the up and downE arrows on your keyboard, or by clicking on an occurrence with yourC mouse, you can choose the occurrence you want to see. Then, typeB CTRL/G (the keyboard equivalent of the GOTO SOURCE command) andC LSE will bring the source file into a buffer and position you at the occurrence you chose.E To obtain help on the following topics, request help as indicated.C o For help on query language, see the Basic_Query_Concepts help topic.A o For help on libraries, see the Building_An_SCA_Library help topic.3 BLISS_Attributes_Table= The following table lists the SCA symbol classes and their# corresponding meanings in BLISS.? SCA Symbol Classes and Equivalent BLISS Language Terminology, SCA Term BLISS Term Explanation9 Argument Parameter Routine formal parameterB Component, Field Subpart of a BLOCK or BLOCKVECTOR* Field structure* Constant, Literal A literal Literal Exception N/A? File file A file used during compilation* Function, routine A routine Procedure, Program, Routine, Subroutine Generic N/A0 Keyword Keyword PDF keyword tag3 Label Label A label identifier( Macro Macro A macro3 Module, Module A compilation unit Package3 Placeholder Placeholder An LSE placeholder( Psect Psect A psect* Tag Tag A PDF tag Task N/A6 Type Type For example, fieldsetB Unbound Unbound A name the compiler does not knowD the purpose of. This is common when1 macros are used.3 Variable Variable A program variableA The following table lists the SCA occurrence classes and their# corresponding meanings in BLISS.C SCA Occurrence Classes and Equivalent BLISS Language Terminology, SCA Term BLISS Term Explanation? Primary Declaration The declaration containing the6 actual implementationB Associated Declaration A FORWARD or EXTERNAL declaration? Declaration Declaration Either a PRIMARY or ASSOCIATED, declaration Read, Fetch Fetch Write, Store Store Address, Address Pointer Call call@ Command_line Input file A file specified on the commandA specification line; for example, BLISS foo.b32A Include Require A file specified in a REQUIRE or3 %REQUIRE statement> Precompiled Library A file specified in a LIBRARY* statement3 Reference Reference Any nondeclaration@ Explicit Explicit Any symbol declared by the userE Implicit Implicit Any symbol declared by the compiler;= for example, a loop variableB Visible Visible A symbol whose name is visible in+ the sourceC Hidden Hidden A symbol whose name is not visible< in the source; for example,9 contained inside a macro) Compilation_ Module A module unit declaration= The following table lists the SCA domain classes and their# corresponding meanings in BLISS.? SCA Domain Classes and Equivalent BLISS Language Terminology, SCA Term BLISS Term ExplanationE Inheritable Inheritable A symbol declared in a library file,3 and used elsewhere Global GLOBALC Predefined Defined by For example, CH$FILL, BLOCKVECTOR,- the language and so forthC Multi_module GLOBAL, Predefined, or Inheritable Module_ LOCAL or OWN specific 3 Using_CA This section contains some basic examples that illustrate whatD SCA can do to help you with your programs. The examples have veryE little explanation. If you want a more detailed explanation of theD underlying concep ts, see the Basic_Query_Concepts help topic. TheE remainder of this section is written in terms that are specific to C programs.E If you want to follow along and try the examples, you will need toB have an SCA library available. If you do not know how to createC an SCA library, read the Building_An_SCA_Library help topic. TheD examples use generic variable names (such as i). You will have toB substitute variable names that actually exist in your code when trying the examples.C The first example is the easiest query: It lets you find all theB items in your SCA library named i, and shows you all the places, where they appear (all occurrences of i). FIND i> You can search for any name in this manner, including using. wildcard characters (for example, FIND i*).@ Now let's say you are looking for an occurrence, and you knowE that it occurs in a particular file. The following query finds allD occurrences of items that are named i but will then limit them to: those which happen to occur in the file named 'PROG.C'. FIND i AND FILE_SPEC="PROG.C"A Another typical question one might ask is "Find all the placesE where this item is assigned to (or read from, called, declared,andC so forth)." The next example finds all occurrences of items thatD are named i, but then limits them to only those occurrences where i is assigned a value. FIND i AND OCCURRENCE=WRITEE (SCA understands many occurrence cl asses other then WRITE. See theE help subtopics under Getting_Started for tables containing all the9 SCA attributes and their corresponding meanings in C.)@ Often, you only want to know where (in what file or module) a@ particular function is, so that you can go to it and edit it.B You could use the first query (where i would be the name of the? function) and then look through the output. The output wouldA include all occurrences of the function, one of which would beE i ts definition, which you could then select. Or, you could ask SCA= to limit the search for you by typing the following query: FIND i AND OCCURRENCE=PRIMARY> In SCA terms, a primary declaration is the most significantD declaration of an item. For a C function, this means the function> definition. This is in contrast to a C function declarationA (for example, extern i()), which in SCA terms is an associated declaration.B Another problem you might have is that there ar e many differentC items in your system having a given name. Some may be variables;E others may be functions, #define constants, macros, and so forth.B Suppose you want to find only the functions named i. Again, theA query FIND i would give you what you wanted, but it would alsoE give you much more. It is preferable to issue the following query:# FIND i AND SYMBOL_CLASS=FUNCTIOND The last four examples have all selected information based on twoD attributes. The last ex ample selected information based on a nameD attribute (in this case, i) and a symbol class attribute (in thisB case, FUNCTION). Note how the attributes are combined using theE boolean operator AND. In general, you can select items out of yourD library based on any combination of attributes, using AND as well2 as the other logical operators OR, XOR and NOT.> The next example shows another primary feature of SCA - the> ability to display relationships between items. The exampleA given here shows the most common use of this feature. It findsE the complete call tree (that is, all functions called directly and( indirectly), of the function named i. FIND CALLED_BY (i, DEPTH=ALL)C If you want to limit the depth of the call tree, you can replace+ the keyword ALL by any positive integer.E The final part of this section describes how to go directly to theD source code once you have issued a query. After issuing the queryC FIND i, for example, yo u can have an LSE query buffer containing+ something that looks like the following: i variable8 C_MODULE\60 variable definition declaration( C_MODULE\75 write reference' C_MODULE\79 read reference. C_MODULE\95 read, write reference' C_MODULE\122 read reference( C_MODULE\144 write reference' C_MODULE\146 read reference( C_MODULE\149 write reference' C_MODULE\149 read referenc e' C_MODULE\150 read reference' C_MODULE\166 read referenceE The first two lines of this display will be highlighted. The firstC line represents the item you looked for (i), and the rest of theC lines represent the different places in the code where this itemE occurred (that is, the occurrences of i). By using the up and downE arrows on your keyboard, or by clicking on an occurrence with yourA mouse, you can choose the occurrence you want to see. Then allE you have to do is type CTRL/G (the keyboard equivalent of the GOTOD SOURCE command), and LSE will bring the source file into a buffer0 and position you at the occurrence you chose.E To obtain help on the following topics, request help as indicated.C o For help on query language, see the Basic_Query_Concepts help topic.A o For help on libraries, see the Building_An_SCA_Library help topic.3 C_Attributes_Table= The following table lists the SCA symbol classes and their corresponding meanings in C.; SCA Symbol Classes and Equivalent C Language Terminology, SCA Term C Term ExplanationA Argument Formal The variable named in a function+ Parameter definitionA Component, Member A member of a structure or union FieldE Constant, Constant A defined value that does not change Literal Exception N/A? File File A file used during compilation@ Function, Function Any function ( such as 'main' ) Procedure, Program, Routine, Subroutine Generic N/A0 Keyword Keyword PDF keyword tag3 Label Label A label identifier; Macro Macro A Macro created by #defineA Module, Module Each .c source file represents a' Package module3 Placeholder Placeholder An LSE placeholder Psect N/A* Tag Tag A PDF tag Task N/AC Type Type int, float, struct {...}, typedef,- and so forth Unbound N/A1 Variable Variable Program variableA The following table lists the SCA occurrence classes and their corresponding meanings in C.? SCA Occurrence Classes and Equivalent C Language Terminology, SCA Term C Term ExplanationB Primary Declaration Most significant declaration; forD or definition example, a variable declaration, or6 a function definitionA Associated Declaration Other declarations; for example,@ function declarations or EXTERN- declarationsC Declaration Definition or Any declaration, either primary or+ Declaration associated@ Read, Fetch Read The act of retrieving an RvalueC Write, Store Write Changing the contents of an Lvalue: Address, Address The use of the & operator Pointer0 Call Call A function call@ Command_line Command_line A file specified on the command< line, for example, CC foo.c? Include Include A file specified in a #include7 preprocessor directive Precompiled N/A3 Reference Reference Any nondeclaration= Explicit Explicit An entity that is explicitly) declared= Implicit Implicit An entity that is implicitly> declared by the compiler; forA example, a function with no type> is implicitly declared as INT= Visible Visible Occurrence appears in source> Hidden Hidden Occurrence does not appear in@ source; for example, it appearsA only in the expansion of a macro) Compilation_ Module A module unit= The following table lists the SCA domain classes and their corresponding meanings in C.; SCA Domain Classes and Equivalent C Language Terminology, SCA Term C Term Explanation Inheritable N/A@ Global Globally For example, extern, globaldef,7 visible globalref, globalvalue> Predefined Defined by For example, int, float, char the language6 Multi_module Predefined and globalD Module_ Local to one For example, static, auto, register specific module3 Using_COBOLA This section contains some basic examples that illustrate whatD SCA can do to help you with your programs. The examples have veryE little explanation. If you want a more detailed explanation of theD underlying concepts, see the Basic_Query_Concepts help topic. TheE remainder of this section is written in terms that are specific to Cobol programs.E If you want to follow along and try the examples, you will need toB have an SCA library available. If you do not know how to createC an SCA library, rea d the Building_An_SCA_Library help topic. TheD examples use generic variable names (such as i). You will have toB substitute variable names that actually exist in your code when trying the examples.C The first example is the easiest query: It lets you find all theB items in your SCA library named i, and shows you all the places, where they appear (all occurrences of i). FIND i> You can search for any name in this manner, including using. wildcard characters (for example, FIND i*).@ Now let's say you are looking for an occurrence, and you knowE that it occurs in a particular file. The following query finds allD occurrences of items that are named i but will then limit them to< those which happen to occur in the file named 'PROG.COB'." FIND i AND FILE_SPEC="PROG.COB"A Another typical question one might ask is "Find all the placesB where this item is assigned to (or read from, called, declared,B and so forth)." The next example fi nds all occurrences of itemsC that are named i, but then limits them to only those occurrences where i is assigned a value. FIND i AND OCCURRENCE=WRITEE (SCA understands many occurrence classes other then WRITE. See theE help subtopics under Getting_Started for tables containing all the= SCA attributes and their corresponding meanings in COBOL.)B Often, you only want to know where (in what file ) a particularD procedure is, so that you can go to it and edit it. You could useB the first query (where i would be the program-id) and then lookB through the output. The output would include all occurrences ofE the program, one of which would be its definition, which you couldD then select. Or, you could ask SCA to limit the search for you by typing the following query: FIND i AND OCCURRENCE=PRIMARY> In SCA terms, a primary declaration is the most significantD declaration of an item. For a Cobol program, this is the program-B id. This is in contrast to an associated declaration. Actually,B in Cobol, associated declarations do not have much meaning. TheB compiler creates implicit associated declarations for a program the first time it is called.B Another problem you might have is that there are many differentC items in your system having a given name. Some may be variables;@ others may be programs, paragraph names, files, and so forth.A Suppose you want to find only the programs named i. Again, theA que ry FIND i would give you what you wanted, but it would alsoE give you much more. It is preferable to issue the following query:" FIND i AND SYMBOL_CLASS=PROGRAMD The last four examples have all selected information based on twoD attributes. The last example selected information based on a nameD attribute (in this case, i) and a symbol class attribute (in thisA case, PROGRAM). Note how the attributes are combined using theE boolean operator AND. In general, you can select it ems out of yourD library based on any combination of attributes, using AND as well2 as the other logical operators OR, XOR and NOT.> The next example shows another primary feature of SCA - the> ability to display relationships between items. The exampleA given here shows the most common use of this feature. It findsD the complete call tree (that is, all programs called directly and' indirectly), of the program named i. FIND CALLED_BY (I, DEPTH=ALL)C If you want to limit the depth of the call tree, you can replace+ the keyword ALL by any positive integer.E The final part of this section describes how to go directly to theD source code once you have issued a query. After issuing the queryC FIND i, for example, you can have an LSE query buffer containing+ something that looks like the following: I variable- COBOL_MODULE\60 data declaration, COBOL_MODULE\75 write reference+ COBOL_MODULE\79 read reference+ COBOL_MODULE\122 read reference, COBOL_MODULE\144 write reference+ COBOL_MODULE\146 read reference+ COBOL_MODULE\149 read reference+ COBOL_MODULE\166 read referenceE The first two lines of this display will be highlighted. The firstC line represents the item you looked for (I), and the rest of theC lines represent the different places in the code where this itemE occurred (that is, the occurrences of I). By us ing the up and downE arrows on your keyboard, or by clicking on an occurrence with yourA mouse, you can choose the occurrence you want to see. Then allE you have to do is type CTRL/G (the keyboard equivalent of the GOTOD SOURCE command), and LSE will bring the source file into a buffer0 and position you at the occurrence you chose.E To obtain help on the following topics, request help as indicated.C o For help on query language, see the Basic_Query_Concepts help topic.A o For help on libraries, see the Building_An_SCA_Library help topic.3 COBOL_Attributes_Table= The following table lists the SCA symbol classes and their# corresponding meanings in COBOL.? SCA Symbol Classes and Equivalent COBOL Language Terminology, SCA Term COBOL Term Explanation Argument Program argument Component, Group item FieldB Constant, A character string whose value is@ Literal specified by the ordered set ofE characters it contains, or a reserveD word that is a figurative constant;= for example, "1.234E7", ZERO Exception N/AC File File A file used during the compilation* Function, Program A program Procedure, Program, Routine, Subroutine Generic N/A. Keyword Keyword A PDF keyword Label Paragraph- name or section-name Macro N/A Module, N/A Package3 Placeholder Placeholder An LSE placeholder Psect PSECT* Tag Tag A PDF tag Task N/A Type DatatypeC Unbound Symbols in conditional compilation& lines Variable Data itemA The following table lists the SCA occurrence classes and their# corresponding meanings in COBOL.C SCA Occurrence Classes and Equivalent COBOL Language Terminology, SCA Term COBOL Term Explanation? Primary Declaration Data declarations, program ids@ Associated Implicit declarations of calledA programs the first time they are% seen< Declaration Declaration Both primary and associated- declarations Read, Fetch FETCH Write, Store STORE Address, N/A Pointer Call CALL@ Command_line A file specified on the commandA line, for example, COBOL foo.cob Include COPY Precompiled N/A3 Reference Reference Any nondeclaration@ Explicit A variable declared by the userD Implicit A variable automatically defined by- the compiler+ Visible Not hiddenA Hidden Hidden occurrences may be due toA default conditions (for example,D PIC 9(4) is given the DISPLAY TYPE)A or within complex statement (forB  example, COMPUTE and hidden write- references). Compilation_ SCP unit separately compiled unit= The following table lists the SCA domain classes and their# corresponding meanings in COBOL.? SCA Domain Classes and Equivalent COBOL Language Terminology, SCA Term COBOL Term Explanation Inheritable N/A Global EXTERNAL? Predefined PREDEFINED For exa mple, special registers6 Multi_module Global and predefined1 Module_ Not multi-module specific3 Using_FORTRANA This section contains some basic examples that illustrate whatD SCA can do to help you with your programs. The examples have veryE little explanation. If you want a more detailed explanation of theD underlying concepts, see the Basic_Query_Concepts help topic. TheE remainder of this section is written in terms that are specific to FORTRAN programs.E If you want to follow along and try the examples, you will need toB have an SCA library available. If you do not know how to createC an SCA library, read the Building_An_SCA_Library help topic. TheD examples use generic variable names (such as i). You will have toB substitute variable names that actually exist in your code when trying the examples.C The first example is the easiest query: It lets you find all theB items in your SCA library named i, and shows you all the places, where they appear (all occurrences of i). FIND i% characters (for example, FIND i*).@ Now let's say you are looking for an occurrence, and you knowE that it occurs in a particular file. The following query finds allD occurrences of items that are named i but will then limit them to< those which happen to occur in the file named 'PROG.FOR'." FIND i AND FILE_SPEC="PROG.FOR"A Another typical question one might ask is "Find all the placesB where this item is assigned to (or read from, called, declared,B and so forth)." The next example finds all occurrences of itemsC that are named i, but then limits them to only those occurrences where i is assigned a value. FIND i AND OCCURRENCE=WRITEE (SCA understands many occurrence classes other then WRITE. See theE help subtopics under Getting_Started for tables containing all the? SCA attributes and their corresponding meanings in FORTRA N.)@ Often, you only want to know where (in what file or module) aB particular subroutine is, so that you can go to it and edit it.B You could use the first query (where i would be the name of theA subroutine) and then look through the output. The output wouldC include all occurrences of the subroutine, one of which would beE its definition, which you could then select. Or, you could ask SCA= to limit the search for you by typing the following query: FIND i AND OCCURR ENCE=PRIMARY> In SCA terms, a primary declaration is the most significantB declaration of an item. For a FORTRAN subroutine, this is where? the actual SUBROUTINE statement is. This is in contrast to aD FORTRAN EXTERNAL declaration, which in SCA terms is an associatedE declaration. The FORTRAN compiler also creates implicit associated- declarations for any undeclared functions.B Another problem you might have is that there are many differentC items in your system having a given name. Some may be variables;@ others may be subroutines, PARAMETER constants, and so forth.D Suppose you want to find only the subroutines named i. Again, theA query FIND i would give you what you wanted, but it would alsoE give you much more. It is preferable to issue the following query:% FIND i AND SYMBOL_CLASS=SUBROUTINED The last four examples have all selected information based on twoD attributes. The last example selected information based on a nameD attri bute (in this case, i) and a symbol class attribute (in thisD case, SUBROUTINE). Note how the attributes are combined using theE boolean operator AND. In general, you can select items out of yourD library based on any combination of attributes, using AND as well2 as the other logical operators OR, XOR and NOT.> The next example shows another primary feature of SCA - the> ability to display relationships between items. The exampleA given here shows the most common use of this fe ature. It findsC the complete call tree (that is, all subroutines called directly. and indirectly), of the subroutine named i. FIND CALLED_BY (I, DEPTH=ALL)C If you want to limit the depth of the call tree, you can replace+ the keyword ALL by any positive integer.E The final part of this section describes how to go directly to theD source code once you have issued a query. After issuing the queryC FIND i, for example, you can have an LSE query buffer containing+ something that looks like the following: I variable3 FORTRAN_MODULE\60 variable declaration. FORTRAN_MODULE\75 write reference- FORTRAN_MODULE\79 read reference0 FORTRAN_MODULE\95 address reference- FORTRAN_MODULE\122 read reference. FORTRAN_MODULE\144 write reference- FORTRAN_MODULE\146 read reference. FORTRAN_MODULE\149 write reference- FORTRAN_MODULE\149 read reference0  FORTRAN_MODULE\150 address reference- FORTRAN_MODULE\166 read referenceE The first two lines of this display will be highlighted. The firstC line represents the item you looked for (I), and the rest of theC lines represent the different places in the code where this itemE occurred (that is, the occurrences of I). By using the up and downE arrows on your keyboard, or by clicking on an occurrence with yourA mouse, you can choose the occurrence you want to see. Then allE you have to do is type CTRL/G (the keyboard equivalent of the GOTOD SOURCE command), and LSE will bring the source file into a buffer0 and position you at the occurrence you chose.E To obtain help on the following topics, request help as indicated.C o For help on query language, see the Basic_Query_Concepts help topic.A o For help on libraries, see the Building_An_SCA_Library help topic.3 FORTRAN_Attributes_Table= The following table lists the SCA symbol classes and their% corresponding meanings in FORTRAN.A SCA Symbol Classes and Equivalent FORTRAN Language Terminology, SCA Term FORTRAN Term ExplanationA Argument Dummy The variable named in a function, argument declaration Component, record Field component Constant, PARAMETER Literal Exception N/A? File File A file used during compilation@ Function, SUBROUTINE or A SUBROUTINE, FUNCTION, or main( Procedure, FUNCTION program Program, Routine, Subroutine Generic N/A. Keyword Keyword A PDF keyword2 Label Label A statement label Macro N/A Module, BLOCK DATA, Package SUBROUTINE3 Placeholder Placeholder An LSE placeholder Psect COMMON block* Tag tag  A PDF tag Task N/AD Type Type For example, INTEGER, REAL, COMPLEX- and so forth Unbound N/A Variable VariableA The following table lists the SCA occurrence classes and their% corresponding meanings in FORTRAN.E SCA Occurrence Classes and Equivalent FORTRAN Language Terminology, SCA Term FORTRAN Term Explanation? Primary Declaration The declaration containing the6 actual implementation8 Associated Declaration An EXTERNAL declarationC Declaration Declaration Any declaration, either primary or+ associated Read, Fetch Read Write, Store Write7 Address, Address %LOC, actual arguments Pointer> Call Call For example, a CALL statement@ Command_line Command line A file specified on the commandC line; for example, FORTRAN foo.for? Include INCLUDE A file specified in an INCLUDE* statement Precompiled N/A3 Reference Reference Any nondeclaration@ Explicit Explicit Any symbol declared by the userD Implicit Implicit Any symbol declared by the compilerA when it sees the first referenceB Visible Visible A symbol whose name is visible in+ the sourceC Hidden Hidden A symbol whose name is not visible. in the sourceA Compilation_ Program unit A SUBROUTINE, FUNCTION, PROGRAM,9 unit BLOCK DATE, and so forth= The following table lists the SCA domain classes and their% corresponding meanings in FORTRAN.A SCA Domain Classes and Equivalent FORTRAN Language Terminology, SCA Term FORTRAN Term Explanation Inheritable N/AB Global A SUBROUTINE, FUNCTION, or COMMON& blockE Predefined Defined by For example, INTEGER, REAL*4, and so& the language forth Multi_module GLOBAL, predefined, and inheritable@ Module_ Only known within a SUBROUTINE,7  specific FUNCTION, and so forth3 Using_PascalA This section contains some basic examples that illustrate whatD SCA can do to help you with your programs. The examples have veryE little explanation. If you want a more detailed explanation of theD underlying concepts, see the Basic_Query_Concepts help topic. TheE remainder of this section is written in terms that are specific to Pascal programs.E If you want to follow along and try the examples, y ou will need toB have an SCA library available. The SCA$EXAMPLE library provided@ with SCA is based on Pascal, so you could use it. If you want@ to use your own library, but do not know how to create an SCAE library, read the Building_An_SCA_Library help topic. The examplesE in this section use variables from the SCA$EXAMPLE library. If youC use your own library, you will have to substitute variable names= that actually exist in your code when trying the examples.C The f irst example is the easiest query: It lets you find all theB items in your SCA library named i, and shows you all the places, where they appear (all occurrences of i). FIND i> You can search for any name in this manner, including using. wildcard characters (for example, FIND i*).@ Now let's say you are looking for an occurrence, and you knowE that it occurs in a particular file. The following query finds allD occurrences of items that are named i but will then limit t hem toB those which happen to occur in the file named 'BUILDTABLE.PAS'.( FIND i AND FILE_SPEC="BUILDTABLE.PAS"A Another typical question one might ask is "Find all the placesB where this item is assigned to (or read from, called, declared,B and so forth)." The next example finds all occurrences of itemsC that are named c, but then limits them to only those occurrences where c is assigned a value. FIND c AND OCCURRENCE=WRITEE (SCA understands many occurrence clas ses other then WRITE. See theE help subtopics under Getting_Started for tables containing all the> SCA attributes and their corresponding meanings in Pascal.)@ Often, you only want to know where (in what file or module) aE particular procedure is, so that you can go to it and edit it. YouD could use a query similar to the first (where i would be replacedB by the name of the procedure) and then look through the output.A The output would include all occurrences of the procedure, oneB of which would be its declaration, which you could then select.B Or, you could ask SCA to limit the search for you by typing the following query:* FIND build_table AND OCCURRENCE=PRIMARY> In SCA terms, a primary declaration is the most significantA declaration of an item. For a Pascal procedure, this means the@ place where the procedure is actually implemented. This is inE contrast to FORWARD or EXTERNAL declarations, which are associated declarations.B  Another problem you might have is that there are many differentC items in your system having a given name. Some may be variables;D others may be functions, constants, labels, and so forth. SupposeC you want to find only the procedures named 'build_table'. Again,A the query FIND build_table would give you what you wanted, butB it would also give you much more. It is preferable to issue the following query:. FIND build_table AND SYMBOL_CLASS=PROCEDURE@ The last four exa mples have all selected information based onC two attributes. The last example selected information based on aB name attribute (in this case, 'build_table') and a symbol class? attribute (in this case, PROCEDURE). Note how the attributes? are combined using the boolean operator AND. In general, you@ can select items out of your library based on any combinationB of attributes, using AND as well as the other logical operators OR, XOR and NOT.> The next example shows anothe r primary feature of SCA - the> ability to display relationships between items. The exampleA given here shows the most common use of this feature. It findsB the complete call tree (that is, all procedures called directly9 and indirectly), of the procedure named 'build_table'.* FIND CALLED_BY (build_table, DEPTH=ALL)C If you want to limit the depth of the call tree, you can replace+ the keyword ALL by any positive integer.E The final part of this section describes how to go directly to theD source code once you have issued a query. After issuing the queryC FIND c, for example, you can have an LSE query buffer containing+ something that looks like the following: C variable8 EXPAND_STRING\60 VAR (variable) declaration- EXPAND_STRING\75 write reference, EXPAND_STRING\79 read reference, EXPAND_STRING\95 read reference, EXPAND_STRING\122 read reference- EXPAND_STRING\144 wr ite reference, EXPAND_STRING\146 read reference- EXPAND_STRING\149 write reference, EXPAND_STRING\149 read reference, EXPAND_STRING\150 read reference, EXPAND_STRING\166 read referenceE The first two lines of this display will be highlighted. The firstC line represents the item you looked for (c), and the rest of theC lines represent the different places in the code where this itemE occurred (that is, the occurrences of c).  By using the up and downE arrows on your keyboard, or by clicking on an occurrence with yourA mouse, you can choose the occurrence you want to see. Then allE you have to do is type CTRL/G (the keyboard equivalent of the GOTOD SOURCE command), and LSE will bring the source file into a buffer0 and position you at the occurrence you chose.E To obtain help on the following topics, request help as indicated.C o For help on query language, see the Basic_Query_Concepts help  topic.A o For help on libraries, see the Building_An_SCA_Library help topic.3 Pascal_Attributes_Table= The following table lists the SCA symbol classes and their$ corresponding meanings in Pascal.@ SCA Symbol Classes and Equivalent Pascal Language Terminology, SCA Term Pascal Term Explanation Argument Formal parameterD Component, Component, Components of array types, VARYING,: Field String  STRING; fields of recordsA Constant, Constant CONSTants, predefined constants,: Literal enumerated type constants Exception N/A? File File A file used during compilation Function, Function, Procedure, procedure Program, Routine, Subroutine Generic N/A. Keyword Keyword A PDF keyword< Label Label Label declarations and uses Macro N/A Module, Program, Package module3 Placeholder Placeholder An LSE placeholder< Psect Psect PSECT and COMMON attributes* Tag Tag A PDF tag Task N/A= Type Type For example, pointer, array,; enumerated, subrange types Unbound N/A Variable VariableA The following table lists the SCA occurrence classes and their$ corresponding meanings in Pascal.D SCA Occurrence Classes and Equivalent Pascal Language Terminology, SCA Term Pascal Term Explanation< Primary Declaration For example, PROCEDURE XYZ;- Associated FORWARD and For example,9 EXTERNAL PROCEDURE XYZ; EXTERNAL; declarations< Declaration Declaration Both primary and associated- declarations Read, Fetch Read Write, Store Write Address, Address Pointer Call Call@ Command_line Command line A file specified on the commandB line, for example, PASCAL foo.pas? Include Include A file specified in an INCLUDE* statement? Precompiled Environment A file specified in an INHERIT' clause3 Reference Reference  Any nondeclarationD Explicit Pascal has no implicit occurrences.8 Everything is explicit. Implicit N/A6 Visible Appears in the sourceC Hidden Does not appear in the source, for) example,? VAR I : INTEGER VALUE 10 has a8 hidden write reference. Compilation_ Module, unit Program= The following table lists the SCA domain classes and their$ corresponding meanings in Pascal.@ SCA Domain Classes and Equivalent Pascal Language Terminology, SCA Term Pascal Term ExplanationA Inheritable Inherited or Items in an environment file andD inheritable items inherited from an environment% file? Global GLOBAL Items declared with the GLOBAL*  attributeD Predefined Predeclared For example, INTEGER, TRUE, WRITELN@ Multi_module Inheritable, Global, PredefinedC Module_ Items local to a compilation unit,? specific and not in an environment file 3 Using_SCANA This section contains some basic examples that illustrate whatD SCA can do to help you with your programs. The examples have veryE little explanation. If you want  a more detailed explanation of theD underlying concepts, see the Basic_Query_Concepts help topic. TheE remainder of this section is written in terms that are specific to SCAN programs.E If you want to follow along and try the examples, you will need toB have an SCA library available. If you do not know how to createC an SCA library, read the Building_An_SCA_Library help topic. TheD examples use generic variable names (such as i). You will have toB substitute variable names that actually exist in your code when trying the examples.C The first example is the easiest query: It lets you find all theB items in your SCA library named i, and shows you all the places, where they appear (all occurrences of i). FIND i> You can search for any name in this manner, including using. wildcard characters (for example, FIND i*).@ Now let's say you are looking for an occurrence, and you knowE that it occurs in a particular file. The following query finds allD occurrences of items that are named i but will then limit them to< those which happen to occur in the file named 'PROG.SCN'." FIND i AND FILE_SPEC="PROG.SCN"A Another typical question one might ask is "Find all the placesB where this item is assigned to (or read from, called, declared,B and so forth)." The next example finds all occurrences of itemsC that are named i, but then limits them to only those occurrences where i is assigned a value. FIN D i AND OCCURRENCE=WRITEE (SCA understands many occurrence classes other then WRITE. See theE help subtopics under Getting_Started for tables containing all the< SCA attributes and their corresponding meanings in SCAN.)@ Often, you only want to know where (in what file or module) aA particular procedure is, so that you can go to it and edit it.B You could use the first query (where i would be the name of the@ procedure) and then look through the output. The output wouldB ! include all occurrences of the procedure, one of which would beB its declaration, which you could then select. Or, you could askA SCA to limit the search for you by typing the following query: FIND i AND OCCURRENCE=PRIMARY> In SCA terms, a primary declaration is the most significant? declaration of an item. For a SCAN procedure, this means theB place where the procedure is actually implemented, that is, theD PROCEDURE declaration. This is in contrast to FORWARD or EXTERNAL "2 declarations, which are associated declarationsB Another problem you might have is that there are many differentC items in your system having a given name. Some may be variables;E others may be procedures, constants, labels, and so forth. SupposeA you want to find only the procedures named i. Again, the queryD FIND i would give you what you wanted, but it would also give you< much more. It is preferable to issue the following query:$ FIND i AND SYMBOL_CLASS=PROCEDURE #D The last four examples have all selected information based on twoD attributes. The last example selected information based on a nameD attribute (in this case, i) and a symbol class attribute (in thisC case, PROCEDURE). Note how the attributes are combined using theE boolean operator AND. In general, you can select items out of yourD library based on any combination of attributes, using AND as well2 as the other logical operators OR, XOR and NOT.> The next example shows an $other primary feature of SCA - the> ability to display relationships between items. The exampleA given here shows the most common use of this feature. It findsB the complete call tree (that is, all procedures called directly- and indirectly), of the procedure named i. FIND CALLED_BY (i, DEPTH=ALL)C If you want to limit the depth of the call tree, you can replace+ the keyword ALL by any positive integer.E The final part of this section describes how to go directly to %theD source code once you have issued a query. After issuing the queryC FIND i, for example, you can have an LSE query buffer containing+ something that looks like the following: I variable0 SCAN_MODULE\60 variable declaration+ SCAN_MODULE\75 write reference* SCAN_MODULE\79 read reference* SCAN_MODULE\122 read reference+ SCAN_MODULE\144 write reference* SCAN_MODULE\146 read reference+ SCAN_MODULE &\149 write reference* SCAN_MODULE\149 read reference* SCAN_MODULE\150 read reference* SCAN_MODULE\166 read referenceE The first two lines of this display will be highlighted. The firstC line represents the item you looked for (i), and the rest of theC lines represent the different places in the code where this itemE occurred (that is, the occurrences of i). By using the up and downE arrows on your keyboard, or by clicking on an occurrence wi 'th yourA mouse, you can choose the occurrence you want to see. Then allE you have to do is type CTRL/G (the keyboard equivalent of the GOTOD SOURCE command), and LSE will bring the source file into a buffer0 and position you at the occurrence you chose.E To obtain help on the following topics, request help as indicated.C o For help on query language, see the Basic_Query_Concepts help topic.A o For help on libraries, see the Building_An_SCA_Library help (topic.3 SCAN_Attributes_Table= The following table lists the SCA symbol classes and their" corresponding meanings in SCAN.> SCA Symbol Classes and Equivalent SCAN Language Terminology, SCA Term SCAN Term Explanation= Argument Formal A routine or function formal* parameter parameter? Component, Leaf node A leaf node of a TREE variable Field6 Constant, Constant A CONSTANT definition Literal) Exception N/A? File File A file used during compilation, Function, Procedure A Procedure Procedure, Program, Routine, Subroutine Generic N/A Keyword N/A2 Label Label A statement label Macro N/A) Module, Module A module Package Placeholder N/A- Psect Psect A psect name Tag N/A Task * N/A Type Type Unbound N/A Variable VariableA The following table lists the SCA occurrence classes and their" corresponding meanings in SCAN.B SCA Occurrence Classes and Equivalent SCAN Language Terminology, SCA Term SCAN Term Explanation> Primary Declaration Either a DECLARE or PROCEDURE, declaration= Associated Declaration Either a FORWARD or EXTERNAL,+ declaration= Declaration Declaration Either primary or associated; Read, Fetch Reference The value of a variable is+ retrieved.@ Write, Store Assignment A variable is assigned a value. Address, Indirect Pointer reference Call Call@ Command_line Command line A file specified on the commandA line; for example, SCAN foo.s,cn.A Include Include A file included with the INCLUDE* statement Precompiled N/A3 Reference Reference Any nondeclarationC Explicit Explicit A variable or procedure explicitlyC declared with DECLARE or PROCEDURE* statementD Implicit Implicit A variable declared by the compilerC on first refe-rence, for example, a1 picture variable Visible N/A Hidden N/A Compilation_ Module unit= The following table lists the SCA domain classes and their" corresponding meanings in SCAN.> SCA Domain Classes and Equivalent SCAN Language Terminology, SCA Term SCAN Term Explanation Inheritable N/AA Global Global Declaration has GLOBAL attribute Predefined Pred.efined Multi_module Global or predefined4 Module_ Local to one module specific 2 Glossary3 analysis_data_file@ A file produced by a compiler which contains information that? describes the source code to SCA. It may contain one or more analysis data modules.3 analysis_data_module> A module containing all the information used by SCA for one compilation unit. 3 appearanceC One of the attributes of an o /ccurrence. It tells you whether theD name of the occurrence is visible or hidden. You can instruct SCAE to show only occurrences with a particular appearance by using theB "occurrence=" attribute selection. For example, you can ask for8 hidden occurrences by specifying "occurrence=hidden."3 associated_declarationA Any declaration which is not a primary declaration. Typically,E associated declarations provide information needed by the compiler to refer to an object. 03 attribute_selectionC A way of limiting a result of a query to those occurrences which> match certain characteristics. You can select the followingC attributes: NAME, SYMBOL_CLASS, OCCURRENCE, DOMAIN, or FILE_SPECD attributes. In the query language, you use phrases like name=foo,C symbol=argument, occurrence=declaration, domain=module_specific,E and file="foo.c" to specify which attributes you want. You combine0 these phrases with AND, OR and NOT operators.!3 attribute_s1election_expressionC A query question which combines one or more attribute selectionsB (such as name=foo, symbol=routine) using AND, OR, NOT, and XOR. Some examples are:7 name=foo and symbol=routine and occurrence=primary4 name=foo_module and occurrence=compilation_unit 3 call_graphD Shows what procedures and functions are called from a subroutine,. and all subsequent calls in the call graph. 3 CALLED_BY+ See the SCA_Topics CALLED_BY help topic. 3 CALLI 2NG) See the SCA_Topics CALLING help topic.3 compilation_line_number@ A line number generated by the compiler which starts at 1 for@ the first file used during the compile and goes up by one forD each line read. If there is an include file, the compilation lineC number is increased by one for each line in the include file. ByA default, the line numbers in the query display produced by the9 FIND or INSPECT commands are compilation line numbers.3 compilation_unit? A 3 compilation unit is the smallest piece of source code that? can be separately compiled. For example, in FORTRAN, this is> a subroutine or function; in C, this is a single file. Some@ languages allow you to compile more than one compilation unitA at once. Even if you compile more than one unit at a time, SCA& considers the units to be separate.3 consistency_checksB A check that INSPECT makes in which all occurrences of a symbol@ are checked for consistency. For example, y4ou can ensure that= all calls to a routine have the correct number and type of@ arguments. In this type of check, each occurrence is comparedB with a single occurrence selected by INSPECT to be the standardD against which all occurrences are checked. In this type of check,= each particular occurrence is either correct or incorrect.3 CONTAINED_BY. See the SCA_Topics CONTAINED_BY help topic. 3 CONTAINING, See the SCA_Topics CONTAINING help topic.3 declarationB T 5ells the compiler about an object before the compiler uses it.C This can make the compiler create the object, or it can tell theE compiler about an object that was created elsewhere. A declarationB has a position in the source code with both a start and an end,B and can contain other declarations or references. A declarationD can be either a primary declaration or an associated declaration.3 declaration_class< Tells you what symbol class a declaration is (subroutine,B funct 6ion, variable). For example, both procedures and functionsB (in Pascal terms) belong to the routine symbol class, but theirA declaration classes are different. The declaration class tells= the user whether a declaration is a primary declaration or? an associated declaration. SCA uses the declaration class toD decide what to display as the occurrence class in the result of aB FIND command. The user can find the declaration class using the callable interface.3 diagnostic_er7ror_messagesB The error messages that INSPECT produces. The query result fromD an INSPECT command is like that of a FIND command, but with error( messages attached to each occurrence.3 display_lineB A line in the display resulting from a FIND or INSPECT command.C SCA numbers these lines if you use /DISPLAY=NUMBER. This feature; is most useful when you are saving the output in a file. 3 explicit See expression. 3 expressionC One of the attributes of an occurre8nce. The expression attributeC tells you whether the occurrence is one that you the user placed? in the source code, or is one which the compiler created for> the user. An occurrence can be either explicit or implicit.B Explicit occurrences are those placed by the user in the sourceB code; implicit occurrences are those created by the compiler onE behalf of the user. For example, in the following FORTRAN program,C there are three references to i which are explicit. There is on9eE implicit declaration of i which is created by the FORTRAN compiler) when it sees the first reference to i. program test i = 0 i = i + 1 end 3 handleC A data type used by the SCA callable interface. If you are usingC the callable interface, see the VAX LSE/SCA Reference Manual for more information. 3 hidden* See both appearance and hidden modules.3 hidden_modulesE A module in one of the libraries in the current library list which :E is also present in a library which is earlier in the library list.C The module in the earlier library is visible. The same module inD any later library is a hidden module, hidden by the first module. 3 implicit See expression. 3 indicatedA Uses the current cursor position for the query, when used withC a FIND or GOTO DECLARATION. If the cursor is in a query display,A SCA uses whatever occurrence on which it is positioned. If theB cursor is in a buffer, SCA uses; the name on which the cursor isC positioned and the file the cursor is in to guide the query. SCAD relaxes the search criteria, if necessary, (for example, allowing? different versions of the source file) to find the indicated occurrence.3 intersection? The operation performed by the AND operator, which indicates@ that SCA will accept any occurrence that matches both X and Y as follows: FIND X AND Y 3 library8 Generic term usually referring to a physica <l library.3 library_listE A list of one or more physical libraries which compose the virtual? library. The order of the physical libraries is important. AA module found in one physical library in the library list hidesE the same module in other physical libraries that come later in the library list.D For example, suppose you have three libraries. Library 1 contains> module A. Library 2 contains modules A, B, and C. Library 3> contains modules C and D. SCA uses modu =le A from Library 1,? modules B and C from library 2, and module D from library 3.3 library_numberC Refers to the position of a single physical library in a libraryC list. This can be used with any command that refers to a library< already in the library list. For example, the command SETC NOLIBRARY 1 removes the first library from the library list, andE the command LOAD/LIBRARY=2 FOO.ANA loads the file FOO.ANA into the& second library on the library list. 3 module >A Represents a single compilation unit. You can list the modules? with the SHOW MODULE command. Each module shown represents aB single compilation unit - the smallest piece of source that canC be separately compiled. Even if several of these are compiled atA once (which is common in languages such as FORTRAN and BASIC),, each compilation unit appears separately.@ In the query language, SYMBOL=MODULE specifies a certain typeA of symbol. This is not the same as a compilatio ?n unit. You can@ have modules which are not compilation units, and compilationC units which are not modules. How a module is defined varies from language to language.3 nameA A string of characters used to identify symbols in your sourceE code. Legal characters for a name are defined by whatever language@ you use. Each name has zero or more characters. Any characterA may appear in a name. Special characters that appear in a nameC must be quoted using double quotes. Y@ou do not need to quote the8 following: $, _, *, %, &, -, alphanumeric characters.3 name_selection_expressionC Selects occurrences with a particular name. For example, you can specify the following: FIND name=xyz= You can use wildcards in the name expression. Unlike otherA atttributes, you can omit "name=" from the expression and only specify the following: FIND xyz(3 nonstructured_relationship_expressionB A relationship query (such as CONTAINED A_BY, CALLED_BY, CALLING)A which requests that structure information be excluded. You canA specify RESULT=NOSTRUCTURE, RESULT=BEGIN, or RESULT=END as oneA of the parameters to the relationship function. If you specify? RESULT=BEGIN or RESULT=END, this is displayed like any query> which does not have a relationship function. If you specifyB RESULT=NOSTRUCTURE, this is displayed like any query which doesE not have a relationship function, but has all the occurrences that2 wou Bld be present if the structure were present.3 nonstructured_setE A query result that contains occurrences, but does not contain anyC relationships between occurrences. These are produced by queriesA that do not involve relationship functions, or queries that doA involve relationship functions but specify RESULT=NOSTRUCTURE, RESULT=BEGIN, or RESULT=END. 3 occurrenceA An occurrence is any instance of an entity in your program. An> entity can be any language construcCt, such as a variable, a@ routine, or a constant. To further clarify this, consider theB following code fragment (not written in a particular language): 1 MODULE myprog; 2 3 VAR i,j; 4 5 ROUTINE foo() 6 BEGIN 7 i = 5; 8 j = i; 9 END; 10 END;C The code contains four entities: myprog, foo, i, j. There is oneA occurrence each of the module myprog, and the routine foo. TheE variable i, however, ha Ds three occurrences, and the variable j has two.3 occurrence_checksE A check that INSPECT performs on a single occurrence. For example,E INSPECT can check whether an occurrence is an implicit declarationA of a variable without having to look at any other occurrences.3 occurrence_classE One of the attributes of an occurrence that tells you what kind ofD occurrence it is. The occurrence class indicates if an occurrenceE is a declaration, a reference, or another cla Ess. It also indicatesD what kind of declaration or reference it is. You can instruct SCAB to show you only occurrences with a particular occurrence classB using the OCCURRENCE= attribute selection. For example, you can3 ask for write references using OCCURRENCE=WRITE."3 occurrence_selection_expressionE The expression containing the occurrence class for each occurrence you want to find.3 physical_library? A single directory containing an SCA database. The directory? F should not contain anything else. SCA always locks an entire? physical library when it accesses it. When you are reading aC physical library (for example, with a FIND command), other usersD are not allowed to write to the physical library, but other usersA are allowed to read the physical library. When you are writingD to a physical library (for example, using LOAD), no other user is4 allowed to read or write to the physical library.3 primary_declarationC Any declarati Gon which affects how a particular object, such as a) routine or a variable, is implemented.3 primary_libraryC The first library in the library list. Commands which change the? SCA library, such as LOAD and REORGANIZE, apply to the firstA library, unless you use the /LIBRARY qualifier to instruct SCA to use another library.3 queryE The question you ask SCA together with the information you receiveC from SCA. The question uses the SCA query language with the FINDD H or INSPECT commands. The answer is called a query result. You useD the FIND or INSPECT commands to display the query result. You canE also use the query result as part of the question for a subsequent query.3 query_result@ A query result is the information you get when you evaluate aE query, using the FIND or INSPECT commands. It consists of a set of6 occurrences, and relationships between occurrences. 3 referenceD The use of some object in the source code. For ex Iample: X = X + 1C In this example, there are two references to the variable X. OneC (to the left of the =) is a write reference; the other is a readC reference. A reference has a position in the source code, but it1 is a single point and cannot contain anything.3 relationshipE An association between two different occurrences. For example, theD CALLED_BY relationship in SCA associates a primary declaration ofE a procedure with call references to other procedures and func JtionsD in that procedure. A relationship has both a source and a target.C A relationship also has a relationship type. Relationships go inB both directions. For example, the CALLED_BY relationship is the' inverse of the CALLING relationship.3 relationship_typeC The kind of relationship between two occurrences. For example, aD CALLED_BY relationship between a declaration of a routine FOO andD a reference to a routine BAR shows that routine FOO calls routineE BAR. The re Klationship types that are valid for SCA are: CALLED_BY,; CALLING, CONTAINED_BY, CONTAINING, TYPED_BY, and TYPING.3 set/ The occurrences that result from each query.3 static_analysis@ The analysis of a software system performed by looking at theA source code. This is in contrast to dynamic analysis, which is0 analysis of the software while it is running.E SCA has some commands which do static analysis. These commands areC the INSPECT command, which does consistency L checking, the REPORTA command, that can generate reports about modules, imported andE exported objects, and so forth, and some uses of the FIND command,+ to generate call graphs and type graphs.%3 structured_relationship_expression@ A query that uses a relationship function (such as CONTAINED_A BY, CALLED_BY, or TYPED) which asks for structure information.D Structure information shows the relationships between occurrencesC found as well as the occurrences found. StructuMre information is provided by default.3 structured_set> A query result which has both occurrences and relationshipsC between occurrences. These are produced by queries which involve relationship functions. 3 symbolB Any object in a program. For example, a FUNCTION, a VARIABLE, aE CONSTANT, or any of the entities with which a programmer typically deals.< A symbol has occurrences. For example, the declaration of< a variable is an occurrence, and uses of th Ne variable are@ occurrences. SCA determines which occurrences belong to which= symbols using the rules of the language you are using. For? example, you may have two different variables named INDEX inA separate subroutines. According to the rules of your language,? these are usually different variables, so they are different symbols for SCA.@ It does not matter whether all occurrences of a symbol are in@ a single compilation unit, or spread over several compilationB u Onits. All the occurrences still belong to the same symbol. ForC example, you may have a subroutine SUB1 in one module, and callsC to that subroutine in several other modules. These all appear as. occurrences of the same symbol, named SUB1.A The programmer and SCA should have the same definition of whatE constitutes a unique item. SCA's term for a unique item is symbol.3 symbol_checks@ A check that INSPECT performs on all occurrences of a symbol.? For example, INSPECT ca Pn ensure that there are both read andC write references to a variable. In this type of check, no singleD occurrence is either correct or incorrect. If there are problems,/ the problems are with the symbol as a whole.3 SYMBOL_CLASSC An attribute selection that identifies the type of symbol. Tells@ you whether the symbol is a variable, constant, or some other@ class. You can use the FIND command to find only symbols with@ a particular symbol class. For example, you can spe Qcify "FINDE symbol=argument." You can abbreviate both "symbol" and "argument".$3 symbol_class_selection_expressionA The expression containing the symbol class for each symbol you want to find. 3 type_graphB A set of occurrences and relationships that describes a complexB data type. For example, a declaration of a record consists of aA record and some record components. Each record component has aC type, which may be another record, a pointer to the same record,D aR basic data type such as integer, and so forth. In SCA, the typeC graph connects all these together, with relationships connectingB the record to its components and the components to their types. 3 TYPED_BY* See the SCA_Topics TYPED_BY help topic. 3 TYPING( See the SCA_Topics TYPING help topic.3 unionC The operation performed by the OR operator, which indicates that? SCA will accept any occurrence that matches either X or Y as follows: FIND X OR Y3 S virtual_libraryC A library that allows you to split your SCA library into pieces.B Each piece is called a physical library. SCA works the same way@ whether your virtual library has only one physical library or several physical libraries.C Some of the reasons for using more than one physical library are as follows:@ o Physical libraries can be placed on more than one disk, if0 there is not enough room on a single disk.C o Analysis date files can be loaded into T more than one physical8 library at the same time, to make LOAD run faster.D o A small personal physical library can be used to keep track of: your personal changes without affecting other users.< o A separate physical library can be used for each major component in your system.= A single virtual library is a list of one or more physical> libraries. The order is important. A module in one physicalB library hides the same module in physical libraries later oUn in@ the list. This list of physical libraries is called a library list. 3 visible+ See both appearance and visible modules.3 visible_modulesA Modules that SCA can examine when performing a FIND or INSPECT? command. The current library list tells you what modules are@ visible. All modules in the first library in the library listB are visible. Modules in the second library which are not in theD first library are visible. Modules in the third library which areE n Vot in the first or second libraries are visible. Any module which is not visible is hidden. 3 wildcards@ Wildcards are used to match more than one name at once. ThereB are two wildcards in SCA: the asterisk (*) and percent (%). ForD example, in the name expression A*, the wildcard * will match anyB number of characters, so this would match A, AB, ABC, AXYZ, andC so forth. The * wildcard matches any number of characters, and %E wildcard matches just one character. If you do Wnot want SCA to useB * or % as a wildcard, you use an ampersand (&) to quote it. For8 example, to find the single name *, you would use &*.2 INC The IN function searches for occurrences inside a container. TheE IN function is a special case of the CONTAINED_BY function. In its7 most common form, the function format is as follows:! IN( , )E In this format, and can be any legal queryE expression. The IN function returXns all occurrences that match theD expression as long as those occurrences are somewhere inside the container.> Some examples will help you understand the IN function. The9 following picture applies to the examples that follow. A (module)( +-------------------------+( | |( | B (routine) |( | +-------------------+ |( | | | |( Y | | C (routine) | |( | | +-------------+ | |( | | | | | |( | | | D (variable)| | |( | | | | | |( | | | | | |( | | +-------------+ | |( | | | |( | +-------------------+ |( | |( | E (variable) |( | |( Z +-------------------------+" Consider the following queries: 1. FIND IN( A, *) 2. FIND IN( B, D)D 3. FIND IN( A, SYMBOL_CLASS=ROUTINE and OCCURRENCE=DECLARATION)A The first query returns B (a containee), C (a containee), D (aB containee) and E (a containee). A is not returned because it is the container.E The second query returns only D (the containee). C is not returnedA because it does not match the expression. B is not( returned be[cause it is the container.E The third query returns all routine declarations inside A. In this case, B and C are returned.< The IN function is a convenient way to limit a query to a particular container.4 The full format of the In function is as follows: IN( [END=], [BEGIN=] )E In this format, and can be any legal query expression. 2 INDICATED@ The INDICATED function is available only from within LSE.\ TheC INDICATED function matches the occurrence on which the cursor isC positioned. The INDICATED function has no parameters. The format is as follows: INDICATED()< An example of using the INDICATED function is as follows: FIND EXPAND( INDICATED() )C This query finds all occurrences of the item on which the cursor is positioned in LSE.2 Language_Specific_Tables> For information about SCA terms and corresponding language-A specific terminology, see ] the tables under the Getting_Started help topic. 2 Libraries3 Project_LibrariesB There are many ways you can organize the SCA libraries for your? project. Usually, there is one library (or set of libraries)? for the whole project. Each developer has a personal libraryB containing modules that they have changed but have not yet madeA available to the entire project. However, if there is only oneA developer working on the project, it makes more sense to use a sin ^gle SCA library.C There are many ways you can organize your project libraries. YouC can have one project SCA library if it is a reasonable size. YouE can use several libraries, one for each subsystem. You may want toC organize your SCA libraries the way your development environment? is organized. For example, have one SCA library for each CMSA library. If your project is divided into different subsystems,3 you may want one SCA library for each subsystem.A For informa_tion on creating your own SCA library, see the help topic Buildin_An_SCA_Library. Examples of Typical LibrariesD Consider a project with three developers: Paul, Mark, and Joanna.D The project consists of five different subsystems. Each subsystem8 has its own SCA library in the following directories:$ DISK1:[PROJECT.SUBSYSTEM1.SCA]$ DISK1:[PROJECT.SUBSYSTEM2.SCA]$ DISK1:[PROJECT.SUBSYSTEM3.SCA]$ DISK2:[PROJECT.SUBSYSTEM4.SCA]$ DISK2:[PROJECT.SUBSY`STEM5.SCA]E Each of the developers also has a personal SCA library as follows: DISK1:[PAUL.SCA] DISK2:[MARK.SCA] DISK1:[JOANNA.SCA]? Paul uses the following command to set up his SCA libraries:1 LSE Command> SET LIBRARY disk1:[paul.sca], -4 _LSE Command> disk1:[project.subsystem1.sca], -4 _LSE Command> disk1:[project.subsystem2.sca], -4 _LSE Command> disk1:[project.subsystem3.sca], -4 _LSE Command> disk2:[project.subsystem4.sca], -1 _ aLSE Command> disk2:[project.subsystem5.sca]E Mark and Joanna use the same command, but the first library in the! list is their own SCA library.< When Paul changes a module in Subsystem 1, he compiles it> and loads it into his personal library in DISK1:[PAUL.SCA].8 For Paul, this hides the old version of the module inC DISK1:[PROJECT.SUBSYSTEM1.SCA], so his SCA library is up to date# and consistent with his changes.C Mark and Joanna do not see Paul's changes in their bSCA libraries@ because they are not using the SCA library (DISK1:[PAUL.SCA])E that Paul updated. They still see the old version of the module in" DISK1:[PROJECT.SUBSYSTEM1.SCA].8 Once Paul has completed his change, the nightly build> updates everything for Subsystem 1, replacing the module inC DISK1:[PROJECT.SUBSYSTEM1.SCA]. Now Mark and Joanna can both see the change.3 Virtual_LibrariesD SCA can use more than one SCA library at the same time when doing? queries u csing the FIND and INSPECT commands. The list of SCAA libraries used for this is called a virtual library. The orderA of SCA libraries in the library list is important. A module inB the first library in the library list will hide the same moduleC in other libraries, further on in the library list. For example,@ suppose PROJECT_LIB has modules A, B, C and library MYLIB has8 modules A, and D. You can set the library as follows:/ LSE Command> SET LIBRARY mylib,project_lib> d The modules visible in the virtual library would be A (from? MYLIB), B, and C (both from PROJECT_LIB) and D (from MYLIB).E There are many reasons for using more than one physical library as your virtual library:C o Using more than one library, you can improve LOAD performance@ by loading multiple libraries simultaneously. See the help topic Reducing_LOAD_Time.B o You can use virtual libraries to allow several developers to? maintain a consistent view o ef their changes to a project,@ without affecting the other developers, and without having8 to copy the entire SCA library for each developer.= o You can put your SCA libraries on different disks or on; different nodes (using the SCA server). This improvesA performance or takes advantage of the available disk space.D o You use the SET LIBRARY and SET NOLIBRARY commands to maintainC your virtual library list. You can use the /BEFORE and /AFTERA qualif fiers to insert and remove libraries without having to? reenter a library list. You can specify libraries in yourB library list using library numbers. For example, the commandE SET NOLIBRARY 2 removes the second SCA library from the library list.2 NAMEB NAME is an attribute of an occurrence that is a string of ASCII= characters which identifies symbols in your source code. A= specific name can be associated with more than one symbol.> The language you gare using defines the legal characters for? a name. Each name has zero or more characters. Any characterA may appear in a name. Special characters that appear in a nameC must be quoted using double quotes. You do not need to quote the8 following: $, _, *, %, &, -, alphanumeric characters.B You can use wildcards (* and %) in the name expression. You canA override the wildcard characters by using the escape characterA (&). For example, you can find the name consisting of a sinhgleE asterisk using the name expression &*. If you want an ampersand in4 a string, you must use two successive ampersands.3 The format for NAME can be one of the following: name NAME=(name[,name...]) 2 New_Users> The VAX Source Code Analyzer (SCA) is an interactive cross-E reference and static analysis tool that works with many languages.B It can help you understand the complexities of a large softwareE project. Because it allows you to analyze and understand ian entire@ system, SCA is extremely useful during the implementation and# maintenance phases of a project.D SCA is included in the VAXset Software Engineering Tools Package.C SCA is tightly integrated with the VAX Language-Sensitive Editor@ (LSE). When SCA is used with LSE, you can interactively edit,D compile, debug, navigate, and analyze source code during a single development session.2 For more information, see the following topics:A o Basic_Query_Concepts - Djescribes some of the basic concepts underlying SCA queries.A o Getting_Started - Provides subtopics with information about. getting started with specific languages.E o SCA_Tutorial - Provides a sample session that allows you to get+ started after completing the session.B o Building_An_SCA_Library - Describes how to quickly create an SCA library.D o Advanced_Query_Examples - Provides advanced examples using the SCA$EXAMPLE library.3 o kGlossary - Provides definitions of SCA terms.E o Command_Categories - Lists the different types of SCA commands.E o Callable_Routines - Provides a complete description of each SCA callable routine.C o Callable_SCA - Provides guidelines for using the SCA callable interface.C o Libraries - Provides subtopics with information about project& libraries and virtual libraries.E o Reducing_LOAD_Time - Provides guidelines for reducing your LOAD ti lme.> o Quick_Reference_Card - Provides a pointer to the releaseC notes, which contain a quick reference card for the SCA query language.E Under SCA_Topics, there is help information for specific keywords.C These keywords include attributes, relationships, and functions.B For example, you can request help on SCA_Topics SYMBOL_CLASS to4 get information about the SYMBOL_CLASS attribute. 2 OCCURRENCE= The occurrence class is an attribute of an occurrence that mD identifies the type of occurrence. The occurrence class indicatesA if the occurrence is a declaration, a reference, or one of theE other classes in the list that follows. If the occurrence class isB a declaration or reference, the occurrence class indicates what* type of declaration or reference it is.? The format for the occurrence class attribute is as follows:$ OCCURRENCE=(keyword[,keyword...])= The occurrence class can be one of the following keywords: Decnlarations, o PRIMARY - most significant declaration) o ASSOCIATED - associated declaration) o DECLARATION - primary or associated References+ o READ, FETCH - fetch of a symbol value1 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 macro0 o COMMAND_LINE - command line file reference. o INCLUDE - source file include referenece7 o PRECOMPILED - oprecompiled file include refereneceD o OTHER - any other kind of reference (such as a macro expansion or use of a constant)- o REFERENCE - any of the preceding values Other Occurrence Classes$ o EXPLICIT - explicitly declared$ o IMPLICIT - implicitly declared0 o VISIBLE - occurrence appears in the source7 o HIDDEN - occurrence does not appear in the source: o COMPILATION_UNIT - the declaration that contains all2 occurrences in a particuplar compilation unit: The previous keywords are SCA terms. For information on> corresponding language-specific terms, request help for theE appropriate language table (for example, FORTRAN_ATTRIBUTES_TABLE)( under the Getting_Started help topic.; An example using the occurrence class attribute follows: FIND OCCURRENCE=PRIMARY< This query finds all PRIMARY occurrences of declarations.2 Reducing_LOAD_Time@ There are different means you can use to try to decreas qe LOADC time. Listed below are a few guidelines that may help you reduce LOAD time:< o Loading an SCA library for a software system is a time> consuming operation and should be done in batch. LoadingC more than one module at a time is more efficient than loadingA modules separately. Using LOAD *.ANA is a common method forD loading multiple modules. You use LOAD/DELETE to clean up .ANAB files after they are loaded successfully and to use a little& le rss disk space during the load.@ o With large software systems, it is a good idea to use moreA than one SCA library and load them all simultaneously. ThisA can lessen the elapsed LOAD time considerbly. You should be? able to load several libraries simultaneously on a singleB disk. Additionally, using more than one CPU to do your loadsC also helps, but SCA loading is mainly I/O intensive. For moreC information about how to use multiple libraries, see the hel sp subtopics under Libraries.@ o Once your SCA library starts getting above 20K blocks, youC should consider preallocating the library when you create it.@ SCA currently extends the library file by 1000 blocks at aE time, so for large libraries it frequently extends the library.E You can preallocate an SCA library by specifying CREATE LIBRARYE /SIZE=xxx, where xxx is the size of the library in disk blocks.@ Use the size of the SCA$EVENT.DAT filet in your current SCA< library directory as the value to the /SIZE qualifier.A o SCA uses a large number of I/Os during LOAD. Loading an SCAC library on a heavily used or badly fragmented disk causes the load to be less efficient.A You can tell how badly your SCA libraries are fragmented by" using the following command:% $ DUMP/HEADER/BLOCK=COUNT=0 -4 _$ DISK:[sca_library_directory]SCA$EVENT.DATA The interesting portion of the output uis the Map area. EachD retrieval pointer represents a contiguous section on the disk.E Because SCA extends SCA libraries 1000 blocks at a time, having? a lot of retrieval pointers smaller than this is a strong5 indication that some defragmentation is needed.2 Quick_Reference_Card; The release notes contain a quick reference card for the8 SCA query language. You can find the release notes in! SYS$HELP:SCA031.RELEASE_NOTES.2 SCA_TutorialA If you do nvot have DECwindows, you may want to have a hardcopyE of this tutorial to follow it along interactively. The directions+ for producing a hardcopy are as follows: < 1. Place the contents of SCA_Tutorial in a printable file> by typing the following command on the DCL command line:B $ HELP/OUTPUT=SCA_TUTORIAL.TXT SCA SCA_Topics SCA_TutorialB 2. Print SCA_TUTORIAL.TXT from the DCL command line as follows: $ PRINT SCA_TUTORIAL.TXTC SCA allows you to browwse through a complex software system. In aB large multimodule software system, you may not be familiar with@ all of the source code. It may have been written by differentB authors in a number of different programming languages. SCA canA help you browse through the source code and give you importantD information about the program structure. If you are familiar withE the source code, SCA will help you navigate directly to the sourceD code you want, and give you valuable cross-re xference information.D This tutorial guides you through a sample SCA session to show howE SCA can improve your software development productivity as you work$ on an unfamiliar software system.A If you encounter terms that are unfamiliar, see the SCA onlineE glossary for definitions. SCA's terminology for program structuresC is language independent. If you want to see how this terminologyC maps onto the programming language that you use most frequently,@ see the language ytables under the Getting_Started help topic.? This tutorial assumes that you use SCA while in LSE. You canB still follow the tutorial if you are using SCA from the commandC line, but you will not be able to use the GOTO DECLARATION, GOTOB SOURCE, EXPAND, or NEXT STEP commands. The way in which resultsD are displayed also differ slightly between standalone SCA and SCA used from within LSE. Invoking SCAE To invoke SCA through LSE, type the following from the DCL commzand line: $ LSEDIT Typing Commands' Your cursor is now in an LSE buffer.D Press the DO key or COMMAND key (PF1-KP7). This places you in LSE command mode.C You will see the "LSE command>" prompt at the bottom of your LSEC window. This means that you can now enter an SCA command. DuringE this tutorial, when you see SCA commands following an LSE command>? prompt, press the DO key before you try to type the command.  Selecting a Library> { SCA gets its information from an SCA library, a database ofC information about your source code. You will be using the sample) SCA library provided in this tutorial.C To use the sample SCA library, type the following in LSE command mode:* LSE command> SET LIBRARY SCA$EXAMPLE:D Later in this tutorial, you will learn how to create your own SCA& library using your own source code.  Looking at ModulesB Because the components of the system are unfamiliar to |you, theE first thing you may want to do is determine which modules compriseB the system loaded into the SCA library. The SHOW MODULE command7 gives you a synopsis of the contents of the library.D To get information about the contents of an SCA library, type the0 following command at the LSE Command> prompt: LSE command> SHOW MODULEA For each module, you will see the module name, the language inB which the source code is written, and some other information. AA m}odule is a logical unit of source code, as determined by yourD compiler. In FORTRAN, a module may be a PROGRAM or SUBROUTINE. InC C, it may consist of the source code within one file. If you areE interested in how "module" and other SCA concepts map to differentB language specific constructs, see the language tables under the Getting_Started help topic.D Press the Return key when you are finished looking at the list of modules. Creating a QueryB Suppose you a ~re assigned the task of changing the output format@ for this software system. Because you are unfamiliar with theA source code, you do not know where the system produces output.> Using SCA, you can find out by looking for places where the< program uses WRITELN. WRITELN is a built-in Pascal output8 function, similar to PUT_LINE in Ada, or PRINTF in C.E To ask SCA to find all the occurrences of the symbol in the system5 with the name WRITELN, type the following command:  LSE command> FIND WRITELN8 LSE/SCA creates the following display in your buffer: WRITELN procedure, COPY_FILE\75 call reference, COPY_FILE\84 call referenceA The first line tells you about the existence of a symbol whoseD name is WRITELN and whose symbol class is procedure. (A procedureE in Pascal is like a subroutine in FORTRAN, or a function in C. See< the language tables under the Getting_Started help topic.A The subsequent indent ed lines give you information about whereA occurrences of the WRITELN symbol were found. For example, theA first occurrence or use of the WRITELN symbol is in the moduleE COPY_FILE on line 75, and the occurrence class (the way the symbol! was used) is a call reference.  Navigating the Query DisplayC Once you have a list of occurrences of the symbol, you will wantA to look at the source code corresponding to those occurrences.; You will see that the first two l ines of the display are< highlighted. This highlighting tells you which symbol andC occurrence are selected. When an occurrence is selected, you canD use the GOTO SOURCE command to see the corresponding source code.C Press CTRL/G or type the GOTO SOURCE command at the LSE command>B prompt. The file COPYFILE.PAS is read into a buffer by LSE, andE your cursor will be positioned on the first occurrence of WRITELN.B You may now be interested in looking at the source code for the next occurrence.A Press CTRL/F or type the NEXT STEP command at the LSE command>A prompt. (Note that there is a corresponding CTRL/B command for PREVIOUS STEP.)E You will see that the second occurrence of WRITELN, on line 84, is highlighted.8 Press CTRL/G again to invoke the GOTO SOURCE command.  Going to a Declaration? Your cursor is again positioned on an occurrence of WRITELN.: Looking at the source code, you see the following line:9 WRITELN (out_file, SUBSTR (out_line, 1, out_index));C You might be interested in finding out where the first argument,& the variable OUT_FILE, is declared.D Press the arrow keys to position your cursor on the word OUT_FILED in the source code. If you are using LSE with DECwindows, you canD also point to the word OUT_FILE by pointing and clicking with the mouse.> Press CTRL/D or type the GOTO DECLARATION/PRIMARY/INDICATED& command at the LSE Command> prompt.A Your cursor will now be placed on the declaration of OUT_FILE.A Using SCA, you can navigate directly to the declaration of any? symbol declared in your system by placing your cursor on the> symbol, and pressing CTRL/D. If you are not positioned on aC symbol, you can also go to the declaration of a symbol by typing the following command:. LSE COMMAND> GOTO DECLARATION symbol-name& Using Wildcards to Find Occurrences D Because SCA allows wildcard expressions, it can h elp you navigateA through the source code, even if you are not quite sure of the# name of the symbols of interest.C Suppose you know of a procedure in the system that you might useB in some new code that you are writing. In order to see how thisD procedure has been used elsewhere, you want to look at the sourceE code for calls to the procedure, but you do not remember its name.D You may only remember that it begins with the letters BUILD. Type the following command: LSE command> FIND build** You will now see the following display: BUILDTABLE.PAS file6 BUILD_TABLE\1 PASCAL command reference BUILD_TABLE procedure BUILD_TABLE moduleA SCA also gives you a message in the message buffer as follows:+ 5 occurrences found (3 symbols, 2 names)C You can see that two names were found: BUILDTABLE.PAS and BUILD_@ TABLE. The BUILDTABLE.PAS symbol has the symbol class "file."B Two different BUILD_TABLE symbo ls were found. One of these is a$ procedure; the other is a module.D You may notice that there are no occurrences displayed for eitherB the BUILD_TABLE procedure or the BUILD_TABLE module. To preventB the display from being too cluttered, SCA/LSE displays only the# occurrences of the first symbol.E Because you are interested in seeing the occurrences of the BUILD_; TABLE procedure, you must expand the display as follows;E 1. Press CTRL/F, or type the NEXT STEP command at the LSE Command>9 prompt, to select the BUILD_TABLE procedure symbol.B 2. Press CTRL/E, or type the EXPAND command at the LSE command>$ prompt, to expand the display.C In the following display, you will see that three occurrences of- the BUILD_TABLE procedure are now visible: BUILDTABLE.PAS file6 BUILD_TABLE\1 PASCAL command reference BUILD_TABLE procedure3 BUILD_TABLE\41 PROCEDURE declarationG TRANSLIT\61 FORWARD or EXTERNAL PROCEDURE declaration, TRANSLIT\171 call reference BUILD_TABLE module= You could now look at the corresponding source code if you= desired. Note that there is a corresponding CTRL/\ key, orC COLLAPSE command, that you can use to hide expanded occurrences.  Attribute Selection@ To avoid finding more occurrences than you want, SCA lets youB select occurrences based on attributes other than just the name? of a symbol. In the p revious example, you were looking for aD procedure named BUILD_TABLE. However, the results included a file5 and a module, as well as the procedure you wanted.B To get results that include only the BUILD_TABLE procedure with; its corresponding occurrences, type the following query:= LSE command> FIND NAME=BUILD* AND SYMBOL_CLASS=PROCEDURE@ Up to this point, you have selected only occurrences based onB the name of the symbol. The name of a symbol is only one of its? a ttributes. In fact, FIND BUILD_TABLE is an abbreviation forB FIND NAME=BUILD_TABLE, where "NAME=" specifies which particular? attribute we are using to select the occurrences found. FINDA BUILD_TABLE without "NAME=" works for the following reason. IfA you don't specify the attribute, SCA assumes you are selectingE occurrences based on a name because this is the most commonly used attribute.B In this new query, you have specified that you want to see only? symbols whose  name is BUILD_TABLE, and whose symbol class isA PROCEDURE. (Note that the symbol class PROCEDURE is synonymous@ with the classes FUNCTION, SUBROUTINE, ROUTINE, and PROGRAM.)A Symbol classes indicate the type of symbols. Examples of otherB symbol classes that SCA understands are FIELD, CONSTANT, MACRO,E TASK, TYPE, and VARIABLE. For more information and a complete listA of these symbol classes, see the information under the SYMBOL_ CLASS help topic.= In the previous e xample, you used two selection clauses toD restrict the items found, NAME=BUILD* and SYMBOL_CLASS=PROCEDURE.> Each of these clauses resulted in a set of occurrences. YouE combined the results of the two clauses by using the AND operator,C which resulted in only those occurrences that were found in both sets of results.D The set operators available in SCA are AND, OR, NOT, and XOR. YouE can use any number of set operators to combine attribute selectionB clauses (such as SYMBOL_CLASS=PROCEDURE) to specify your query.D In the following display, which resulted from the previous query,B there are two declarations of the BUILD_TABLE procedure and one call reference: BUILD_TABLE procedure3 BUILD_TABLE\41 PROCEDURE declarationG TRANSLIT\61 FORWARD or EXTERNAL PROCEDURE declaration, TRANSLIT\171 call reference? In the previous example, remember that you are interested inA seeing only call refere nces to this procedure. You can further@ restrict your query by using the OCCURRENCE= attribute, whichC describes how a particular occurrence of a symbol is used. To do# this, type the query as follows:? LSE Command> FIND BUILD_TABLE AND SYMBOL_CLASS=PROCEDURE -& _LSE Command> AND OCCURRENCE=CALLA This command asks SCA to find the same results as the previous@ query, but to limit the results to those occurrences that areD call references. In the resulting occurrenc e set, the declaration occurrences no longer appear.@ Because this is a very small example, it seems unnecessary to@ continue refining these queries because you could look at theA source code for only the occurrences you want. However, if theB system were larger, and thousands of occurrences were found forE each query, it would be more important to give as detailed a query/ as possible to avoid extraneous information.@ The occurrence class attribute describes how an occ urrence isA used. Examples of other occurrence classes that are understoodA by SCA are READ, WRITE, POINTER, CALL, DECLARATION , EXPLICIT,@ HIDDEN, and REFERENCE. For a complete list and description ofA these occurrence classes, see the OCCURRENCE_CLASS help topic.B There are two more attributes that you can use to restrict yourD queries. The first attribute, DOMAIN=, allows you to restrict theE occurrences based on the range of source code in which the symbols> might be used. Possible values for DOMAIN= are INHERITABLE,9 GLOBAL, PREDEFINED, MULTI-MODULE, and MODULE_SPECIFIC.B The second attribute, FILE=, allows you to limit occurrences to> those found within a particular file, such as COPYFILE.PAS.? You could find all the global symbols (those symbols visible@ throughout the program) occurring in the file COPYFILE.PAS by entering the following query:< LSE Command> FIND DOMAIN=GLOBAL AND FILE="COPYFILE.PAS"@ If you do not specify a name, as in the previous example, the default is NAME=*.C In summary, there are five attributes that you can use to select= occurrences: NAME=, SYMBOL_CLASS=, OCCURRENCE=, FILE=, andB DOMAIN=. You can combine these selection clauses using the AND,E OR, XOR, and NOT operators. For more information, request help for each attribute. Relationship FunctionsA Up to this point, you have been navigating through source code@ by asking SCA to find occurrences of inte resting symbols. SCA? can also help you see the structure of your code. If you areB debugging a routine, such as READ_COMMAND_LINE, you may want toD know which system library routines might be invoked if you calledB READ_COMMAND_LINE. To get this information, type the following:4 LSE command> FIND CALLED_BY (READ_COMMAND_LINE)? In this example, you are invoking the CALLED_BY function andE sending it one argument, the name READ_COMMAND_LINE. The resulting display is as follows:& READ_COMMAND_LINE procedure calls BUILD_TABLE procedure CLI$DCL_PARSE function CLI$GET_VALUE function CLI$PRESENT function EXPAND_STRING function IADDRESS function LENGTH function LIB$GET_FOREIGN function LIB$SIGNAL procedure ODD function OPEN_IN procedure OPEN_OUT procedure SUBSTR function? The query that you just entered resulted in all the routines c alled by READ_COMMAND_LINE.? However, assume you are interested in finding out only which? system library routines are called by READ_COMMAND_LINE. YouB can also specify that only some of the routines called by READ_A COMMAND_LINE should be a part of the result. That is, SCA lets@ you specify both the caller and the callee in the "called_by"- relationship, as in the following example:; LSE command> FIND CALLED_BY (READ_COMMAND_LINE, LIB$*)+ You will then see the following results:& READ_COMMAND_LINE procedure calls LIB$GET_FOREIGN function LIB$SIGNAL procedure= The first argument to the CALLED_BY function specified the= caller, and the second argument specified the callee. Both? of these arguments can be general query expressions, such as SYMBOL=ROUTINE.C You may notice that there is only one level of depth to the callB trees we have seen. That is, LIB$SIGNAL and LIB$GET_FOREIGN areA called directly by READ_COMMAND_LINE. You may be interested inA looking at a complete call tree from READ_COMMAND_LINE to LIB$: routines, including calls through intervening routines.D To specify the number of levels of the call tree you want to see, type the following command:F LSE command> FIND CALLED_BY (READ_COMMAND_LINE, LIB$*, DEPTH=ALL) The result is as follows:& READ_COMMAND_LINE procedure calls# BUILD_TABLE procedure calls . LIB$SIGNAL procedure+ .  SIGNAL_DUPLICATE procedure calls/ . LIB$SIGNAL procedure (See above) LIB$GET_FOREIGN function) LIB$SIGNAL procedure (See above)@ In the previous example, the DEPTH= argument of the CALLED_BYB relationship allowed you to specify the number of levels of the@ call tree. For the DEPTH= argument, you can either specify anC integer value (the default is 1), or you can specify the keyword ALL.C The CALLED_BY relationship is not the only function available inD SCA. As with other relationship functions, the CALLED_BY functionD has an inverse, the CALLING function. To find those routines that4 call READ_COMMAND_LINE, type the following query:= LSE command> FIND CALLING (READ_COMMAND_LINE, DEPTH=ALL) The result is as follows: TRANSLIT procedure calls) READ_COMMAND_LINE procedure calls> If you do not specify the second argument to a relationship@ function, it defaults to * (which means anything). This  queryA translates to "find anything calling READ_COMMAND_LINE, at anyD depth." You will see that there is only one call to READ_COMMAND_$ LINE from the TRANSLIT procedure.B These relationship displays are like previous query displays in< that you can expand, collapse, and navigate through them.C SCA also has information about two other types of relationships.@ The TYPED_BY and TYPING relationship functions are useful forC finding information about how things are typed. F or example, you can learn the following:F o FIND TYPING in_file - tells you the type of the variable in_fileG o FIND TYPED_BY integer - tells you what things are of type integerE o FIND TYPING (table, depth=all) - tells you what components make' up the aggregate structure table.7 SCA also understands the CONTAINED_BY and CONTAININGE relationships. These functions tell you what symbols are containedD within something else. For example, the following query t ells youE all the procedures that are within the signal_duplicate procedure:H LSE Command> FIND CONTAINED_BY (SIGNAL_DUPLICATE, SYMBOL=PROCEDURE)A For more information about the relationship functions, see the$ help topic for each relationship.< Because you are debugging READ_COMMAND_LINE, you might beB interested in occurrences of all the symbols contained directlyC or indirectly in READ_COMMAND_LINE. You can get this informationB by using the CONTAINED_BY function.  However, you can use the INA function instead, which is less general but easier to use. The@ IN function lets you specify the container and the containee,C and traces the relationship through all depths (including nested subroutines, for example).A Type the following query to see all the occurrences of symbols/ used within the READ_COMMAND_LINE procedure:- LSE command> FIND IN (READ_COMMAND_LINE)D The results show that 178 occurrences of symbols were used within# the READ_COMMAND_LINE procedure.  Using Previous QueriesB As you continue to use SCA, you may be interested in looking at@ results from previous queries that you have issued. SCA keepsC track of all your queries, and allows you to move back and forthE between them. To see all your queries, type the following command: LSE command> SHOW QUERY# You will see the following list:7 Name Query expression Description 2 1  WRITELN (none)2 2 BUILD* (none)9 3 NAME=BUILD* AND SYMBOL_CLASS=PROCEDURE2 (none)M 4 BUILD_TABLE AND SYMBOL_CLASS=PROCEDURE AND OCCURRENCE=CALL2 (none)0 5 CALLED_BY (READ_COMMAND_LINE)2 (none)7 6 CALLED_BY (READ_COMMAND_LINE, LIB$*)2  (none)A 7 CALLED_BY (READ_COMMAND_LINE, LIB$*,DEPTH=ALL)2 (none)9 8 CALLING (READ_COMMAND_LINE, DEPTH=ALL)2 (none)2 (*) 9 IN (READ_COMMAND_LINE) (none)> You can see that there is an asterisk (*), next to query 9,C which was the last query you entered. This is called the currentD query. Because query 9 is the current query, you can navigate its: display, and enter GOTO SOURCE commands for that query.C SCA also lets you set the current query with the PREVIOUS QUERY,' NEXT QUERY, and GOTO QUERY commands.B Suppose you want to look at the results of the FIND NAME=BUILD*@ AND SYMBOL_CLASS=PROCEDURE query again. The name of the queryB is 3. To see the results of query 3 in a query buffer, type the following: LSE Command> GOTO QUERY 3D It is now the current query, and you will be able to navigate it,B and see the source code corresponding to the found occurrences.< You can navigate previously entered queries and use their@ results in new queries. Remember that after you entered queryB 3, NAME=BUILD* AND SYMBOL_CLASS=PROCEDURE, you wanted to refineB that query to see only call occurrences. You then entered a new query as follows:? LSE Command> FIND BUILD_TABLE AND SYMBOL_CLASS=PROCEDURE -& _LSE Command> AND OCCURRENCE=CALL@ You could have entered the new query by typing the following:- LSE Command> FIND @3 AND OCCURRENCE=CALL; The previous command is the same as the following query:? LSE Command> FIND NAME=BUILD* AND SYMBOL_CLASS=PROCEDURE -& _LSE Command> AND OCCURRENCE=CALL Creating Your Own Library? Now that you have seen how to use SCA, you can create an SCAE library with information about your own source code. The followingB example contains the commands for creating a library at the DCLA  level. Remember that any SCA commands can also be entered from within LSE.A In order to create your own SCA library, you must first createB a library directory for it. Using your personal directory, typeA the following command to create a subdirectory for a local SCA library: $ CREATE/DIRECTORY [.LIB1]D Once you have a directory in which to create a library, enter the0 following command to SCA to create a library:! $ SCA CREATE LIBRARY [.LIB1]@ You  now have an empty SCA library. To add a module to the SCA4 library, you must first compile your source code.D If you have a Pascal compiler available, you can compile and load6 one of the SCA example files into your new library.E First, copy the example file into your working directory by typing the following command:$ $ COPY SCA$EXAMPLE:TYPES.PAS []C Then, compile it with the /ANALYSIS_DATA qualifier. This createsD the file TYPES.ANA, which can be loaded into your SCA library. To0 compile this file, use the following command:% $ PASCAL/ANALYSIS_DATA TYPES.PASB If you do not have a Pascal compiler, try adding the /ANALYSIS_@ DATA qualifier when you use any other supported compiler. For example: $ CC/ANALYSIS_DATA myfile.cC Once you have a .ANA file, you can load it into your SCA libraryD either from LSE or standalone SCA. To load the .ANA file and show/ the new module, type the following commands: SCA> LOAD myfile.ANA SCA> SHOW MODULEE You will see that the new module has been loaded into the library,2 and you will now be able to query that library.2 SYMBOL_CLASSE SYMBOL_CLASS is an attribute selection that identifies the type ofE symbol. A symbol can be a variable, constant, or some other class.- The format for SYMBOL_CLASS is as follows:& SYMBOL_CLASS=(keyword[,keyword...])9 The SYMBOL_CLASS can be one of the following keywords:E 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 elements7 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: The previous keywords are SCA terms. For information on> corresponding language-specific terms, request help for theE appropriate language table (for example, FORTRAN_ATTRIBUTES_TABLE)( under the Getting_Started help topic.7 An example using the SYMBOL_CLASS attribute follows:$ FIND X AND SYMBOL_CLASS=ROUTINE) This query finds all routines named X. 2 TYPINGD The TYPING function is a relationship function. It finds the type@ of some occurrence. Occurrences related in this manner have a? TYPING relationship between them. For example, if INTEGER is@ typing variable X, then these two occurrences are in a TYPINGC relationship. In its most common form, the function format is as follows:4 TYPING( , , DEPTH={ | ALL} )< In this format, and can be any legal query@ expression, and is a positive integer. A typical useB of the function is to find the type of a variable. For example: FIND TYPING( X, *, DEPTH=1)B This query finds the type of X, where X is some variable in the SCA database.D The TYPING function also works on user-defined types. The definedB type can have many levels, in which case the user can specify a depth as follows:2 FIND TYPING( user_defined_type, *, DEPTH=ALL)= This query gives the full type tree for USER_DEFINED_TYPE.B The TYPING function provides the power to return the exact type0 tree you want. The full format is as follows: TYPING( [ END= ], [ BEGIN= ],& [ DEPTH={ | ALL} ],% [ RESULT=RESULT_KEYWORD ],' [ TRACE=query_expression ] ) @ In the previous format, and is any legal queryA expression, is a positive integer, RESULT_KEYWORD canA be STRUCTURE, NOSTRUCTURE, ANY_PATH, BEGIN, or END, and QUERY_, EXPRESSION is any legal query expression.= For a full description of the TYPING relationship, see the LSE/SCA User Manual. 2 TYPED_BY= The TYPED_BY function is a relationship function. It finds> occurrences that have a TYPED_BY relationship between them.A For example, if variable X is typed by INTEGER, then these twoA occurrences are in a TYPED_BY relationship. In its most common+ form, the function format is as follows:6 TYPED_BY( , , DEPTH={ | ALL} )< In this format, and can be any legal query@ expression, and is a positive integer. A typical useA of the function is to find what is being typed by INTEGER. For example:( FIND TYPED_BY( INTEGER, *, DEPTH=1)D This query finds everythi ng that is of type INTEGER. The TYPED_BYE function can also tell you the items that are in some way affectedC by a given type. The type can be predefined by language elements8 such as INTEGER, or can be user defined. For example:4 FIND TYPED_BY( user_defined_type, *, DEPTH=ALL)A This query finds all the items that are directly or indirectly! affected by USER_DEFINED_TYPE.D The TYPED_BY function provides the power to return the exact type0 tree you want. The full format is as follows: TYPED_BY( [ END= ], [ BEGIN= ],( [ DEPTH={ | ALL} ],' [ RESULT=RESULT_KEYWORD ],) [ TRACE=query_expression ] )@ In the previous format, and is any legal queryA expression, is a positive integer, RESULT_KEYWORD canA be STRUCTURE, NOSTRUCTURE, ANY_PATH, BEGIN, or END, and QUERY_, EXPRESSION is any legal query expression.? For a full description of the TYPED_BY relationship, see the LSE/SCA User Manual.2 \_(Pathname)C The path name expression allows you to identify specific symbols> based on the path of the expression. This is similar to theB debugger pathname notation. The format of this expression is as follows:: query_expression\query_expression[\query_expression...]> Typically, you use this expression to identify a particularE variable in a routine when you may have declared a variable of theE same name in mo re than one routine. For example, RETURN_STATUS mayB be a common variable in multiple routines. Some typical queries are as follows:$ 1. FIND MYROUTINE\RETURN_STATUS- 2. FIND MYMODULE\MYROUTINE\RETURN_STATUS* 3. FIND MYMODULE\SYMBOL_CLASS=ROUTINE? The first query returns all occurrences of the RETURN_STATUSB variable that are declared inside MYROUTINE. The second exampleB returns all occurrences of the RETURN_STATUS variable which are@ declared inside MYROUTINE , where MYROUTINE is declared insideB MYMODULE. The third example returns all occurrences of routines& which are declared inside MYMODULE.B You may also use the pathname when the exact path is not known.D For example, assume that you know the module name and that XYZ isB declared somewhere inside the MYMODULE, but you do not know the8 exact pathname. You can then use the following query: FIND MYMODULE\\XYZA This query locates the XYZ variable that is declared somewhere6 inside MYMODULE and returns all occurrences of XYZ.2 @_(Query_Usage)> A query usage function incorporates the results of previousA queries into query expressions. The function has the following form: @( query_name )A The value of this expression is that of the expression that isA specified as query_name. The default query name is the current query, SCA$CURRENT_QUERY.A You can see an example of its use in the following sequence of queries: FIND X2 FIND @(SCA$CURRENT_QUERY) AND SYMBOL=ROUTINEB The advantage of using this notation is that the results of theD previous query are not reevaluated. Thus the second query will be faster than the query: FIND X AND SYMBOL=ROUTINEww@#e  LSE_BUILD SCA_TopicsO^  LSE_BUILD New_UsersCommands New_FeaturesFeatures Release_Notes6ӯ S LSE_BUILD ALIGNANALYZEATTACHBOXCALLCANCEL CAPITALIZECENTERCHANGECHECKCLOSECMSCOLLAPSECOMPILECONTINUECONVERTCREATECUTDCLDEFINEDELETEDOENDENLARGEENTERERASEEXITEXPANDEXTENDEXTRACTFILLFINDFOCUSGOTOHELPINCLUDEINSPECTLINELOAD LOWERCASEMODIFYNEXTONEOTHERPASTEPREVIOUSQUITQUOTEREADRECALLRECOVERREDOREFRESH REORGANIZEREPEATŘ 1 New_UsersF The Language-Sensitive Editor (LSE) is a multilanguage advanced text7 editor designed specifically for software development.8 LSE is invoked with command line of the following form:% LSEDIT [/qualifier] [file-spec] /qualifier5 specifies LSEDIT command line qualifiers file-specA specifies the file to be edited. LSE reads theA file into a buffer. The name of the buffer is take nA from the file name and type specified. The file name= and type must be a valid VMS file specification.F The file type determines the language for the buffer. For example,F .FOR specifies the FORTRAN language and .PAS specifies PASCAL. IfF you omit the file type, or specify a file type unknown to VMS, no language is assumed.F To simplify editing, LSE binds commonly used commands to certainF keys, and provides access to both EDT and EVE keypa ds. By default,F LSE is initiated in EDT-keypad mode. You can get help on keys by+ pressing the HELP key, marked HELP or PF2.F You can enter a single command by typing the GOLD-COMMAND (PF1-KP7)F key sequence or pressing DO to get an "LSE Command>" prompt, enteringF the command, and terminating the command with a carriage return.F Multiple commands may be entered by pressing CTRL/Z to get the "LSE>"F prompt, entering the command, and terminating the command with aF 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.wwŘ 1 Commands The LSE line mode commands are:ALIGNF 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]9 Allows you to attach the terminal to another process.CALL4 Allows you to call a specified VAXTPU procedure. CANCEL MARK Deletes a specified mark.CANCEL SELECT_MARK4 Cancels the effect of a SET SELECT_MARK command.CAPITALIZE WORD5 Capitalizes the first letter of the current word. CENTER LINE@ Centers the current line between the left and right margins. CHANGE CASEF Alters the case (upper/lower) of each letter in the selected range.CHANGE DIRECTIONA Alters the direction (forward/reverse) of the current buffer.CHANGE INDENTATION7 Adds or deletes leading blanks and tabs from lines.CHANGE TEXT_ENTRY_MODEF Alters the text entry mode (insert/overstrike) of the current buffer.CHANGE WINDOW_MODE+ Alters the number of displayed windows.CHECK LANGUAGEF Analyzes the definitions associated with a language and reports errors CLOSE BUFFER Deletes the current bufferCMS6 Enables the execution of a CMS command within LSE.COLLAPSE3 Compresses text at the current cursor position.COMPILE! Writes and compiles a buffer.CONTINUE9 Ends command line prompts and returns to keypad mode.CONVERT LIBRARY [SCA Command]F Converts the specified library from Version 1.n format to Version 2.0 format.CREATE LIBRARY [SCA Command]3 Creates SCA libraries in specified directories.CUT5 Moves the selected range to the indicated buffer.DCL< Executes a DCL command from within your editing session.DEFINE ADJUSTMENTF Defines the behavior of the LSE viewing commands on individual lines of a source file. DEFINE ALIASF For use with the EXPAND command , determines a reference name for text or an identifier.DEFINE COMMAND0 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 PACKAGEF Determines a subroutine package for which call templates are generated.DEFINE PARAMETER+ Determines parameters within a package.DEFINE PLACEHOLDER+ Determines placeholder characteristics.DEFINE ROUTINEC Determines templates for a routine within a subroutine package. DEFINE TAG Defines the specified tag. DEFINE TOKEN% Determines token characteristics.DELETE ADJUSTMENTF Removes a name from the list of adjustments associated with a language. DELETE ALIAS1 Cancels the effect of a DEFINE ALIAS command. DELETE BUFFER$ Eliminates the specified buffer.DELETE COMMAND3 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 LANGUAGE4 Cancels the effect of a DEFINE LANGUAGE command.DELETE LIBRARY [SCA Command]0 Deletes an SCA library from a VMS directory.DELETE MODULE [SCA Command]1 Deletes specified modules from SCA libraries.DELETE PACKAGEF Deletes a package definition without deleting associated routines or parameters.DELETE PARAMETER2 Deletes a parameter definition from a package.DELETE PLACEHOLDER7 Cancels the effect of a DEFINE PLACEHOLDER command.DELETE QUERY [SCA Command]6 Deletes a specified query from an editing session.DELETE ROUTINE0 Deletes a routine definition from a package. DELETE TAGD Removes a name from the list of tags associated with a language. DELETE TOKEN1 Cancels the effect of a DEFINE TOKEN command. DELETE WINDOW Deletes the current window.DO6 Executes LSE commands or TPU program. statements. END DEFINE5 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 LINEF Inserts a line break (carriage return) at the current cursor position.ENTER PSEUDOCODE. Inserts pseudocode placeholder delimiters. ENTER SPACEF Inserts a blank character and performs a fill on the current line. ENTER SPECIALF Inserts a specified ASCII character at the current cursor position. ENTER TABF 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 CHARACTER7 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 WORD2 Deletes a word at the current cursor position.EXIT [SCA Command]F Terminates an editing session and returns to the calling program or DCL.EXPAND< Replaces the placeholder, token, or alias with the body.EXTEND9 Compiles one or more VAXTPU procedures to extend LSE.EXTRACT ADJUSTMENTF Extracts the definition of the named adjustment and formats the definition as a command. EXTRACT ALIASF Selects the definition of the alias name and formats it as a command.EXTRACT KEYWORDSF Extracts the definition of the named keyword list and formats the definition as a command.EXTRACT LANGUAGEF Selects the definition of the named language and formats it as a command.EXTRACT MODULEF Extracts specified modules of source analysis data from an SCA library.EXTRACT PACKAGEF Extracts the definition of the named package and formats the definition as a command.EXTRACT PARAMETERF Extracts the definition of the named parameter and formats the definition as a command.EXTRACT PLACEHOLDERF Extracts the definition of the named placeholder and formats the definition as a command.EXTRACT ROUTINEF Extracts the definition of the named routine and formats the definition as a command. EXTRACT TAGF Extracts the definition of the named tag and formats the definition as a command. EXTRACT TOKENF 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]F Locates occurrences of symbol or file sources described by the SCA libraries.FOCUSF Displays an overview of the buffer and compresses the rest of the buffer as much as possible. GOTO BOTTOM9 Moves the cursor to the bottom of the current buffer. GOTO BUFFERF Moves the cursor to the last position held in the specified buffer.GOTO CHARACTER0 Moves the cursor to the specified character. GOTO COMMANDF 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 MARKF 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 REVIEW1 Moves to the currently active review session. GOTO SCREENF Moves the cursor in the current direction by the number of lines in the current window. GOTO SOURCEF Uses the current cursor position in the review or query buffer toF select an associated diagnostic or item in the related source buffer.GOTO TOP6 Moves the cursor to the top of the current buffer. GOTO WORD< Moves the cursor to the next word in the current buffer.HELP5 Displays information about a specified LSE topic.INCLUDE> Inserts the specified file at the current cursor position.INSPECT [SCA Command]F Inspects the consistency between declarations or references for the same symbol.LINEF Moves the cursor in the current buffer to the start of the source line you specify.LOAD [SCA Command]F Loads one or more modules of source analysis data into an SCA library.LOWERCASE WORD9 Changes the letters in the current word to lowercase.MODIFY LANGUAGE9 Modifies the characteristics of a specified language. NEXT BUFFERF Moves your next buffer into the current window, returning to your! last position in that buffer. NEXT ERRORF Selects the next diagnostic from the current set in buffer $REVIEW.NEXT OCCURRENCE [SCA Required]F  Moves the cursor forward to the next occurrence of the current item in the current query.NEXT QUERY [SCA Command]3 Moves the cursor to the next SCA query session. NEXT STEPF Moves the cursor forward to the next error, item, name, orD occurrence depending on whether you are in REVIEW or QUERY mode.NEXT SYMBOL [SCA Required]C 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 WINDOWF Moves the cursor from the current window to the next window if the* screen is split into multiple windows.PASTEF Copies the contents of a specified buffer into the current buffer.PREVIOUS BUFFERF Moves your previous buffer into the current window, returning to& your last position in that buffer.PREVIOUS ERRORF Selects the previous diagnostic from the current set in buffer $REVIEW."PREVIOUS OCCURRENCE [SCA Required]F Moves the cursor back to the previous occurrence of the current item in the current query.PREVIOUS QUERY [SCA Command]7 Moves the cursor to the previous SCA query session. PREVIOUS STEPF Moves the cursor back to the previous error, item, name, orC occurrence depending on whether LSE is in REVIEW or QUERY mode.PREVIOUS SYMBOL [SCA Required]D Moves the cursor back to the previous item in the current query.PREVIOUS WINDOW! Selects the alternate window.QUITF Terminates an editing session without saving any modified buffers.QUOTEF Enters a control code or other character, either as text in the1 buffer you are editing or as a string commandREADF Opens a specified file for input and places its contents in a specified buffer.RECALLF Recalls a previous LSE command, which you can edit and execute again.RECOVER BUFFERF Reconstructs the contents of a buffer from a buffer change journal file.REDO* Reverses the most recent UNDO command.REFRESH Rewrites the screen display.REORGANIZE [SCA Command]: Optimizes the size and organization of an SCA library.REPEAT3 Executes a command a specified number of times.REPLACEF Creates a new generation of the indicated element in your current CMS library.REPORT" Produces the specified report.RESERVE4 Reserves an element in your current CMS library.REVIEWF Displays a set of diagnostic messages resulting from a compilation.SAVE ENVIRONMENTF Writes all user-defined languages, placeholders, and tokens to a specified file. SAVE SECTIONF Writes the binary form of current key definitions, learnF sequences, user-defined commands, mode settings, and VAXTPU/ procedures and variables to a section file.SEARCHE Positions the cursor at a specified string in the current buffer. SELECT ALL6 Selects the entire contents of the current buffer.SET AUTO_ERASE. Enables automatic erasing of placeholders.SET CMSF Sets the default values for the CMS reservations and fetches thatF LSE performs when you issue the appropriate LSE file manipulation commands. SET CURSOR< Selects either bound cursor motion or free cursor motionSET DEFAULT_DIRECTORY= Changes your default device and directory specifications. SET DIRECTORYF Sets the default read-only/write status of files from a specified directory.SET FONT, Sets the specified fonts for the screen. SET FORWARD5 Sets the current direction of the buffer forward.SET INDENTATION9 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 LANGUAGE4 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 MARKF Specifies a name at the current cursor position for a GOTO MARK command. SET MAX UNDOF Sets the maximum number of commands you can undo for a specific buffer.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 NOJOURNALING9 Disables buffer journaling for the specified buffers.SET NOLANGUAGED Disassociates the language associated with the indicated buffer.SET NOLIBRARY [SCA Command]F Removes the specified SCA libraries from the current list of active libraries. SET NOMODIFY- Sets a buffer to nomodify (unmodifiable).SET NOOUTPUT_FILE2 Disassociates the buffer from any output file.SET NOOVERVIEW9 Disables overview operations in the indicated buffer.SET NOSOURCE_DIRECTORYF Specifies the directories to be removed from the list of source directories. SET NOWRAP. Disables wrapping in the indicated buffer.SET OUTPUT_FILE7 Changes the output file associated with the buffer.SET OVERSTRIKE> Sets the text entry mode of the buffer to overstrike mode. SET OVERVIEW8 Enables overview operations in the indicated buffer. SET READ_ONLYF Specifies that following a COMPILE command or an exit from LSE,( the buffer not be written to a file. SET REVERSE8 Sets the current direction of the buffer to reverse.SET RIGHT_MARGINA 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_MARK6 Specifies a position as one end of a select range.SET SOURCE_DIRECTORYF Specifies a search list of directories to be used to find source files.SET TAB_INCREMENTE Specifies the number of columns between tab stops for the buffer.SET WRAP- Enables wrapping in the indicated buffer. SET WRITEF Specifies that following a COMPILE command or an exit from LSE,) the buffer will be written to a file.SHIFT2 Scrolls a window horizontally (left or right).SHOW ADJUSTMENT: Displays the characteristics of indicated adjustments. SHOW ALIAS8 Displays the characteristics of the specified alias. SHOW BUFFER9 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_DIRECTORY6 Displays the current default device and directory.SHOW DIRECTORY6 Displays the setting of the SET DIRECTORY command.SHOW KEY6 Displays the characteristics of the specified key. SHOW KEYWORDSA 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 MAX UNDOF Displays the maximum number of commands that you can undo for a specific buffer. SHOW MODE' Displays the current mode settings.SHOW MODULE [SCA Command], Displays SCA library module information. SHOW PACKAGE7 Displays the characteristics of specified packages.SHOW PARAMETER9 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 ROUTINE7 Displays the characteristics of specified routines. SHOW SCREEN? Displays the current values set with the SET SCREEN command SHOW SEARCH1 Displays the settings of text search options.SHOW SOURCE_DIRECTORY= Displays the setting of the SET SOURCE_DIRECTORY command. SHOW SUMMARY5 Shows statistics and other information about LSE.SHOW TAG3 Displays the characteristics of indicated tags. SHOW TOKEN8 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]F Suspends the editing session and runs the DCL interpreter in a subprocess.SPELLF Runs DECspell to check the currently selected text or the entire buffer. SPLIT WINDOW8 Divides the current window into two or more windows. TWO WINDOWS/ Splits the current window into two windows. SUBSTITUTEF Searches for a specified text string and replaces it with another specified string.TABF 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.UNDO4 Reverses the most recently executed LSE command.UNDO ENTER COMMENT: Reverses the effect of the last ENTER COMMENT command.UNERASE9 Restores text previously deleted by an ERASE command.UNEXPAND3 Reverses the effect of the last EXPAND command. UNRESERVE9 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 LINEF Shows the current line number and total number of lines in theF buffer. Also shows what percentage of the lines in the buffer are# located above the current line.WRITEF Outputs the contents of a specified buffer or selected range to a specified file.ww`H 1 New_Features3 For information on new features, enter the command PLSE HELP NEW_FEATURESww`H 1 Features 2 OverviewF LSE is a multilanguage, advanced text editor that is layered on theF VAX Text Processing Utility (VAXTPU). LSE works with VMS languagesA and oth er VMS productivity tools to enhance program development.F LSE allows you to control your editing environment and use LSE'sF knowledge of specific languages to develop programs quickly and accurately.% LSE provides the following features: o Error Correction and ReviewF This feature allows you to compile, review, and correctF compilation errors within a single editing session. LSE providesF an interface to the supported VMS language compilers so t hat youF can perform compilations without leaving LSE. The compilersF provide LSE with compilation diagnostics in a way that allows youF to review compilation errors in one editing window while5 displaying the related source in another window. o Language-Specific TemplatesF Templates permit fast and efficient source code entry. LSEF accesses a collection of formatted language constructs, calledF templates, that provide keywords, pun ctuation, and placeholders,% for each supported VMS language.F LSE allows you to modify existing templates or define your own language or text templates.' o Integrated Programming EnvironmentF LSE is integrated into the OpenVMS development environment. ItF is invoked using the DIGITAL Command Language (DCL). LSE worksF with supported OpenVMS languages, the Source Code Analyzer (SCA),F the Code Management System (CMS), the Debugger, and  theF Performance and Coverage Analyzer (PCA) to provide a highlyF interactive environment. This environment enables you to createF and edit code, to view multiple source modules, to compileF programs, and to review and correct compile-time errors in one editing session.F LSE can be invoked directly from the debugger to correct sourceF code problems found during debugging sessions. In addition, LSEF can be invoked from the Performance  and Coverage Analyzer toB correct performance problems found during analyzing sessions. o Online HELP FacilityF LSE provides online HELP for information on unfamiliar languageF constructs and routines. HELP is also provided for all of LSE's" commands and key definitions. o Source Code AnalysisF LSE's integration with SCA allows you to search for specific0 information contained in your source files.F SCA is a source code cross-referenc e and static analysis toolF that helps programmers familiarize themselves with complexF systems. SCA accesses source information generated by supportedF VMS language compilers. Thus, SCA allows you to move throughF this information and gain access to related source files asF necessary. You can find out how a program symbol was declared,F where a particular routine is called, or what module needs to be recompiled. o Source Code ManagementF An interface with CMS simplifies the functions of program development.F All CMS commands can be issued within LSE. LSE can be directedF to fetch files directly from a CMS library when you issueF standard LSE file manipulation commands. In addition, LSE hasF commands RESERVE, REPLACE and UNRESERVE which perform the0 corresponding CMS operation on LSE buffers. o Program DesignF The /DESIGN qualifier allows the compiler to process an inputF file as a detailed design. Used with LSE and SCA, this newF capability provides an integrated software developmentF environment that includes the low-level design phase of the% software development life cycle.F During the design phase, any supported VAX language can be yourF Program Design Language (PDL). In the VMS environment, you( create detailed designs as follows:' - Using a supported  VAX language1 - Embedding design information in commentsD - Writing algorithms with pseudocode and regular placeholdersF With LSE, you can use pseudocode placeholders to express designF information. Supported VAX languages use the special brackets F and to delimit pseudocode placeholders. You can express otherF design information in tagged header comments. In addition, youF can convert pseudocode placeholders into comments and store the)  design information in SCA libraries.F With SCA, you can perform cross-referencing and static analysisF on the design information. In addition, SCA provides a reportF tool that allows you to process and analyze designs to produce aF variety of design reports. Design reports can show the currentF state of design work and help you understand existing code. YouF can generate help libraries and routine templates from these design reports. o  LSE CustomizationF LSE allows you to extend your editing environment to handleF highly specialized editing needs. LSE provides an interface toF VAXTPU. VAXTPU is part of the VMS operating system. VAXTPUF features include a compiler and an interpreter, and proceduresF for screen management and text manipulation. The VAXTPU languageF is block-structured and provides looping, conditional, case, andF assignment statements, and many built-in procedures to allow you, to perform more powerful editing tasks. o EVE/EDT KeypadsF LSE provides a SET MODE KEYPAD command that sets the key. definitions to be similiar to EVE or EDT.3 o System Services and Run-Time Library TemplatesF LSE provides packages for VMS Systems Services and for the LIB$,F SMG$, and STR$ Run-Time Library routines. In addition, LSEF allows you to define templates for packages of subroutine libraries. 2 Issuing_CommandsF LSE provides two ways to issue commands: keypad mode and commandF line mode. When you invoke LSE, you are in keypad mode. In keypadF mode, text that you type is inserted into a buffer. Keypad, cursor,F and control keys execute LSE functions. Thus, you can press keys toF perform editing functions rather than typing commands on the command line.F LSE provides two keypads: EDT keypad and EVE keypad. The default isF the EDT keypad. You can use the SET MODE  KEYPAD command to get theF EVE keypad. The EDT key bindings are used in the examples in the manual.F Some LSE commands are not bound to keys. Therefore, they must beF entered in command line mode. There are two command line prompts: LSE Command> and LSE>.F The LSE Command> prompt will process one command. After that commandF is processed, LSE returns to keypad mode. There are two ways to getF the LSE command> prompt: pressing the DO key or COMMAND keyF (PF1- KP7). LSE will place the LSE Command> prompt near the bottom of the screen.F Alternatively, the LSE> prompt allows you to issue as many commandsF as you want. To get the LSE> prompt, you press CTRL/Z. LSE willF place the LSE> prompt near the bottom of the screen. To return toF keypad mode, you can press CTRL/Z again or issue the CONTINUE command. 2 WindowsF A window is a section of your screen that displays the contents of a buffer.F LSE allows you to create tw o text windows, each mapped to a differentF buffer. By splitting the screen into two windows, you can view any two buffers simultaneously.F The status line is highlighted and provides information about theF associated buffer. The status line tells you the name of the buffer,F whether you are in insert or overstrike mode, whether the buffer isF in a forward or reverse direction, and whether the buffer is a write or read-only buffer.F The message area is located at the bottom  and displays broadcast- messages and messages issued by LSE and SCA.F The prompt area overlays the top line of the message window with theF LSE> or LSE Command> prompts, which prompt for commands or requiredF parameters for commands. LSE commands can be used to manipulate the screen and its format.F The following describes a common use of some of the commands andF default key bindings used to manipulate screens. If, for example,F you are editing a file called MODULES.AS, you can issue the followingF commands to move a procedure from the MODULE2.AS file to the current file.. 1. Press the CHANGE WINDOW_MODE key (PF1-=).F This command will split the screen into two windows. BothF windows will contain the current buffer. The cursor will be! placed in the bottom window./ 2. Issue the command: GOTO FILE MODULE2.PAS.F This command will put the contents of the file, MODULE2.AS, intoF the bottom window. Now that the two files are displayed on theF screen, you can locate both the procedure you want to select andF the location in the current file where you want the procedure placed.F 3. Move to the desired procedure and press the SELECT (KeypadF Period) key. Use the arrow keys to select the entire procedure? and press the CUT (Keypad 6) key to capture the procedure.F 4. Press the PREVIOUS WINDOW key (PF1-(UPARROW)) to place the cursor in file MODULE1.PAS.F 5. Press the PASTE key (PF1-KP6) at the location where the procedure should be placed.F 6. Press the CHANGE WINDOW_MODE key (PF1-=) to return the screen to. one window containing the current buffer.F The commands for manipulating buffers, along with the default key7 bindings, are listed under subtopic "Screen_Commands".3 Screen_Commands> LSE provides the following commands for manipulating screens: CHANGE WINDOW_MODE (PF1-=)H toggles the number of windows (between one and two) displayed. DELETE WINDOW% deletes the current window. GOTO BUFFER( moves to the specified buffer. GOTO FILEG moves the cursor to the buffer containing the specified file. GOTO SCREENH 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 SCREEN5 defines the display screen characteristics. SHIFT7 scrolls a window to the left or to the right. 2 BuffersF A buffer is a temporary holding area that provides a work space forF editing text. You can create a new file or edit an existing file inF a buffer. A buffer becomes visible when it is associated with aF window that is mapped to the screen. Buff ers exist only for theF duration of your editing session. When you exit from LSE, theF current buffer is discarded and the contents of the buffer are stored in a file.F LSE allows you to create multiple buffers. Thus, you can editF several different files in one editing session. You can createF additional buffers to store portions of text that you might want to4 look at, but not edit, during your editing session. BUFFER ATTRIBUTESF Buffers have many attribut es. This section provides details onF buffer attributes and properties. You can use the SHOW BUFFER? command to display the characteristics of one or more buffers. Buffer NamesF A buffer has a name that is displayed in the status line. BuffersF are usually named by the name and type of their associated inputC file. The GOTO FILE or GOTO BUFFER commands can create buffers. Insert/OverstrikeF LSE has two text entry modes: insert and overstrike. In  insertF mode, text gets inserted into the buffer at the cursor position.F Text to the right of the cursor gets moved. In overstrike mode,F text typed at the cursor replaces text that is currently under theF cursor. When you start an editing session, the buffer isF automatically placed in insert mode. To change the text entry5 modes, you use the CHANGE TEXT_ENTRY_MODE command. Forward/ReverseF LSE maintains a current direction for each buffer.  The currentF direction is displayed in the status line. This direction is usedF for SEARCH operations and the GOTO and ERASE commands. When youF start an editing session, the buffer direction is set to forward.F To set the current direction to forward, you use the SET FORWARDF command. To set the current direction to reverse, you use the SETF REVERSE command. Alternatively, you can use the CHANGE DIRECTION+ command to change the current direction. Input/O utputF Buffers may have an associated input or output file. An input fileF is a file that is read into a buffer when a buffer is created. AnF output file indicates where LSE will write a buffer. This isF usually a new version of an input file. You can change the outputF file name with the SET OUTPUT_FILE command. The GOTO FILE command- creates a buffer and reads a file into it. Read/WriteF Buffers have either the read-only or write attribute. TheF read-only attribute indicates that the contents of the buffer willF not be written to a file on exit. The write attribute indicatesF that the buffer will be written to a file on exit. Usually, a fileF is associated with a buffer by the GOTO FILE command, which createsF a buffer and fills it with the contents of a file. When the bufferF is written, it is written to a new version of the file. If no fileF is associated with a buffer that has the write attribute, LSE F prompts for a file specification on exit. Note that a buffer is3 written only if its contents have been modified. Modifiable/UnmodifiableF Buffers are either modifiable or unmodifiable. UnmodifiableF buffers protect the contents of a given buffer. You cannot changeF an unmodifiable buffer. The GOTO FILE/READ_ONLY and GOTOF SOURCE/READ_ONLY commands create unmodifiable buffers. If you wantF to modify an unmodifiable buffer, you must issue the SE T MODIFY or SET WRITE command.F There are some relationships between the READ-ONLY/WRITE bufferF attributes and the UNMODIFIABLE/MODIFIABLE buffer attributes.F Given these attributes, a buffer may be in one of four possibleF states. The following list describes these states and explains how' to create these states for a buffer. o MODIFIABLE - WRITEF The GOTO FILE/WRITE, GOTO SOURCE/WRITE, SET WRITE, and RESERVEF commands set buffers to this state. It is also the default forF the file specified in the LSEDIT command line. The buffer mayF be modified and will be written on exit if it has been modified. o MODIFIABLE - READ-ONLYF This is the default for the GOTO BUFFER/CREATE command that isF used to create a "scratch" buffer. The buffer may be modified,* but it will not be written on exit. o UNMODIFIABLE - READ-ONLYF The GOTO FILE/READ_ONLY and GOTO  SOURCE/READ_ONLY commandsF create buffers in this state. The buffer cannot be modified.F If you issue a SET MODIFY command on this buffer and modify theF contents, LSE will not write the contents on exit unless you7 also issue the SET WRITE command for the buffer. o UNMODIFIABLE - WRITEF A buffer can be set to this state by a user who has completed aF set of changes to a buffer in the MODIFIABLE - WRITE state andF then issued a SET  NOMODIFY command for the buffer to protectF the buffer from accidental change for the remainder of theF editing session. LSE will write the file on exit if it has/ been changed during the editing session. System BuffersF Some buffers are used by LSE for special purposes. These areF called system buffers. Unlike user buffers, system buffers do notF correspond to files. You can edit a system buffer like any otherF buffer, but you sho uld avoid changing its contents. By convention,F system buffer names start with a dollar sign ($). The mostF frequently used system buffers are $HELP, $MESSAGES, $REVIEW, andF $SHOW. System buffers are not displayed by the SHOW BUFFER command0 unless you use the /SYSTEM_BUFFERS qualifier. LanguagesF Buffers may have a language associated with them. This determinesF which language is used for the language-sensitive features. TheF file type of your current  buffer determines the language LSE uses.F Thus, you can move between different languages in differentF buffers, and LSE will provide the interfaces to the appropriateF compilers. The SET LANGUAGE command associates a language with a buffer.' Current Indentation and Tab SettingsF LSE maintains two settings to control the action of the tab key:F current indentation level and tab increment. When you are at theF left margin, the tab key indents to the c urrent indentation level.F If you are not at the left margin, the tab key takes you to theF next tab column based on the tab increment setting. The SETF INDENTATION command sets the current indentation level; the SET< TAB_INCREMENT command sets the size of the tab increment. Key BindingsF Buffer commands, along with default key bindings are listed under subtopic "Buffer_Commands".3 Buffer_Commands> LSE provides the following commands for manipulating buffers: CHANGE DIRECTIONE Alters the direction of the current buffer. This command is. bound to Key F11 (PF3 in EVE VT100). CHANGE TEXT_ENTRY_MODEB Alters the text entry mode of the current buffer betweenA insert and overstrike. This command is bound to Key F14 (ENTER in EVE VT100). COMPILE2 compiles the source code in the buffers. CUT [/BUFFER=name]D deletes and moves text in the select range to the paste or specified buffer. DO [/BUFFER=name]7 directs LSE to execute LSE commands or VAXTPUB program statements from the current or specified buffer. EXITG terminates an editing session and saves all modified buffers. EXTEND? compiles one or more VAXTPU procedures to extend LSE. GOTO FILE file-specF moves to the buffer containing the specified file or creates$ a new buffer for the  file. GOTO BUFFER nameE moves the cursor to the last position held in the specified buffer. GOTO SOURCEG moves to the source buffer related to the diagnostic or query0 item. This command is bound to CTRL/G. PASTE [/BUFFER=name]D copies the content of the paste or specified buffer to the current buffer. QUITC terminates an editing session without saving any modified buffers.  READ file-spec [buffer]E inputs a specified file to the current or specified buffer. SET AUTO_ERASE4 enables automatic erasing of placeholders. SET FORWARD [/BUFFER=name]H sets the direction of the current or specified buffer forward.G This command is bound to Keypad 4 (no binding for EVE VT100).$ SET INDENTATION [/BUFFER=name]D changes the indentation level for the current or specified buffer. SE T INSERT [/BUFFER=name]E sets the text entry mode of the current or specified buffer to insert mode.! SET LANGUAGE [/BUFFER=name]G changes the language associated with the current or specified buffer.$ SET LEFT_MARGIN [/BUFFER=name]E specifies the left margin for the buffer for FILL and ENTER space commands. SET MODIFY [/BUFFER=name]+ sets buffer status to modifiable. SET NOAUTO_ERASE5  disables automatic erasing of placeholders. SET NOMODIFY& sets buffer to unmodifiable. SET NOWRAP4 disables wrapping in the indicated buffer.$ SET OUTPUT_FILE [/BUFFER=name]D changes the output file associated with the current or the specified buffer.# SET OVERSTRIKE [/BUFFER=name]C sets the text entry of the current or specified buffer to overstrike mode. SET REVERSE [/BUFFER=name]B  sets the direction of the current or specified buffer toD reverse. This command is bound to Keypad 5 (no binding for EVE VT100).% SET RIGHT_MARGIN [/BUFFER=name]F specifies the right margin for the buffer for FILL and ENTER space commands.& SET TAB_INCREMENT [/BUFFER=name]C specifies the number of columns between tab stops for the& current or specified buffer. SET WRAP3 enables wrapping in the indicated buffer. SET WRITE [/BUFFER=name]D specifies that following a COMPILE command or an exit from> LSE, the specified buffer will be written to a file. SHOW BUFFER [name | *]H displays the characteristics of a specified or default buffer.! WRITE [/BUFFER=name] [file]C outputs the content of the current or specified buffer to to a specified file.2 PlaceholdersF To use LSE to create or edit source code requires an understanding ofF the concepts of tokens and placeholders. Tokens and placeholders areF language elements that have been predefined for each of the supportedF languages. These elements can be expanded into templates for language constructs. PlaceholdersF Placeholders are markers in the source code that indicate locationsF where you can provide program text. These placeholders help you toF supply the appropriate syntax in a given context. Generally, you doF not need to type placeholders, rather, they are inserted for you byF LSE. Placeholders can be recognized because they are surrounded byF 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 placeholdersF Terminal placeholders provide text strings that describe validF replacements for the placeholder. Nonterminal placeholders expand F into additional language constructs. Menu placeholders provide aF list of options corresponding to the placeholder. The type of a3 placeholder is a property of the placeholder name.F Placeholders are either optional or required. Required placeholders,F indicated by braces, represent places in the source code where youF must provide program text. Optional placeholders, indicated byF brackets, represent places in the source code where you can either8 provide additional constructs or erase the placeholder. For example, the declaration INTEGER {identifier}...  when expanded becomes  INTEGER id,  [identifier]...F The first appearance of the identifier placeholder is surrounded byF braces because you need at least one identifier in this declaration.F The second appearance is surrounded by brackets because additional identifiers are optional.F Some placeholders are duplicated when expanded. These pl aceholdersF are followed by an ellipsis. Generally, these placeholders representF items such as identifiers, statements, expressions, datatypes, or anyF location where lists of items are expected. A placeholder isF duplicated either vertically or horizontally, depending on theF context and the placeholder definition. For example, the placeholder@ [identifier] in the previous example was duplicated vertically.F You may move forward or backward from placeholder to placeholder. InF addition, you can delete or expand placeholders as needed. LSEF allows you to specify uppercase, lowercase, or as defined for all text expanded into the buffer.F You may modify placeholder definitions by means of the EXTRACTC command. See Chapter 6 for information on modifying placeholders.F Placeholder definitions may be stored in an environment file. See= Chapter 7 for information on defining your own placeholders. TOKENSF Tokens are typically keywords in programming languages. WhenF expanded, tokens provide additional language constructs. Tokens areF typed directly into the buffer. Generally, tokens are used inF situations when you want to add additional language constructs whereF there are no placeholders. For example, typing IF and pressing theF EXPAND key causes a template for an IF construct to appear on yourF screen. Tokens are also used to bypass long menus in situationsF where expanding a placehold er, such as {statement}, would result in a lengthy menu.F You can use tokens to insert text when editing an existing file.F Because most languages have tokens for built-in functions andF keywords, you type the name for a function or keyword and press theF EXPAND key. In addition, most languages provide a token namedF 'statement' or 'expression' that expands into a menu of all possible statements or expressions.F The following example demonstrates how to use tokens to edit anF existing program. In this case, the buffer, TEST.EXAMPLE, contains the following code: PROCEDURE test () IF A = B THEN A = C + 1 ENDIF ENDPROCEDURE testF 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. F Note that the cursor is placed at the same level of indentation as the next line.- 4. Type statement and press the EXPAND key.F A menu of statements will now appear on your screen. You use theF arrow keys to scroll through the menu. To select a menu item, youF press the EXPAND, ENTER, or RETURN key. You can press the space bar* to exit a menu without selecting an item.3 Terminal_PlaceholdersF If the current position is on a terminal placeholder when the EXPANDF key is pressed, the Editor displays a description of valid+ replacements for the terminal placeholder.F Pressing the up and down arrows (bound to the GOTO CHARACTER/VERTICAL- command) allows you to move within the text.F Pressing the space bar removes the text and returns you to the, original buffer without making any changes.F Pressing any other key clears the text and performs the operation" normally associated with the key.3 Nonterminal_PlaceholdersF I f the current position is on a nonterminal placeholder when theF EXPAND key is pressed, the Editor deletes the placeholder and3 replaces it with the text of the placeholder body.3 Menu_PlaceholdersF When a menu placeholder is expanded, the Editor displays a list ofF options. Pressing the up and down arrow keys (bound to the GOTOF CHARACTER/VERTICAL command) allows you to move from one option to another.F To obtain help text on an indicated option, press the GOLD-HELP (PF2) sequence.F Pressing the EXPAND, ENTER, or RETURN key allows you to expand the- selected option and remove the menu display.F Pressing the key bound to the GOTO SCREEN command (Keypad 8 key) alsoF allows you to move through the menu, skipping several options at a time.F Pressing any other key removes the menu display and performs the, operation normally associated with the key.F If the option is a placeholder name, the placeholder is enclosed inF the sam e class of delimiter as the menu option being expanded (unlessF the /LIST qualifier on DEFINE PLACEHOLDER specifies otherwise) andF the Editor then automatically performs an EXPAND operation. If /LISTF is specified, the list form of the delimiter found on the menu option is used.F If there is a description associated with the placeholder or tokenF name appearing as a choice in a menu, the Editor displays the/ description along with the name. For example:8 IF: tests  an expression and establishes an action 2 LanguagesF LSE allows you to use its knowledge of programming languages toE develop software. LSE also allows you to design your own languages.F In addition to programming languages, you can define languages forF other things, such as memos or letters. Once you have defined aF language, you can save it in an environment file and recall it for( subsequent editing and update sessions.F To create a new language, you first create  a source file (.LSE),F within LSE, into which you put the LSE commands that define theF elements of your language. Once the source file is completed, useF the DO command to process the definitions. You may then use the SAVEF ENVIRONMENT command to save the definitions in binary form forF 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 executingA 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.F Thus, to create a binary image file (.ENV) for your language, y ou use$ the following sequence of commands: LSE> DO* LSE> SAVE ENVIRONMENT filename LSE> EXIT3 Defining_a_LanguageF All template definitions, whether text or language-oriented, beginF with a language definition command (DEFINE LANGUAGE) that specifiesF language characteristics. For example, to define a language, you use( the DEFINE LANGUAGE command to specify:8 1. The name of your language (DEFINE LANGUAGE).: 2. The file typ!es (/FILE_TYPES) for the language.= 3. The identifier characters to be used in token and1 alias names (/IDENTIFER_CHARACTERS). 4 4. The punctuation and delimiter characters& (/PUNCTUATION_CHARACTERS).< 5. The required and optional placeholder delimiters' (/OPT, /OPTL, /REQ, /REQL).5 6. The initial text heading for the new file (/INITIAL_STRING).? 7. The indentation control for tokens and placeho"lders (/TAB_INCREMENT). Example:" DEFINE LANGUAGE MEMO -( /IDENTIFIER CHARACTERS = -' "abcd....XYZ0123456789" -1 /INITIAL_STRING ={memo_template}" -% /FILE_TYPES = (.MEMO) -" /TAB_INCREMENT = 4 - /OPT = ("[","]") -$ /OPTL = ("[","]...") -4 /PUNCTUATION_CHARACTERS = ".,':*+-/" - /REQ = ("[","]") -$ /REQL = ("[","]...") -#F To define a placeholder, you use the DEFINE PLACEHOLDER command to specify:> 1. The name of your placeholder (DEFINE PLACEHOLDER).0 2. The associated language (/LANGUAGE).C 3. The type of placeholder: terminal, nonterminal, or menu (/TYPE).H 4. The description that you want displayed when the placeholderA 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:2 1. The name of your token (DEFINE TOKEN).0 2. The associated language (/LANGUAGE).B 3. The description that you want displayed when the token; is% used in a menu or in the SHOW TOKEN command.9 4. The end of the token definition (END DEFINE). Example: . .# DEFINE TOKEN location - /LANGUAGE = MEMO -. /DESCRIPTION = "Office location" "LOC: URE-0096" END DEFINE3 Language_CommandsF LSE provides the following commands for creating and manipulating language elements:# DEFINE ALIAS [/LANGUAGE=name]A & specifies the alias name to be defined in the specified language. DEFINE LANGUAGE name= specifies characteristics for the current language.) DEFINE PLACEHOLDER [/LANGUAGE=name]A specifies placeholder characteristics for the specified language.# DEFINE TOKEN [/LANGUAGE=name]E specifies token characteristics for the specified language.# DELETE ALIAS [/LANGUAGE=name]C cancels the effect of a DE'FINE ALIAS command used for the specified language. DELETE LANGUAGE name: cancels the effect of a DEFINE LANGUAGE command.) DELETE PLACEHOLDER [/LANGUAGE=name]F 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 prog(ram statements. END DEFINEB terminates a DEFINE TOKEN or DEFINE PLACEHOLDER command.$ EXTRACT LANGUAGE language-nameE selects the definition of the named language and formats it as a command.  HELP/LANGUAGE [name | * ]A displays help information about the specified language. MODIFY LANGUAGE name? modifies the characteristics of a specified language. SAVE ENVIRONMENT file-specE writes) all user-defined languages, tokens, and placeholders to a specified file.& SHOW ALIAS name [/LANGUAGE=name]E displays the characteristics of the specified alias for the specified language. SHOW LANGUAGE [ name | * ]A displays the characteristics of the specified language.& SHOW TOKEN name [/LANGUAGE=name]E displays the characteristics of the specified token for the specified language., SHOW PLACEHOLD *ER name [/LANGUAGE=name]G displays the characteristics of the specified placeholder for! the specified language.2 Getting_StartedF If you are experimenting with a new file associated with one of theF supported languages, the following procedures may be helpful (see also topic "Entering_Code").B o Once you have invoked LSE, and the initial stringE appears on the screen, press the EXPAND key (CTRL/E) andE the structure of +a program associated with your language will appear.G o Using the arrow keys, move through the menu and expand yourF choice by pressing CTRL/E, the ENTER key, or the RETURN key.G o Using the GOTO PLACEHOLDER/FORWARD key (CTRL/N), move fromG one placeholder to the next, expanding and typing in text asG you go. If you need help on a placeholder (or token), pressG the HELP/INDICATED key sequence (PF1-PF2) while you ,are( positioned on the placeholder.G o For those optional placeholders you do not want, press the1 ERASE PLACEHOLDER/FORWARD key (CTRL/K).G o Enter command mode by pressing CTRL/Z, for the LSE> prompt,G or the GOLD COMMAND key sequence (PF1 and keypad 7) for theG LSE Command> prompt. When using the LSE> prompt, typeG CONTINUE to return to editing. Type the EXIT or QUITD command to leave LSE; -however, if you make modificationsG to the file, you must type the EXIT command to save the changes you have made.D If you wish to get more general information about LSE, do the following:B o To see a diagram of the keypad, press the HELP key (PF2).G o To obtain a listing of the keys and their descriptions, pressG CTRL/Z to get the LSE> prompt, and type the SHOW KEY command. D o To see a list of LSE commands and their exp .lanations, press@ CTRL/Z to get the LSE> prompt, and type HELP COMMANDS. G o To display a list of all the predefined tokens or placeholdersG for the language of the current buffer, press CTRL/Z to getG the LSE> prompt, and type the SHOW TOKEN or SHOW PLACEHOLDER command. G o To get language-specific help on a particular keyword orG placeholder, position the cursor on the keyword or placeholderG and press GOLD PF2. / Help is not available for all keywords and placeholders. 3 Using_MenusF Each option in a menu is either a token, a placeholder, or a string.F If you select a token or placeholder, the expansion of that optionF appears in the buffer. If you choose a string the string appears inF the buffer. The menu is removed from the screen after you select a menu option.2 When a menu first appears on the screen, you can:C 1. Move through the menu by pressing the up or d 0own arrowC keys. (This causes the indicator to move from one option to the next.)C 2. Select an option from the menu by pressing the EXPAND keyC (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.C 4. Press the space bar to cause the menu to disappear (thisC has no effect on the user's buffer). Pressing any otherC 1 key also makes the menu disappear, however, the key's function is performed.2 Command_CategoriesF The following information describes the use of LSE commands by task and function.3 Edit_Sessions ATTACHA allows you to switch control of your terminal to another process. CONTINUE0 exits line mode and enters keypad mode. DCL@ executes a DCL command from within your editing session DO< execu2tes LSE commands or VAXTPU program statements. EXIT< terminates an edit session, returns to the calling$ program, and saves buffers. GOTO COMMANDF 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]B executes a specified command a specified number of times.3 SET DEFAULT_DIRECTORYB changes your default device and directory specifications. SET FONT1 sets the specified fonts for the screen. SET JOURNALING= enables buffer journaling for the specified buffers. SET NOJOURNALINGF disables buffer journaling for the specified buffers. SPAWNA suspends the edit session and spawns a subprocess at the DCL level.3 Entering_Code ENTER COMMENT+ 4 converts pseudocode into comments. ENTER PSEUDOCODE3 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_ERASE3 enables automatic e5rasing of placeholders. SET LANGUAGEB sets the specified language associated with the specified buffer SET NOAUTO_ERASE4 disables automatic erasing of placeholders. SET NOLANGUAGEI 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. U6NEXPAND8 reverses the effect of the last EXPAND command.3 Text_Manipulation CANCEL SELECT_MARKA cancels the select range of the SET SELECT_MARK command. CAPITALIZE WORDD capitalizes the first letter of the current word, or words, in a selected range. CENTER LINEE centers the current line between the left and right margins.  CHANGE CASEG changes the case (upper/lower) of each letter in the specifie7d range. CHANGE DIRECTION= changes the current direction of the current buffer. CHANGE INDENTATIOND adds or deletes leading blanks or tabs in the select range. CHANGE TEXT_ENTRY_MODEI changes the edit mode (insert/overstrike) of the current buffer. CUTB deletes and moves text in the select range to the current buffer. ENTER LINEF inserts a blank line at the end of a line and repositions the8 cursor to it. ENTER SPACEE inserts a blank character and performs a fill at the current cursor position. ENTER SPECIAL [ASCII-code]F 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-stringC inserts a specified string at the current cursor position. ERASE CHARACTER5 del9etes a character from the current buffer. ERASE LINE8 deletes a line of text from the current buffer. ERASE PLACEHOLDER: deletes placeholder text and related punctuation. ERASE SELECTION4 removes the text within the selected range. ERASE WORD0 deletes a word from the current buffer. EXPANDE 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. QUOTED 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_ERASE3 ; enables automatic erasing of placeholders.  SET FORWARD: sets the direction of the current buffer forward. SET INSERTA sets the text entry mode of the current buffer to insert mode. SET NOAUTO_ERASE4 disables automatic erasing of placeholders. SET NOWRAP3 disables wrapping in the indicated buffer.  SET OVERSTRIKEE sets the text entry mode of the current buffer to overstrike mod<e. SET REVERSE= sets the direction of the current buffer to reverse. SET SELECT_MARK6 marks a position as one end of a select mark. SET WRAP2 enables wrapping in the indicated buffer. SPELLI 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. = TABF inserts blanks and tabs to move cursor to current indentation level or next tab stop. TOGGLE SELECT_MARK2 sets and resets the state of SELECT_MARK.! UNERASE erase-command-option: restores text deleted by an ERASE command option. UNEXPAND8 reverses the effect of the last EXPAND command. UNTABE 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. 3 Compile_and_Review COMPILE> compiles the contents of a buffer without leaving LSE END REVIEW$ ends an LSE REVIEW session. GOTO SOURCEA displays the source related to the current diagnostic or query item. GOTO REVIEW6 moves to the currently active review session. NEXT ERROR8 selects the next diagnostic in the current set. ? PREVIOUS ERROR< selects the previous diagnostic in the current set. REVIEWD selects and displays a set of diagnostic messages resulting from a compilation.3 CMS_Interface CMS [cms-command]4 enables the execution of CMS command within LSE. GOTO FILE6 moves the cursor to the buffer containing the specified file. GOTO SOURCE5 moves from a dignostic or symbol in a review3 or query @buffer to the related item in the" associated source buffer. READ4 opens a specified file for input and places, its contents in a specified buffer. RESERVE [element-name]7 Reserves the element specified in your current CMS library. REPLACE: Replaces the element (with the same specification8 as the input file for your current buffer) into" your current CMS library. SET CMS= sets the deAfault values for reservations and fetches that LSE performs. SET MODIFY* sets buffer status to modifiable. SET SOURCE_DIRECTORY8 specifies a search list of directories for your CMS source files. UNRESERVE5 unreserves the element specified by the last RESERVE command.3 Indenting_Code CHANGE INDENTATION= adds or deletes leading blanks or tabs in the select range. ENTER TAB< B inserts indentation at the beginning of a line or a$ tab at the cursor position. SET INDENTATION5 changes the inentation level for the buffer. SET TAB_INCREMENT; specifies the number of columns between tab stops. TABF inserts blanks and tabs to move cursor to current indentation level or next tab stop. UNTABE removes blanks and tabs to the left of the cursor moving the) cursor to the previous tab stCop.3 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 CHARACTER0 moves the cursor to the next character. GOTO FIDLE file-specA 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 MARKD moves the cursor to the mark-name specified by the SET MARK command. GOTO PAGE+ moves the cursor to the next page. GOTO PLACEHOLDER2 moves the cursor to the next placeholder. GOTO SCREEN@ moves the cursor the current direction by tEhe number of% lines in the current window. GOTO SOURCEC 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 WORDA moves the cursor to the next word in the current buffer. LINEJ moves the cursor in the current buffer to the start of the source line you specify. NEXT ERROR8 selects the next diagnoFstic in the current set. PREVIOUS ERROR< selects the previous diagnostic in the current set. SEARCH quoted-stringF moves the cursor to a specified string in the current buffer. SET CURSORB selects either bound cursor motion or free cursor motion. SET FORWARD3 sets the current buffer direction forward. SET MARKH specifies a name at the current cursor position for a GOTO MARK command. SET REVERSEG4 sets the current buffer direction backward. SET SEARCH" sets text search options.3 Screen_Control CHANGE WINDOW_MODE0 alters the number of displayed windows. DELETE WINDOW$ deletes the current window. ENLARGE WINDOW% enlarges the current window. GOTO BUFFER6 moves the cursor to the last position held in the specified buffer. GOTO FILE4 moves the cursor to a buffer containingH the specified file. GOTO SCREEN9 moves the cursor in the current direction by the/ number of lines in the current window. GOTO SOURCE G uses the current cursor position in the review or query bufferJ 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 WINDOWI= 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 SCREEN4 defines the display screen characteristics. SET SCROLL_MARGINS8 delimits the lines at which the cursor triggers! scrolling. SHIFT' scrolls a window horizontally. SHRJINK WINDOW$ shrinks the current window. SPLIT WINDOW4 divides the current window into two or more windows.  TWO WINDOWS4 splits the current window into two windows.3 Tailor_Environments CALL/ evokes a specified VAXTPU procedure.  DEFINE ALIAS@ specifies the alias name to be defined in the specified language.  DEFINE ADJUSTMENT9 defines the behavior of the LSE viewing cKommands. 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 LANGUAGE5 specifies the characteristics of a language. DEFINE PACKAGE@ specifies a subroutine package for which call templates$ are automaically generated.L DEFINE PARAMETER: specifies a parameter within a specified package. DEFINE PLACEHOLDERD 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 ALIAS1 deletes the definition of an alias name. DELETE ADJUSTMENT? M removes a name from the list of adjustments associated" with a language.  DELETE COMMAND: deletes the definition of a user-defined command. DELETE KEY3 deletes the definition of a specified key. DELETE KEYWORDS3 cancels the indicated keywords definition. DELETE LANGUAGE8 deletes the definition of a specified language. DELETE PACKAGE7 deletes the definition of a specified package. DELETNE PARAMETER9 deletes the definition of a specified parameter. DELETE PLACEHOLDER; deletes the definition of a specified placeholder. DELETE ROUTINE7 deletes the definition of a specified routine. DELETE TOKEN5 deletes the definition of a specified token. DO< executes LSE commands or VAXTPU program statements. END DEFINEA terminates a DEFINE TOKEN or DEFINE PLACEHOLDER command. EXTEND> O compiles one or more VAXTPU procedures to extend LSE. EXTRACT ADJUSTMENTD 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 LANGUAGED P selects the definition of the named language and formats it as a command. EXTRACT MODULEC 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. Q 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 TAG6 extracts the definition of the named tag and - formats the definition as a command.  EXTRACT TOKEN 8 extracts the definition of the named token anRd - formats the definition as a command.  MODIFY LANGUAGE name> modifies the characteristics of a specified language. SAVE SECTIONA writes the binary form of current key definitions, learnE sequences, user-defined commands, mode settings, and VAXTPU 4 procedures and variables to a section file. SAVE ENVIRONMENTD writes all user-defined languages, tokens, and placeholders to a specified file. S SET MODE B changes the setting of the BELL, KEYPAD, and MENU modes.   SET SEARCH" sets text search options.3 Files_and_Buffers CHANGE TEXT_ENTRY_MODED switches the text entry mode between insert and overstrike. CLOSE BUFFER# deletes the current buffer CUT3 moves selected text to a specified buffer. DELETE BUFFER$ deletes a specified buffer. GOTO BUFFER' moves to the specified bufferT. GOTO FILEA moves to a buffer containing the specified file or reads$ the file into a new buffer. GOTO SOURCEC moves to the source associated with the current diagnostic message or query item. INCLUDEC inserts the specified file at the current cursor position. NEXT BUFFERB moves your next buffer into the current window, returning. to your last position in that buffer. PASTEA copies thUe contents of a specified buffer to the current/ cursor position in the current buffer. PREVIOUS BUFFER< moves your previous buffer into the current window,8 returning to your last position in that buffer. READ file-spec7 inputs a specified file to the current buffer. RECOVER BUFFERC reconstructs the contents of a buffer from a buffer change journal file.  SET DEFAULT_DIRECTORYB changes your defaulVt 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 INSERTC sets the text entry mode of the specified buffer to insert mode. SET LEFT_MARGINA specifies the left margin of thWe current buffer for FILL" and ENTER SPACE commands. SET MODIFY* sets buffer status to modifiable. SET NOMODIFY4 sets buffer to unmodifiable (display-only). SET NOSOURCE_DIRECTORYD specifies a directory to be removed from the list of source directories. SET OUTPUT_FILED changes the output file associated with the current buffer. SET OVERSTRIKEG sets the text entry mode of the specified buffer Xto overstrike mode. SET READ_ONLYC specifies that following a COMPILE command or an exit from2 LSE, the buffer not be written to a file. SET REVERSE= sets the direction of the specified buffer backward. SET RIGHT_MARGINF specifies the right margin for FILL and ENTER SPACE commands. SET SOURCE_DIRECTORY< specifies a search list of source file directories. SET TAB_INCREMENTB specifies the number Yof columns between tab stops for the current buffer. SET WRAP2 enables wrapping in the indicated buffer. SHOW BUFFER3 displays specified buffer characteristics. WRITED writes the contents of the specified buffer or select range to a specified file.3 Help_and_Status HELP [topic-list]6 displays information about a specified topic. SHOW ADJUSTMENT? displays the characteristics of indicated adjZustments. 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 COMMANDC displays the characteristics of the specified user-defined command. SHOW DIRECTORY; displays the settin[g 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 MARK4 displays the setting of the specified mark. SHOW MODE, Displ\ays the current mode settings. SHOW MODULE1 displays SCA library module information. SHOW PACKAGE? displays the characteristics of the specified package. SHOW PARAMETERA displays the characteristics of the specified parameter. SHOW PLACEHOLDERC 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 SEARCH6 displays the settings of text search options. SHOW SOURCE_DIRECTORYA displays the directories set by the SET SOURCE_DIRECTORY command. SHOW SUMMARY: shows statistics and other information about LSE. SHOW TAG8 displays the characteristics of indicated tags. SHOW TOKEN= ^ displays the characteristics of the specified token. SHOW VERSION5 displays the current version of LSE and SCA. WHAT LINE@ shows the current line number and total number of linesA in the buffer. Also shows what percentage of the lines : in the buffer are located above the current line.2 Entering_CodeF To support rapid source code development and decrease the occurrenceF of syntactic errors, LSE provides language-specific tok _ens andF placeholders. Tokens and placeholders allow for the insertion ofF source code, within language constructs, by expanding the name a userF types and by further expanding tokens and placeholders on syntactic markers.F On-line help for language features is also provided that is keyed to& the names of tokens and placeholders.3 TokensF Tokens are models of program language constructs that are referencedF by name from a template buffer. When a token name is entered, LSEF` 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 nameB specifies template characteristics for an EXPAND command. DELETE TOKEN name9 cancels the effect of a DEFINE TEMPLATE command. END DEFINE% terminates a DEFINE command. EXPAND? expands the token name at the current cursor position.a EXTRACT TOKEN token-nameA 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 | * ]8 displays information about the specified token. UNEXPAND8 reverses the effect of the last EXPAND command.3 PlaceholdersF Placeholders are syntactic character strings that hold the place ofF program language cons btructs. When a placeholder name is expanded, itF expands to either an actual value (terminal node) or anotherF construct (nonterminal node) requiring further expansion (see also# Topics "Tokens_and_Placeholders").@ The LSE commands used for the manipulation of placeholders are: DEFINE PLACEHOLDER nameA specifies placeholder characteristics for the current language. DELETE PLACEHOLDER name? cancels the effect of a DEFINE PLAcCEHOLDER command. END DEFINE( terminates a DEFINE command. ERASE PLACEHOLDER7 deletes the text of a selected placeholder. EXPANDG expands the placeholder-name at the current cursor postion.* EXTRACT PLACEHOLDER placeholder-nameG selects the definition of the named placeholder and formats it as a command. GOTO PLACEHOLDER5 moves the cursor to the next placeholder." SAVE ENV dIRONMENT [file-spec]G writes all user-defined placeholders to the specified file." SHOW PLACEHOLDER [name | * ]F displays the characteristics of the specified placeholder. UNEXPAND; reverses the effect of the last EXPAND command. 3 AliasesF Aliases are abbreviated reference names for long identifiers thatF have been entered in the source code. To define an alias for anF identifier on which the cursor is currently located, preses theB GOLD-CTRL/A key sequence and type the abbreviation at the prompt: _Alias name: nameF Whenever the abbreviated reference name is typed and expandedD (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]A specifies the alfias name to be assigned and the value+ of the string to be referenced. DELETE ALIAS name3 specifies the alias name to be deleted. 3 New_FilesF To edit a new file in one of the supported languages, the followingF 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/gP)) o UNERASE PLACEHOLDER (PF1-CTRL/K) o UNEXPAND (PF1-CTRL/E)F When you press the EXPAND key (CTRL/E), while the cursor is on a3 placeholder name, one of the following will occur:F o The placeholder will be replaced automatically with a templateF consisting of language constructs. This type of placeholder isF called a "nonterminal placeholder" because it will insert a, template into the buffer when expanded.F o Text will appear in a s heparate window to aid you in supplying aF value. This type of placeholder is called a "terminalF placeholder" because it does not insert a template into theF buffer when expanded. Instead, you must supply the necessary< text. You can press the spacebar to remove the window.F o A menu will appear that provides you with options that can beF selected and expanded into templates. This type of placeholder$ is called a "menu placeholder". iF In any of these three cases, you may type in the desired text overF the placeholder, and the placeholder will be erased automatically.F When expanding a menu placeholder, you can move through the optionsF by using the up and down arrow keys. To select an option, you pressF the EXPAND key, the RETURN key, or the ENTER key. To exit the menu5 without selecting an option, you press the spacebar.F You can construct a complete program by repeatedly expandingF templates. j You do not have to continuously expand templates untilF you reach a terminal placeholder. Rather, you may find it moreF appropriate to type in the desired value yourself at a higher levelC (see also topics "Tokens_and_Placeholders" and "Getting_Started"). 3 Old_FilesF To edit an existing file, in one of the supported languages, you useF tokens. Since tokens exist for many reserved words, simply type the. token name and press the EXPAND key (CTRL/E).F For example, typing IF kfollowed by a CTRL/E causes a template for anF IF construct to appear on your screen. (Use the SHOW TOKEN command4 to acquire a listing of all the predefined tokens.) 2 CompilingF While writing your program, you can use the COMPILE and REVIEWF commands to compile your code and review compilation errors without leaving the editing session.F Supported VMS language compilers generate a file of compile-timeF diagnostic information that LSE can use to review compilation error ls.F The diagnostic information is generated with the /DIAGNOSTICS qualifier.F The COMPILE command issues a DCL command in a subprocess to invokeF the appropriate compiler. LSE checks to see if the language providesF /DIAGNOSTICS capabilities. If so, LSE appends the /DIAGNOSTICS( qualifier onto the compilation command.F For example, if you issue the COMPILE command while in the buffer3 TEST.ADA, the resulting DCL command is as follows:F $ ADA DEV:[DIRECTORY] mTEST.ADA/DIAGNOSTICS=DEV:[DIRECTORY]TEST.DIAF LSE supports all of the compiler's command qualifiers as well asF user-supplied command procedures. You can specify DCL qualifiers,F such as /LIBRARY, when invoking the compiler from LSE. (See the8 Command Dictionary for details on the COMPILE command.)F The REVIEW command displays any diagnostic messages that resultedF from a compilation. LSE displays the compilation errors in oneF window, with the corresponding source n code displayed in a second window.F This multiwindow capability allows you to review your errors whileF examining the associated source code. This eliminates tedious stepsF in the error correction process and helps ensure that all the errors? are fixed before looping back through the compilation process.F LSE provides several commands to help you review errors and exam yourF source code. The following lists these commands and their default key bindings. COMPILE/oREVIEWB compiles and reviews the content of the current buffer. END REVIEW1 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.+ p 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.2 CMS_InterfaceF LSE V3.0 provides for invoking CMS from the LSE command line usingF the CMS command. Also, when LSE must acce qss a file from theF directory that is the user's CMS library, LSE will automatically useF CMS to FETCH the file. LSE also has a RESERVE command to reserve theF element in your current CMS library that has the same name and typeF as the file associated with your current buffer. The UNRESERVE andF REPLACE commands also provide the corresonding CMS operation for the file in your current buffer.F See the manual for information "File Manipulation" and forF descriptions of r the following new or enhanced commands related to source code management and CMS: CMS GOTO FILE GOTO SOURCE READ REPLACE RESERVE SET CMS UNRESERVE 2 PatternsD The three pattern styles VMS, ULTRIX and TPU can be used in searchE and substitute commands. The pattern style is set by the SET SEARCH command.3 VMSG The VMS pattern style enables the special interpretation of wildcard E characters and a quote charactser in the search-string parameter as  shown below: VMS-Style Wildcards Wildcard Matches@ * One or more characters of any kind on a line.E ** One or more characters of any kind crossing lines.& % A single character.' \< Beginning of a line.! \> End of a line.C \[set-of- Any character in the specified set. For example,A characters] \[abc] matches any letter in the sett "abc" andC \[c-t] matches any letter in the set "c" through "t."C \[~set-of- Anything not in the specified set of characters. characters]D \ Lets you specify the characters \,*,% or ] withinD wildcard expressions. For example, \\ matches the+ backslash character (\).C \. Repeats the previous pattern zero or more times,* including the original.>u \: Repeats the previous pattern at least once,E including the original; that is, a null occurrence" does not match.B \w Any empty space created by the space bar or tab@ stops, including no more than one line break.% \d Any decimal digit.# \o Any octal digit.) \x Any hexadecimal digit.? \a Any alphabetic character, including accentedA v letters, other marked letters, and non-English letters.. \n Any alphanumeric character.> \s Any character that can be used in a symbol:= alphanumeric, dollar sign, and underscore.( \l Any lowercase letter.( \u Any uppercase letter.- \p Any punctuation character.B \f Any formatting characters: backspace, tab, lineF feewd, vertical tab, form feed, and carriage return.) \^ Any control character.G \+ Any character with bit 7 set; that is, ASCII decimal/ values from 128 through 255.E For example the following command will find a line starting with an uppercase letter: SEARCH/PATTERN "\<\u"3 ULTRIXA The ULTRIX pattern style enables the special interpretation of A wildcard characters and a quote character in the search-string  paraxmeter as shown below: ULTRIX-Style Wildcards Wildcard Matches& . A single character.' ^ Beginning of a line.! $ End of a line.C [set-of- Any character in the specified set. For example,F characters] [abc] matches any letter in the set "abc" and [c-t]A matches any letter in the set "c" through "t."C [^set-of- Anything not in the specified set of characters. charactyers]F \ Lets you specify the characters \,.,^,$,[,],or * inD wildcard expressions. For example, \\ matches the+ backslash character (\).C * Repeats the previous pattern zero or more times,* including the original.> + Repeats the previous pattern at least once,E including the original; that is, a null occurrence" does not match.C For example the zfollowing command will find a line starting with a, b or c: SEARCH/PATTERN "^[abc]"3 TPUB The TPU pattern style enables the use of TPU patterns. For full E details of TPU patterns see the DEC Text Processing Utility Manual. 1. Simple examplesC The first example searches for abc or def and the second example 3 substitutes all occurrences of abc or def by ghi: $ SEARCH/PATTERN "'abc' | 'def'" 6 SUBSTITUTE/PATTERN/ALL "'abc' | 'def'" "'ghi'"{ 0 In the examples 'abc', 'def' and 'ghi' are TPU8 strings and | is the TPU pattern alternation operator. 6 The outermost quotes in the examples must be omitted: if the parameters are prompted for or if a dialog box is used. 2. Search string@ The search string is a TPU expression that must evaluate to a  TPU pattern. 3. Replace stringA The replace string is a TPU expression that must evaluate to a TPU string.* 4. Partial pattern assignment variables|; Partial pattern assignment variables allow a substitution( to be a function of the found pattern. ; For example, the following command replaces a date of the2 form yyyy/mm/dd with one of the form dd/mm/yyyy:  SUBSTITUTE/PATTERN -7 "(_year@_v1)+'/'+(_month@_v2)+'/'+(_day@_v3)" -- "str(_v3)+'/'+str(_v2)+'/'+ str(_v1)" 9 when applied to: 1998/04/21 generates: 21/04/1998 5 In the above example _year, _month and _day are TPU7 variables holding }patterns that match the year, month7 and day parts of a date, for details of how to set up these variables see Section 8. ; @ is the TPU partial pattern assignment operator and _v1,; _v2 and _v3 are partial pattern assignment variables that* are set to the found year, date and day. 9 A partial pattern assignment variable holds a TPU range; and when used in the replacement string must be converted* to a string using the TPU procedure STR. : For example, the following c~ommand will prefix any lines: that start with any three characters from ABCDEFGHI with XYZ_ :  SUBSTITUTE/PATTERN/ALL -1 "LINE_BEGIN + (ANY('ABCDEFGHI',3)@_v1)" - "'XYZ_'+ str(_v1)" 5 when applied to: abc generates: XYZ_abc1 012 0128 defghi XYZ_defghi 7 In the above example LINE_BEGIN is a TPU keyword that: matches the beginning of a line and ANY is a TPU pattern 9 procedure that matches a specified number of characters% from a specified set of characters. 5. New line; A new line will be generated for each line feed character9 in the replacement string, a line feed character can be9 introduced by means of the TPU procedure ASCII with the value 10 as a parameter. 9 For example, to replace any numbers at the end of lines9 with the string 'xxx' (a line feed is necessary because3 the search pattern includes the end of the line):  SUBSTITUTE/PATTERN/ALL - "_n + LINE_END" - "'xxx' + ASCII(10)" 5 when applied to: 123 456 generates: 123 xxx1 789 xxx 5 In the above example LINE_END is a TPU keyword that< matches the end of a line and _n is TPU variable holding a pattern that matches a number. 9 When a partial pattern assignment variable is converted9 to a string by the TPU procedure STR an optional second4 parameter can be set to ASCII(10) to cause any end7 of lines in the range described by the variable to be: converted to line feed characters (without the parameter8 they are represented by the null string). For example:  SUBSTITUTE/PATTERN/ALL -< "(LINE_BEGIN + _n + LINE_END + _n + LINE_END)@_v1" -3 "STR(_v1, ASCII(10)) + STR(_v1, ASCII(10))" 1 when applied to: 123 generates: 1231 456 4561  1231 456 > Carriage return characters adjacent to line feed characters ( in the replacement string are ignored. 6. Errors4 The search and replace strings are TPU expressions9 which have to be evaluated and may generate various TPU* compilation / evaluation error messages. 9 The following error messages are generated for invalid  search or replace strings:  Error in search pattern Error in replacement string 9 These messages will normally be preceded by various TPU9 error messages. For example, the search string "'aaa' +4 bbb" would result in the following error messages: ! Undefined procedure call BBB5 Operand combination STRING + INTEGER unsupported Error in search pattern 7. Global variables< Partial pattern assignment variables and pattern variables9 (such as _year in an earlier example) need to be global: and must not clash with any TPU global variables used by9 LSE. This can be achieved by starting any such variable% names with an underscore character. 8. Pattern variables: Any complicated search or substitution is likely to need8 various pattern variables to have already been set up.' This can be achieved in various ways. : The definitions can be setup by issuing DO/TPU commands, for example: # DO/TPU "_digits:='0123456789'"" DO/TPU "_digit:=any(_digits)"# DO/TPU "_year:=any(_digits,4)" ( DO/TPU "_month:=any('01',1)+_digit"( DO/TPU "_day:=any('0123',1)+_digit" DO/TPU "_n:=span(_digits)"8 The file LSE$PATTERNS.TPU in the LSE$EXAMPLE directory: contains some examples of patterns which can be added to) LSE by means of the following commands:+ GOTO FILE LSE$EXAMPLE:LSE$PATTERNS.TPU EXTEND *& DO/TPU "LSE$PATTERNS_MODULE_INIT" ) 9. Use for developing DTM user filters< The user defined filters global replace feature introduced7 in Digital Test Manager for OpenVMS Version V4.0 can 9 be simulated using the SUBSTITUTE/PATTERN/ALL command. 7 This allows DTM user defined filters to be developed  interactively using LSE. 9 For example, to replace any numbers at the end of lines with the string 'xxx':  global_replace( _n + LINE_END, 'xxx' + ASCII(10), NO_EXACT, OFF, ON);6 The LSE equivalent (assuming that the current search, attributes are equivalent to NO_EXACT) is: SUBSTITUTE/PATTERN/ALL - "_n + LINE_END" - "'xxx' + ASCII(1O)"8 The LSE equivalent of the pattern to replace parameter8 (first parameter of the global_replace routine) is the5 same except that the parameter has to be in quotes.8 The LSE equivalent of the replacement string parameter< (second parameter) is the same if the evaluate replacement6 parameter (fourth parameter) is set to ON and is the7 same except that the parameter has to be in quotes if3 the evaluate replacement parameter is set to OFF.8 The LSE equivalent of the search mode parameter (third9 parameter) is the setting of the search options (set by the SET SEARCH command).; LSE does not have equivalents of the evaluate replacement7 parameter (fourth parameter) or the convert linefeeds6 parameter (fifth parameter). It always evaluates the5 replacement string parameter and it always converts; linefeed characters (and ignores adjacent carriage return characters).ww^ 1 Release_Notes1 Release notes for LSE are contained in the file:' SYS$HELP:LSEvvu.RELEASE_NOTESK The product name is followed by the version number (vvu). ForK example, the following is the release notes file for Version 4.6 of LSE.' SYS$HELP:LSE046.RELEASE_NOTESwwȯ 1 ALIGN< Aligns comments within the current selected range without performing a fill operation. Format ALIGN 2 Qualifier/COMMENT_COLUMN+ /COMMENT_COLUMN=CONTEXT_DEPENDENT (D) /COMMENT_COLUMN=numberA The /COMMENT_COLUMN=CONTEXT_DEPENDENT qualifier specifies that@ the comment column should be determined from the context. LSEC finds the first trailing comment in the range, uses the starting> position of that comment as the comment column, and adjustsA all subsequent comments to conform with the first. This is the default.E The /COMMENT_COLUMN=number qualifier specifies the column in which@ to align the comments. All trailing comments in the range areE aligned with the specified column number, which must be an integer ranging from 1 to 131.wwȯ 1 ANALYZE? [SCA Command] Creates an analysis data file that describes a source file. Format! ANALYZE  file-spec[, . . .] 2 Qualifiers/DESIGN /DESIGN[=design-option] /NODESIGN (D)B Indicates that the source file should be processed as a program6 design language. The design options are as follows:@ COMMENTS The ANALYZE command looks inside comments forA design information. Information about commentsD is included in the analysis data file. Any errors) detected are reported.8 NOCOMMENTS T he ANALYZE command ignores comments.A PLACEHOLDERS The ANALYZE command treats LSE placeholders asA valid syntax. Placeholders are reported in the& analysis data file.C NOPLACEHOLDERS The ANALYZE command does not report placeholdersA in the .ANA file. It does not report errors if0 placeholders are encountered.@ If you specify the /DESIGN qualifier, the default is /DESIGN=E (COMMENTS,PLACEHOLDERS). If you do not specify this qualifier, the default is /NODESIGN. /LANGUAGE /LANGUAGE=language= Specifies the language of the source file. By default, theE language is that which is specified by the file type of the source file./LOG /LOG (D) /NOLOG4 Indicates whether each analyzed file is reported./OUTPUT /OUTPUT[=file-spec] /OUTPUT=file-name.ANA (D)A Specifies the analysis data file to be created. The default is /OUTPUT=@ filename.ANA, where file-name is the name of the first source3 file specified as the parameter to this command. 2 Parameterfile-spec[, . . . ]E Specifies the files to be analyzed. You can use wildcards with theE file-spec parameter. Within LSE, the current buffer is analyzed by default.ww$ɯ 1 ATTACHD Allows you to switch control of your terminal to another process.& NOTEB This function is not available in DECwindows; any attempt to invoke it incurs an error. Format ATTACH [subprocess-name] 2 Parametersubprocess-nameE Specifies the name of the process to which you want to connect. IfD you do not specify a process name, LSE connects you to the parent process.ww$ɯ 1 BOXE Performs the box operation specified by the option word on the boxF defined by the current selection. The diagonally opposite corners B of the box are given by the beginning and end positions of the selection. Format BOX option2 COPYI Copies the selected box, without removing it, to the default location . (the DECwindows clipboard or paste buffer). Format BOX COPY 2 CUTA Cuts the selected box to the default location (the DECwindows  clipboard or paste buffer). Format BOX CUT 3 Qualifier/PADB Indicates that the area of the cut is to be padded with spaces.2 DRAWG This command draws a box in overstrike mode. The box is drawn using I '+' for the corners, '|' for the sides and '-' for the top and bottom. Format BOX DRAW 2 LOWERCASED Changes the case of the text in the selected box to be lowercase. Format BOX LOWERCASE2 PASTEK This command pastes the contents of the default location (the DECwindowsF clipboard or paste buffer) to a box with its top left corner at the current cursor po!sition. Format BOX PASTE 3 Qualifier /OVERSTRIKE@ Indicates that the paste is performed in overstrike mode, the default is insert mode. 2 UPPERCASED Changes the case of the text in the selected box to be uppercase. Format BOX UPPERCASEwwKɯ 1 CALL; Calls the indicated VAX Text Processing Utility (VAXTPU) procedure. Format9 CALL VAXTPU-procedure-name [additional-parameters] 2 ParametersVAXTPU-procedure-name? Indicates the name of the VAXTPU procedure you want to call.additional-parametersA Contains information to be passed to the procedure as a singleB string. The called procedure must then parse and interpret this string.wwKɯ 1 CANCEL? Cancels the effect of the item specified by the option word. Format CANCEL option2 MARK: Cancels the indicated marker set by a SET MARK command. Format CANCEL MARK [marker-name] 3 Parameter marker-name= Names the marker to be canceled; a wildcard marker name isD allowed. If you do not specify a name for the marker, LSE cancels- any marker at the current cursor position.2 SELECT_MARK= Cancels the selected range of the SET SELECT_MARK command. Format CANCEL SELECT_MARKwwKɯ 1 CAPITALIZE2 WORDC Capitalizes the first letter of the current word, or words, in a selected range. F!ormat CAPITALIZE WORDwwKɯ 1 CENTER2 LINE? Centers the current line between the left and right margins. Format CENTER LINEwwKɯ 1 CHANGE< Changes aspects of the item specified by the option word. Format CHANGE option2 CASEA Changes the case of a letter, or letters, in a selected range. Format CHANGE CASE 2 DIRECTION> Changes the current direction of the current buffer b etween forward and reverse. Format CHANGE DIRECTION2 INDENTATION6 Adds or removes leading blanks and tabs from lines. Format CHANGE INDENTATION 3 Qualifiers/CURRENT /CURRENT (D)A Specifies the current direction for the change in indentation./FORWARDA Specifies the forward direction for the change in indentation./HOLD /HOLD (D) /NOHOLDB Specifies whether or not the selected range is canceled by thisB command. You use the /HOLD qualifier to keep the selected rangeA active so that you may repeat this command to make incremental changes in indentation./REVERSEA Specifies the reverse direction for the change in indentation.2 TEXT_ENTRY_MODE@ Switches the mode of text-entry in the current buffer between insert and overstrike. Format CHANGE TEXT_ENTRY_MODE2 WINDOW_MODEA Switches between reducing and increasing the number of windows displ ayed on the screen. Format CHANGE WINDOW_MODEwwrɯ 1 CHECK@ Checks the validity of the item specified by the option word. Format CHECK option 2 LANGUAGEB Analyzes the definitions associated with a language and reports errors. Format" CHECK LANGUAGE language-name 3 Qualifiers /DEFINITIONS /DEFINITIONS (D)B Specifies that the CHECK LANGUAGE command report the following: o Undefined tokens o Undefined placeholders o Unreferenced placeholders9 o Package routines with the same name as placeholders5 o Package parameters with the same name as tokens@ o Parameters defined with the same name in multiple packages> o Routines defined with the same name in multiple packages o Invalid topic strings/HELP_INTERFACEA Specifies that the CHECK LANGUAGE command report invalid topic strings. 3 Parameter language-nameA Specifies the name of the language whose definitions are to be( checked. Wildcards are not permitted.3 Restrictions? The /DEFINITIONS and /HELP_INTERFACE qualifiers are mutually exclusive.wwrɯ 1 CLOSE 2 BUFFER) Writes and deletes the current buffer. Format CLOSE BUFFERwwrɯ 1 CMSC Invokes VAX DEC/Code Management System (CMS) to enable any valid* CMS command to execute from within LSE. Format CMS [cms-command] 2 Parameter cms-commandA Specifies any valid specification for a CMS command, including valid qualifiers.wwrɯ 1 COLLAPSE2 Compresses text at the current cursor position. Format COLLAPSE 2 Qualifier/DEPTH /DEPTH=n /DEPTH=1 (D)E Compresses the text at the current cursor position up n levels. IfC you specify the value ALL, this qualifier compresses the text at+ the cursor position as much as possible.E Note that when you use the COLLAPSE command in query buffers, this1 command does not support the /DEPTH qualifier.wwɯ 1 COMPILEA Lets you compile the contents of a buffer without leaving LSE. Format COMPILE [command-string] 2 Qualifier/REVIEW /REVIEW /NOREVIEW (D)A Tells LSE whether or not to wait for the spawned subprocess to@ complete and then to automatically review any errors reported= by the co mpiler. If you do not specify this qualifier whenB compiling, you can use the REVIEW command to display any errors after compilation.C By default, the COMPILE command completes as soon as compilationE starts. Specifying the /REVIEW qualifier causes the review process- to occur as soon as compilation completes. 2 Parametercommand-string? Specifies the DCL command line to be executed. If you do notE specify a command string, LSE uses the command string specified in D the definition of the language associated with the current buffer5 (see the DEFINE LANGUAGE/COMPILE_COMMAND command).= If you specify a dollar sign ($) as the first argument on= the COMPILE command, LSE replaces the dollar sign with theB default COMPILE command. With this feature, you can append file> specifications or command qualifiers to the default COMPILE> command without having to type the entire command yourself.A If the command string or the string specified o n the /COMPILE_B COMMAND qualifier contains LSE$FILE, then LSE forms the commandE used to compile the buffer by substituting, for LSE$FILE, the fileC specification that corresponds to the buffer. With this feature,@ you can insert text on the command line immediately after theC file specification and before the /DIAGNOSTICS qualifier. If theB COMPILE command does not contain LSE$FILE, then LSE appends the? file specification to the string specified on the qualifier.wwɯ 1 CONTINUEA Ends command entry and returns control to keypad-mode editing. Format CONTINUEwwɯ 1 CONVERT 2 LIBRARY@ [SCA Command] Converts the specified library from Version 1.n format to Version 2.0 format. Format7 CONVERT LIBRARY directory-spec1 [directory-spec2] 3 Parametersdirectory-spec1C Specifies the directory specification of the Version 1.n library to be converted.directory-spec2 D Specifies the directory in which the Version 2.0 library is to beD created. If this parameter is omitted, the new library is createdE in the directory specified by directory-spec1, and the old libraryC is deleted. If this parameter is specified and is different from3 directory-spec1, the old library is not deleted.wwɯ 1 CREATE 2 LIBRARYA [SCA Command] Allocates and initializes VMS library files in aB specified directory. The new library then becomes an active SCA library. Format. CREATE LIBRARY directory-spec[, . . . ] 3 Qualifiers/AFTER /AFTER=library-specE Instructs SCA to insert the new library or libraries into the listC of active SCA libraries following the library you specify as theB value of the qualifier. If you do not specify a value, SCA adds3 the library or libraries to the end of the list./BEFORE /BEFORE=library-specE Instructs SCA to insert the new library or libraries into the listE of active SCA libraries in front of the library you specify as theB value of the qualifier. If you do not specify a value, SCA adds9 the library or libraries to the beginning of the list./LOG /LOG (D) /NOLOGE Indicates whether SCA reports the successful creation of a library. and the resulting list of active libraries./MODULES /MODULES=module-count /MODULES=25 (D); Specifies an estimated number of modules in the library./REPLACE /REPLACE /NOREPLACE (D)@ Indicates whether SCA replaces an existing library with a new (empty) library./SIZE /SIZE=block-count /SIZE=1000 (D)- Specifies an estimated size for a library. 3 Parameterdirectory-spec[, . . . ]E Specifies one or more directories in which library files are to be allocated and initialized.wwɯ 1 CUT> Moves or copies the selected range to the indicated buffer. Format CUT 2 Qualifiers/APPEND /APPEND /NOAPPEND (D)E Indicates whether the moved text should be appended to the currentA contents of the receiving buffer or should replace the current$ contents of the receiving buffer./BUFFER /BUFFER=buffer-name /BUFFER=$CLIPBOARD /BUFFER=$PASTE (D)? Specifies the buffer to receive the text being moved. If theE /REPLACE or /SUBSTITUTE qualifier is specified, then the indicatedE buffer supplies text to replace text being erased from the current buffer. /CLIPBOARDD Specifies that the DECwindows clipboard should be used to receive@ the text being moved, instead of a buffer. The /CLIPBOARD and- /BUFFER qualifiers are mutually exclusive./ERASE /ERASE (D) /NOERASEA Specifies whether or not the moved text should be deleted fromC the current buffer. If the current buffer is not modifiable, LSE@ changes the /ERASE qualifier to /NOERASE and performs the CUT@ operation. LSE then displays the message "CUT in unmodifiable" buffer changed to CUT/NOERASE."/REPLACED Erases the selected text and replaces it with the contents of the indicated buffer. /SUBSTITUTEA Erases the search string, replaces it with the contents of the@ buffer indicated in the /BUFFER qualifier, and finds the nextE occurrence of the string. To use this qualifier, do the following:E 1. Issue the SET SELECT_MARK command (press the SELECT key) at the command prompt.& 2. Type the new text in the buffer.@ 3. Issue the CUT command (press the CUT or REMOVE key) at theC command prompt. This places the text in the indicated buffer.B 4. Issue the SEARCH command (press the FIND key) at the command= prompt, followed by the text you want to search for and replace. 5. Press the ENTER key.B 6. Issue the CUT/SUBSTITUTE command (press the SUBS key) at the command prompt.D Subsequently, each time you issue the CUT/SUBSTITUTE command, LSEE makes one substitution and finds the next occurrence of the search string.wwɯ 1 DCL; Executes a DCL command from within your editing session. Format DCL dcl-command 2 Parameter dcl-commandB Specifies the DCL command to be executed. If you do not specify@ a command, LSE prompts for one. Pressing CTRL/Z at the prompt cancels the operation.A LSE splits the window to show the DCL buffer. You can edit theB DCL buffer to move the output from the DCL command into another? buffer. You can use the ONE WINDOW command to remove the DCL window.wwɯ 1 DEFINE1 Defines the item specified by the option word. Format DEFINE option 2 ADJUSTMENTA Defines the behavior of the LSE viewing commands on individual lines of a source file. Format1 DEFINE ADJUSTMENT adjustment-name [pattern] 3 Qualifiers /COMPRESS /COMPRESS (D) /NOCOMPRESSB Avoids compressing groups and overrides indentation. If a groupC of lines begins with a /NOCOMPRESS line, then the group is never compressed./COUNT /COUNT (D) /NOCOUNTC Controls whether the matching line contributes to the line countD for the group. When determining whether to form a group, the lineC count is compared with the minimum_lines value for the language.< See the description for DEFINE LANGUAGE/OVERVIEW_OPTIONS= MINIMUM_LINES./CURRENT /CURRENT=number /CURRENT=0 (D)@ Adjusts the indentation of the current line. If a buffer lineB matches an adjustment defined with the /CURRENT qualifier, thenB the indentation of the buffer line is adjusted by the number ofD columns given as the qualifier value. A positive value causes theC indentation to be adjusted to the right; a negative value causesB the indentation to be adjusted to the left. For example, DEFINEA ADJUSTMENT then /CURRENT=1 means "Adjust each line that begins1 with the word 'then' one column to the right."B See the DEFINE LANGUAGE/OVERVIEW_OPTIONS=TAB_RANGE description./INHERIT /INHERIT=inherit-keyword /NOINHERIT (D)D Specifies that the indentation for the current line is taken from, the adjusted indentation of another line.A You can specify one of the following keywords to determine the# inden tation of the current line: Keyword DescriptionD MAXIMUM The visible indentation for the current line is takenC from the adjusted indentation of either the previous: line or the next line, whichever is larger.D MINIMUM The visible indentation for the current line is takenC from the adjusted indentation of either the previous; line or the next line, whichever is smaller.D NEXT The visible indentation for the current line is taken> from the adjusted indentation of the next line.D PREVIOUS The visible indentation for the current line is takenB from the adjusted indentation of the previous line.D You cannot specify the /INHERIT qualifier with either the /PREFIX* qualifier or the /SUBSEQUENT qualifier. /LANGUAGE /LANGUAGE=language-nameE Specifies the language associated with the indentation adjustment.E By default, the new adjustment is associated with the language forB the current buffer. If there is no language associated with the< current buffer, then the /LANGUAGE qualifier is required. /OVERVIEW /OVERVIEW (D) /NOOVERVIEW> Controls whether or not the text of the line is used as theB overview line. If a line matches an adjustment defined with theA /NOOVERVIEW qualifier, then the text of the line is never usedB as the overview text for compressed lines. Instead, text from aE later line is used as the overview text. The /NOOVERVIEW qualifierC is used to prevent uninformative text from appearing in overview lines./PREFIX3 /PREFIX=(indentation-value, adjustment-value) /NOPREFIX (D)> Provides a way to skip a pattern at the beginning of a line@ to determine indentation or influence adjustment. The /PREFIX0 qualifier takes the following pair of values: Indentation-value Adjustment-value6 Indentation-value is one of the following keywords:D o CURRENT-Instructs LSE to use the indentation of the first text1 in the pattern-the beginning of the prefix.E o FOLLOWING-Instructs LSE to use the indentation of the text thatC follows the prefix. If there is no text after the prefix, use$ the indentation of the prefix.5 Adjustment-value is one of the following keywords:B o CURRENT-Instructs LSE to use the adjustment qualifier values& given on the current definition.D o FO LLOWING-Instructs LSE to use the adjustment qualifier valuesE from the definition that matches the text following the prefix.E If no text follows the prefix on the current line, LSE uses theE qualifier values for a blank line. If /PREFIX has an adjustmentC value of FOLLOWING, other action qualifiers on the definition are ignored.D The combination (CURRENT,CURRENT) is not useful because it causesE both the indentation and the adjustments to be taken from the textA at the beginning of the pattern. This is the same as having no prefix at all.= You cannot specify the /PREFIX qualifier with the /INHERIT qualifier. /SUBSEQUENT /SUBSEQUENT=number /SUBSEQUENT=0 (D)@ Adjusts the indentation of lines after the current line. If aA buffer line matches an adjustment defined with the /SUBSEQUENT? qualifier, then the indentation of all lines after the givenC one are adjusted by the number of columns given as the qualifierC value. A positive value causes the indentation to be adjusted toD the right; a negative value causes the indentation to be adjusted to the left.D Use the /SUBSEQUENT qualifier for language constructs that denoteC nesting and have well-defined endpoints. Use a positive value atB the beginning of the construct and a negative value at the end.A You cannot specify the /SUBSEQUENT qualifier with the /INHERIT qualifier./UNIT /UNIT /NOUNIT (D)E Treats consecutive lines as a single unit. If consecutive lines inD the buffer match adjustments defined with the /UNIT qualifier andD have the same adjusted indentation, then the sequence of lines isE treated as one group, with the first serving as the overview line.@ Notice that it is not required that all elements of the groupE match the same adjustment definition; it is only required that the7 /UNIT qualifier be specified on all the definitions. 3 Parameters adjustment-name6 Specifies the name of the adjustment being defined.patternD Specifes the string that LSE compares against source lines. If no: pattern is used, the adjustment-name parameter is used.B Pattern strings match any string that can be specified directly? on the command line. Strings with special characters must beB enclosed in quotes (" "). Whether the string is quoted or not,= the comparison is case-insensitive. You must use the "$()"0 convention to enclose named pattern elements.D Definitions with literal strings take precedence over definitions with predefined patterns.) A list of predefined patterns follows:D o COLUMN=(first-column[,last-column])-Limits the column in which the text may start.? You can specify either the first column or both the first? column and the last column. If you specify both the first= and last columns, you must enclose the column values inB parentheses. If you do not specify the last column, it takes( its default from the first column.= o IDENTIFIER-Matches a sequence of identifier characters.A o LINE_END-Matches the end of a line, optionally preceeded by white space.= o OPTIONAL_SPACE-Matches any sequence of spaces and tabs.- o FORMFEED-Matches a form-feed character.9 o FORTRAN_COMMENT-Matches only FORTRAN comment lines.= o FORTRAN_FUNCTION- Matches the first line of any FORTRAN> function subprogram. That is defined to be any line that$ matches the following pattern:# type [*number] FUNCTION where type :== BYTE# | LOGICAL# | INTEGER | REAL, | DOUBLE PRECISION# | COMPLEX* | DOUBLE COMPLEX% | CHARACTER% NUMBER :== {DIGIT}...  | (*); o PREFIX-The preceding part of the pattern is a prefix.@ o NUMBER-Matches any sequence of digits. White space may notD appear between digits. In the case of a match with both NUMBER. and IDENTIFIER, NUMBER takes precedence.2 ALIASE Lets you assign an abbreviated sequence of characters to representB a longer string of text. You may then use the EXPAND command toB produce the longer string each time the cursor is at the end of the abbreviated sequence. Format& DEFINE ALIAS alias-name [value] 3 Qualifiers /INDICATEDC Instructs LSE to interpret the contiguous sequence of charactersD before and after the cursor as the alias (long form) for an aliasA name (short form) that you supply. To specify which charactersE are valid in an alias name for the language you are using, issue aE DEFINE LANGUAGE command with the /IDENTIFIER_CHARACTERS qualifier.B When you use the /INDICATED qualifier, you must not specify the value parameter. /LANGUAGE /LANGUAGE=language-nameC Specifies the language associated with the alias. The default is' the language for the current buffer. 3 Parameters alias-nameB Specifies the name to be defined as an alias. The characters inE the alias name must be in the /IDENTIFIER_CHARACTERS string in the DEFINE LANGUAGE command.valueE Specifies a quoted string. When you expand the alias, LSE replaces? the alias name with the string given by the value parameter.C You must not use a value parameter if you specify the /INDICATED qualifier. 2 COMMAND@ Defines a user command or an abbreviation for an LSE command. Format2 DEFINE COMMAND command-name value-string 3 Parameters command-nameD Specifies the name to be defined as a command. A command name mayA contain up to 255 characters, but must begin with a letter, anC underscore, or a dollar sign. After the first character, you mayB use any combination of alphanumeric characters, underscores, or dollar signs. value-stringE Specifies a quoted string containing an LSE command or the leading portion of an LSE command.2 KEY! Binds an LSE command to a key. Format) DEFINE KEY key-specifier string 3 Qualifiers/DIALOG@ Specifies that a dialog box should be used to prompt the userB for parameters and qualifier values. The command parameters areA optional if this qualifier is specified. If command parameters? and qualifiers are specified with the /DIALOG qualifier, theA parameters and qualifiers are used to set the initial state of the dialog box. /IF_STATE /IF_STATE=GOLD /NOIF_STATE (D)C Specifies that the key definition applies only to the GOLD (PF1) state./LEARND Indicates that a sequence of keystrokes, called a learn sequence,> defines the command to be bound to a key. You must type the? keystroke sequence immediately after the command and end theB sequence by specifying the END DEFINE command. If you are using? the EVE keypad, CTRL/R is bound to the END DEFINE command by> default. However, you do not have to define a key to be theC END DEFINE command to use the DEFINE KEY/LEARN command. When LSEB records the learn sequence, the key being defined by the DEFINED KEY/LEARN command binds to the END DEFINE command. Therefore, youE can press the key that you are defining to end the learn sequence.E When executing the stored sequence, LSE includes your responses toD all prompts but does not prompt you again for such information as# the string for a SEARCH command.C You may not use a learn sequence to enter a key definition whileB another key is in the process of being defined by another learn sequence./LEGEND /LEGEND=string /LEGEND=?< Specifies the text that appears in the keypad diagram forA this key. The string is centered in the figure for the key, or6 truncated if the string is too long for the figure.A If you do not specify the /LEGEND qualifier with a string, the default is /LEGEND=?./REMARK /REMARK=(string, . . . )D Specifies the explanatory text that is displayed when you issue a SHOW KEY/FULL command./STATE /STATE=GOLDB Moves the functionality of the GOLD (PF1) key to the named key.? You cannot specify the string parameter with the /STATE=GOLD qualifier. /TOPIC_STRING /TOPIC_STRING=string /TOPIC_STRING=No_Topic (D)B Specifies the string that the editor uses to retrieve help text= for this key for display through the HELP /KEYPAD command.C If you do not specify a string with the /TOPIC_STRING qualifier,) the default is /TOPIC_STRING=No_Topic. 3 Parameter key-specifierC Specifies a keyword that indicates the key to be defined. If youD use the DEFINE KEY command to change the definition of a key thatE was previously defined, LSE does not save the previous definition.stringC Specifies an LSE command to be executed when the key is pressed.D This is a required parameter unless you use the /LEARN qualifier;= you cannot use the string parameter with either the /LEARN* qualifier or the /STATE=GOLD qualifier. 2 KEYWORDS& Defines the indicated keyword list. Format' DEFINE KEYWORDS keyword-list-name keyword [/DESCRIPTION=text]  . . . keyword [/DESCRIPTION=text] END DEFINE 3 Qualifier /DESCRIPTION /DESCRIPTION=textC Indicates the text to be associated with the individual keyword. 3 Parameterskeyword-list-name> Identifies the keyword list. The name must follow the rulesB applied to token names in LSE. You can then use the name as theB value you specify for the /KEYWORDS qualifier to the DEFINE TAGE command, as well as the parameter for the DELETE KEYWORDS, EXTRACT( KEYWORDS, and SHOW KEYWORDS commands.keywordD Names an individual keyword. Each keyword on the list must appear> on a line by itself. You cannot use continuation charactersE between the lines for each keyword, but you can use a continuation< character between a particular keyword and its associated qualifier. 2 LANGUAGE/ Specifies the characteristics of a language. Format$ DEFINE LANGUAGE language-name 3 Qualifiers /CAPABILITIES /CAPABILITIES=DIAGNOSTICS% /CAPABILITIES=NODIAGNOSTICS (D)@ Specifies whether the compiler can generate diagnostic files./COMMENT" /COMMENT=(specifier, . . . )E Specifies the character sequences of comments in the language. The specifiers are as follows:# o ASSOCIATED_IDENTIFIER=keywordD Indicates the preferred association of comments to identifier.2 You can specify one of the following values:C - NEXT-Indicates that comments should be associated with the next identifier.C - PREVIOUS-Indicates that comments should be associated with" the preceding identifier." o BEGIN=list of quoted strings END=list of quoted stringsB Defines the character sequences that start and end bracketedA comments. A bracketed comment begins and ends with explicitE comment delimiters. (Note that the beginning and ending commentE delimiters can be the same, bu t need not be.) The list providedD with the specifiers BEGIN and END can be any of the following:? - A string that is the one open comment sequence for the3 language. You must enclose this in quotes.B - A parenthesized list of strings, each one of which can beD an open comment sequence for the language. You must enclose each one in quotes.B The list accompanying the BEGIN specifier must be consistent@ with the list accompanying the E ND specifier. If the BEGINE specifier lists a string, then the END specifier must also list a string.B Bracketed comments are recognized by the formatting commandsB (see the ALIGN and FILL commands) and placeholder operations= (see the ERASE PLACEHOLDER command and the /DUPLICATION3 qualifier of the DEFINE PLACEHOLDER command).% o TRAILING=list of quoted stringsB Defines the character sequence that introduces line-oriented= comments. A li ne-oriented comment begins with a special? character sequence (consisting of one or more characters)A and ends at the end of the line. The list provided with the5 TRAILING specifier can be any of the following:? - A string that is the one-line comment sequence for the language.C - A list of strings enclosed in parentheses; each string can5 be a line-comment sequence for the language.A Line comments are recognized by the formatting commands and= placeholder operations, just as bracketed comments are.! o LINE=list of quoted stringsE Requires that the comment delimiter be the first character thatB is not blank on the line. The LINE specifier is particularly8 useful with block comments, such as the following: /*/ ** Here is the inside of a comment- ** which has LINE="**" specified */( o FIXED=quoted string, column number= Used for languages that require that a specific commentE delimiter be placed in a specific column, such as FIXED=("*",1) for COBOL.D Note that for the specifier you cannot use any character that you4 used in the /PLACEHOLDER delimiter-specification./COMPILE_COMMAND /COMPILE_COMMAND=stringE Specifies the default command string for the COMPILE command. (SeeA the explanation of the command-string parameter in the COMPILE command entry.) /EXPAND_CASE /EXPAND_CASE=AS_IS (D) /EXPAND_CASE=LOWER /EXPAND_CASE=UPPER? Specifies the case of the text of the inserted template. AS_@ IS specifies that the inserted template be expanded according@ to the case in the token or placeholder definition. LOWER andD UPPER specify that the inserted template be expanded lowercase or uppercase, respectively. /FILE_TYPES' /FILE_TYPES=(file-type[, . . . ])A Specifies a list of file types that are valid for the languageD being defined. The file types must be enclosed in quoted strings.E When LSE reads a file into a buffer, it sets the language for thatD buffer automatically if it recognizes the file type. For example,E a FORTRAN file type (.FOR) sets the language to FORTRAN. Note that< the period character must be included with the file type./FORTRAN /FORTRAN=ANSI_FORMAT /FORTRAN=NOANSI_FORMAT (D)@ Specifies special processing for ANSI FORTRAN. Note that someC commands behave differently when you use the /FORTRAN qualifier.B Specifying NOANSI_FORMAT causes LSE to insert templates in non- ANSI (tab) format. /HELP_LIBRARY /HELP_LIBRARY=file-spec /NOHELP_LIBRARY (D)> Specifies the HELP library where you can find help text for@ placeholders and tokens defined in this language. LSE appliesC the default file specification SYS$HELP:HELPLIB.HLB. If you wantC to access some HELP library other than SYS$HELP, you must supply  an explicit device name./IDENTIFIER_CHARACTERS# /IDENTIFIER_CHARACTERS=stringD Specifies the characters that may appear in token and alias names? in that language. This list of characters is used in various) contexts for the /INDICATED qualifier.= The list of identifier characters also determines what LSE= considers to be a word. A word is a sequence of identifierE characters, possibly followed by one or more blanks. All nonblank,@ nonidentifier characters are considered to be distinct words.B If you do not specify the /IDENTIFIER_CHARACTERS qualifier, LSE, supplies the following values by default:H "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ%$_0123456789"/INITIAL_STRING /INITIAL_STRING=stringB Specifies the initial text that is to appear in a newly created buffer. /LEFT_MARGIN /LEFT_MARGIN=n /LEFT_MARGIN=1 (D)$ /LEFT_MARGIN=CONTEXT_DEPENDENTB Specifies the left margin setting that is to be associated with the language.B If you specify CONTEXT_DEPENDENT as the column number, then LSEA uses the indentation of the current line to determine the leftA margin when you use the /WRAP qualifier. When you use the FILL> command, LSE uses the indentation of the first line of each3 selected paragraph to determine the left margin./OVERVIEW_OPTIONS< /OVERVIEW_OPTIONS=(MINIMUM_LINES=m, TAB_RANGE=(t1,t2))C Specifies both the minimum number of line s an overview line must3 hide and the range of acceptable tab increments.! The specifiers are as follows: o MINIMUM_LINES=mA Specifies the minimum number of lines an overview line must> hide. The default is 1. For example, if the value of theD parameter on MINIMUM_LINES is 5, then a line hides other linesC only if there are at least five lines to hide. This specifierC helps the user to avoid having very small source-line groups,. and thus to avoid many expansion levels. o TAB_RANGE=(t1,t2)C The TAB_RANGE specifier indicates the range of tab values for@ which the adjustment definitions are valid. The default isE (4,8). The second value must be at least twice the first value;A both values must be positive. For example, if the tab range@ is (4,8), then LSE assumes that the adjustment definitionsB will work for any DEFINE LANGUAGE/TAB_INCREMENT value from 4C to 8 inclusive. If you specify  a /TAB_INCREMENT value outside@ the tab range, then LSE recomputes indentation to make the adjustments work.< For best performance, it is recommended that you avoid> recomputation by choosing a range that covers reasonableE values. The numbers specified for the DEFINE ADJUSTMENT/CURRENTE and DEFINE ADJUSTMENT/SUBSEQUENT commands must work for any tab' increment value in the tab range./PLACEHOLDER_DELIMITERSA /PLACEHOLDER_DELIMITERS=(delim iter-specification[, . . . ])C Specifies starting and ending strings that delimit placeholders.E Placeholders can specify single constructs or lists of constructs.? The delimiters for each type of placeholder are specified as? a pair of quoted strings separated by commas and enclosed in parentheses.9 The format of a delimiter specification is as follows:* keyword=(starting-string,ending-string)E Possible keywords are REQUIRED, REQUIRED_LIST, OPTIONAL, OPTIONAL_E LIST, or PSEUDOCODE. If you do not use the PSEUDOCODE keyword, theB default is NOPSEUDOCODE. The maximum length of these strings is seven characters.? The following is an example of a complete set of placeholder delimiter specifications:" /PLACEHOLDER_DELIMITERS = ( - REQUIRED =("{<",">}"), -% REQUIRED_LIST=("{<",">}..."), - OPTIONAL =("[<",">]"), -% OPTIONAL_LIST=("[<",">]..."), - PSEUDOCODE=("" , ""))9 If any of the five keywords are not specified with the? /PLACEHOLDER_DELIMITERS qualifier, LSE applies the following defaults:" /PLACEHOLDER_DELIMITERS = ( - REQUIRED =("{","}"), -# REQUIRED_LIST=("{","}..."), - OPTIONAL =("[","]"), -# OPTIONAL_LIST=("[","]..."), - NOPSEUDOCODE)D The placeholder delimiters that are accepted by each compiler are as follows:1 ADA: { } , { }... , [ ] , [ ]... , , <| |>3 BASIC: { } , { }... , [ ] , [ ]... , , << >>: BLISS: {~ ~} , {~ ~}... , [~ ~] , [~ ~]... , , <~ ~>6 C: {@ @} , {@ @}... , [@ @] , [@ @]... , , <@ @>3 COBOL: { } , { }... , [ ] , [ ]... , , << >>5 FORTRAN: { } , { }... , [ ] , [ ]... , , << >>< PASCAL: %{ }% , %{ }%... , %[ ]% , %[ ]%... , , %< >%1 PL1: { } , { }... , [ ] , [ ]... , , << >>D Note that for the specifier you cannot use any character that you" used in the /COMMENT specifier./PUNCTUATION_CHARACTERS$ /PUNCTUATION_CHARACTERS=string( /PUNCTUATION_CHARACTERS=",;()" (D)B Specifies the characters that are considered punctuation marks,B or delimiters, in the language. When a placeholder name and its@ enclosing brackets are deleted, preceding white space is alsoE deleted if there are punctuation characters to delimit the program constructs. /QUOTED_ITEM4 /QUOTED_ITEM=(QUOTES=string [,ESCAPES=string]) /NOQUOTED_ITEM (D)= Describes the syntax of certain language elements, such asE strings, that require special handling for proper text formatting.C LSE uses the /QUOTED_ITEM qualifier to detect comments properly.D LSE does not acknowledge comment strings that occur within quotedC items, nor does it acknowledge quoted elements that occur within comments.D The value of the /QUOTED_ITEM qualifier indicates the syntax of aC quoted item. This value must be a keyword list. The keywords are as follows: o QUOTES? This keyword i s required and must have an explicit value.A The value must be a quoted string denoting all of the quoteE characters in the language. LSE assumes that quoted items begin& and end with the same character. o ESCAPESD This keyword is optional. If given, then the value is requiredB and must be a quoted string containing the escape characters? for quoted items. Some languages use escape characters to? insert quote characters into strings. For example, C usesA the backslash (\) as an escape character. If you omit this? keyword, then LSE assumes that the language inserts quote/ characters into strings by doubling them. /RIGHT_MARGIN /RIGHT_MARGIN=n /RIGHT_MARGIN=80 (D)C Specifies the right margin setting that is to be associated withB the language. By default, the right margin is set at column 80./TAB_INCREMENT /TAB_INCREMENT=n /TAB_INCREMENT=4 (D)B Specifies that tab stops be set every n columns, beginning with column 1./TAG_TERMINATORS) /TAG_TERMINATORS=(string[, . . . ]) /TAG_TERMINATORS=(":") (D)C Specifies the character sequences that you an use to terminate aC tag. You can use each string in the list of strings to terminate@ a tag. When you use the /DESIGN=COMMENTS qualifier to compileE programs, the compiler uses this information to detect tags inside of comments.? You must not specify a string that ends in whit espace (spaceC characters or tabs). Compilers always allow whitespace between aE tag name and the tag terminator characters. If you want to require@ whitespace between the tag and the tag terminator string, useA a space character as the first character of the tag terminator@ string. HP does not recommend the use of embedded whitespace. /TOPIC_STRING /TOPIC_STRING=string> Specifies a prefix string to be concatenated to the /TOPIC_B STRING qualifier specified in a placeholder or token definitionC before LSE looks up the help text for that placeholder or token.E (Typically, this is the name of the language in the HELP library.)/VERSION /VERSION=string? Specifies a string that represents the version number of theA tokens and placeholders associated with this language. You use4 the SHOW LANGUAGE command to display this string./WRAP /WRAP /NOWRAP (D)B Specifies whether text should be wrapped to a new line when you> are typing beyond the right margin of the current line. The1 /NOWRAP qualifier disables such text wrapping. 3 Parameter language-nameE Specifies the name of the language whose characteristics are to be defined. 2 PACKAGEC Defines a subroutine package for which subroutine call templates are automatically generated. Format" DEFINE PACKAGE package-name 3 Qualifiers /HELP_LIBRARY /HELP_LIBRARY=file-specC Specifies t he HELP file (.HLB file) where you can find help textD for placeholders and tokens defined for this package. If omitted,4 then no HELP file is associated with the package.C LSE applies the default file specification SYS$HELP:HELPLIB.HLB.< If you want to access some device or directory other thanC SYS$HELP, you must supply an explicit device and directory name. /LANGUAGE& /LANGUAGE=(language1 [, . . . ])B Specifies the languages from which LSE can use package entrie s.B If you do not specify a language, then LSE uses the language ofD the current buffer. If no language is associated with the current buffer, then an error occurs./PARAMETER_EXPAND, /PARAMETER_EXPAND=TPU_procedure_prefixB Lets you customize calling sequences. Normally LSE uses a fixed? algorithm to produce the appropriate placeholder definitionsA from the DEFINE PARAMETER command. If the default algorithm is@ inadequate, then you can supply explicit VAXTPU procedures to8 produce the DEFINE PLACEHOLDER command that you want.B The argument provided with the /PARAMETER_EXPAND qualifier mustC be the prefix of a VAXTPU procedure name. Whenever LSE expands aB parameter, it concatenates this prefix and the current language7 name, and looks for a VAXTPU procedure by that name./ROUTINE_EXPAND* /ROUTINE_EXPAND=TPU_procedure_prefixB Lets you customize calling sequences. Normally LSE uses a fixed= algorithm to produce the appropri ate token and placeholder> definitions from the DEFINE ROUTINE command. If the default? algorithm is inadequate, then you can supply explicit VAXTPU? procedures to produce the DEFINE PLACEHOLDER or DEFINE TOKEN commands that you want.@ The argument provided with the /ROUTINE_EXPAND qualifier mustA be the prefix of a VAXTPU procedure name. Whenever LSE expandsB a routine, it concatenates this prefix and the current languageD name, and looks for a VAXTPU procedure by that name. For example,D if you specify /ROUTINE_EXPAND=my_routine_expand_ and the currentC language is FORTRAN, then LSE looks for a VAXTPU procedure named my_routine_expand_fortran. /TOPIC_STRING /TOPIC_STRING=stringC Specifies a prefix string to be concatenated to the TOPIC_STRINGD specified for tokens and placeholders associated with the routineE or parameter definitions. If omitted, then the null string is usedA as the topic string. LSE uses the topic string to look up help text for the package. 3 Parameter package-name3 Specifies the name of the package being defined. 2 PARAMETER( Defines a parameter within a package. Format" DEFINE PARAMETER param-name 3 Qualifier/PACKAGE /PACKAGE=package-name@ Specifies the name of the package with which the parameter is/ associated. You must specify this qualifier. 3 Parameter param-name@ Specifies the name of the parameter. This name must be uniqueC among the tokens of any language from which the package is used.2 PLACEHOLDER= Creates a placeholder for use with a specific language and7 establishes the characteristics of that placeholder. Format* DEFINE PLACEHOLDER placeholder-name placeholder body END DEFINE or* DEFINE PLACEHOLDER placeholder-name% /PLACEHOLDER= other-placeholder 3 Qualifiers/AUTO_SUBSTITUTE /AUTO_SUBSTITUTE /NOAUTO_SUBSTITUTE (D)A Specifies whether you want the next placeholder with this name? to be replaced with the same text you typed over the current placeholder. /DESCRIPTION /DESCRIPTION=stringA Specifies a single line of text to be displayed along with the? placeholder name when the placeholder name appears in a menu during an EXPAND operation. /DUPLICATION /DUPLICATION=specifier( /DUPLICATION=CONTEXT_DEPENDENT (D)= Specifies the type of duplication  to be performed when theA placeholder is duplicated (either by expanding it or by typing< over it). The specifier is one of the following keywords: o CONTEXT_DEPENDENTB If the placeholder is the only item within its segment (that? is, if it is either the only item before or the only itemC within a trailing comment), then LSE duplicates it vertically= (see the VERTICAL keyword in this list). Otherwise, LSEC duplicates it horizontally. White space may precede or follow the placeholder. o HORIZONTAL> LSE places the duplicate immediately to the right of theB original. If you specify a separation string, LSE places the4 string between the original and the duplicate. o VERTICALB LSE places the duplicate on the next line, immediately underC the original. If a separation string is specified, LSE placesC it at the end of the original. If the original placeholder isD in the commented segment of the line, then LSE also duplicates? the comment delimiters directly underneath the delimiters@ in the original line. If necessary, LSE adds close commentE delimiters to the original line to close a bracketed comment on that line. /LANGUAGE /LANGUAGE=language-name= Specifies the language associated with the placeholder. ByC default, the new placeholder is defined for use with the current buffer's language./LEADING /LEADING=stringD Specifies any leading text to be associated with the placeholder.C The ERASE PLACEHOLDER command recognizes this text and erases itA along with the placeholder. The leading text must not have anyE trailing blank spaces because the ERASE PLACEHOLDER command always skips over such spaces. /PLACEHOLDER$ /PLACEHOLDER=other-placeholderD Specifies the name of another defined placeholder from which thisB placeholder inherits its definition. A placeholder defined withB the /PLACEHOLDER qualifier may not be named on the /PLACEHOLDERC qualifier of any other definition. The /PLACEHOLDER qualifier isD mutually exclusive with all other qualifiers except the /LANGUAGE qualifier. /PSEUDOCODE /PSEUDOCODE (D) /NOPSEUDOCODE< Specifies whether pseudocode can be entered at a specific@ placeholder. If you specify the /NOPSEUDOCODE qualifier for a@ placeholder, that placeholder cannot be used with pseudocode. /SEPARATOR /SEPARATOR=string> Specifies the string that separates each duplication of the; placeholder. See the /DUPLICATION qualifier description. /TOPIC_STRING /TOPIC_STRING=string@ Specifies a quoted string that LSE uses to retrieve help textB for this placeholder. This string is appended to the string youB specify with the /TOPIC_STRING qualifier of the DEFINE LANGUAGEB command to form the complete string of topics that LSE uses for1 looking up the help text for this placeholder. /TRAILING /TRAILING=stringE Specifies any trailing text to be associated with the placeholder.C The ERASE PLACEHOLDER command recognizes this text and erases itB along with the placeholder. The trailing text must not have anyD leading blank spaces because the ERASE PLACEHOLDER command always skips over such spaces./TYPE /TYPE=type-specifier /TYPE=NONTERMINAL (D)< Specifies the kind of placeholder being defined. The type3  specifier may be NONTERMINAL, MENU, or TERMINAL. 3 Parametersplaceholder-nameE Specifies the name of the placeholder being defined. A placeholderD name must be unique within a language and can be a quoted string.@ To redefine an existing placeholder, you must first delete it( using the DELETE PLACEHOLDER command.placeholder bodyC Is the body of the placeholder being defined. The interpretationB of the placeholder body depends on the type of placeholder. LSEB displ ays the body of a terminal placeholder when you attempt toB expand the placeholder. Note that displaying this text does not7 replace the terminal placeholder and its delimiters.; The body of a nonterminal placeholder is the text of theE placeholder expansion; when a nonterminal placeholder is expanded,B the placeholder name and enclosing delimiters are replaced with$ the text of the placeholder body.D A nonterminal placeholder can have more than one quoted string inD each body line. For the expansion of the placeholder, you can setE the indentation of each string by using the /INDENTATION qualifier and its associated keywords.C Each quoted string in the body line of a nonterminal placeholderA can take the qualifier and keywords described in the following section. Nonterminal Body Qualifier0 /INDENTATION=(keyword1 [,integer1, keyword2]) keyword1= You can specify any of the following options for keyword1: Option  Description< EXPAND Indents the string to the column of the first= character of the nonterminal placeholder beingD expanded. This is the default value if the first body) line is not a null string.@ CURRENT Indents the string to the indentation of the line? containing the placeholder or token. This is theE default value if the first body line is a null string.@ PREVIOUS Indents the string to the  indentation of the lineC before the line containing the placeholder or token.: FIXED Indents the string to the specified column. integer1C You can specify any integer for the integer1 option. The defaultD is 0. The integer is added to the column position as specified byB keyword1 and adjusts the indentation by that number of columns.E The integer can be negative. When the value for keyword1 is FIXED,D integer1 specifies the column position at which to put body text; it must be positive. keyword2= You can specify any of the following options for keyword2: Option Description= TAB Specifies that integer1 should be interpreted as@ specifying an adjustment in terms of tab increments? rather than columns. Integer1 is multiplied by theC tab increment for the buffer before it is added to the* column specified by keyword1.= SPACE Specifies that integer1  should be interpreted asA specifying an adjustment in terms of spaces. This is the default.B Note that you cannot specify keyword2 when keyword1 has a FIXED value.B If there is more than one quoted string in a body line, a commaE must separate the strings. For FORTRAN, if the body line is insideE of a comment or there is a tab in the body lines, the /INDENTATIONE qualifier and associated keywords do not take effect for the first$ quoted stri ng for each body line.D For more information about the use of the /INDENTATION qualifier,+ see the examples for the EXPAND command.D Each line of the body of a menu placeholder represents one option@ in the menu. An option can be a string of text, a placeholder? name, or a token name. If the option is a string of text, itB must appear in quotes. If the option is a placeholder name or aE token name and does not appear in quotes, that placeholder name orC token name appears in uppercase letters in the menu display. ForB a placeholder name or token name to appear in lowercase lettersD in a menu, you must enter the placeholder name or token name as a lowercase quoted string.C Each line in the body of a menu placeholder may take one or more of the following qualifiers: Menu Body Qualifiers Default /DESCRIPTION=string /[NO]LIST /NOLIST /PLACEHOLDER /TOKEN /DESCRIPTION=stringA Specifies a description s tring that is displayed in the right-B hand column of the menu. If this qualifier is omitted, then LSEC gets the description string from the corresponding definition ifC the line has either the /TOKEN or the /PLACEHOLDER qualifier. IfC neither /TOKEN nor /PLACEHOLDER is specified, then the line is aC literal string and the value of the /DESCRIPTION string defaults to the empty string. /LIST /NOLIST (D)A Specifies whether the delimiters for the placeholder should beA list delimiters or not. Use this qualifier only in conjunction# with the /PLACEHOLDER qualifier. /PLACEHOLDERD Specifies that the name or string is the name of a placeholder inE the language. This qualifier is mutually exclusive with the /TOKEN qualifier. /TOKEN> Specifies that the name or string is the name of a token in> the language. This qualifier is mutually exclusive with the) /PLACEHOLDER and /[NO]LIST qualifiers. 2 ROUTINE@ Defines templates for a routine contained within a subroutine package. Format6 DEFINE ROUTINE routine-name [parameter, . . . ] 3 Qualifiers /DESCRIPTION /DESCRIPTION=stringA Specifies a single line of text to be displayed along with theA routine name when the routine name appears in a menu during an? EXPAND operation. The string is also passed to the /ROUTINE_A EXPAND procedure, if any. (The default algorithm for producingB routine calls from DEFINE ROUTINE commands does not make use of this value.)/PACKAGE /PACKAGE=package_name> Specifies the name of the package with which the routine is/ associated. You must specify this qualifier. /TOPIC_STRING /TOPIC_STRING=stringD Specifies a quoted string that LSE uses to retrieve help text for this routine. 3 Parameters routine-nameB Specifies the name of the routine. Routine names must be uniqueE within a package. Furthermore, routine names ma y not conflict withB any token names used by LSE for any language using the package.parameter, . . .> Specifies the names of the parameters of the routine. TheseB parameters must be defined (using the DEFINE PARAMETER command)E prior to expanding an instance of a call on this routine. However,? the parameters do not need to be defined prior to the DEFINE@ ROUTINE command. If you omit this qualifier, then the routine% is presumed to have no parameters.D The following qualifiers are position-sensitive; they may be used3 only with the list of parameters to the routine. /BY_VALUE3 Indicates that the parameter is passed by value. /BY_REFERENCE5 Indicates that the parameter is passed by address. /BY_DESCRIPTORD Indicates that the address of the parameter descriptor is passed. /[NO]OPTIONAL? Specifies whether the parameter is required or optional. The default is /NOOPTIONAL.B The /BY_VALUE, /BY_REFERENCE, and /BY_DESCRIPTOR qualifiers are> mutually exclusive. These qualifiers are used primarily for@ languages, such as COBOL, that require explicit specification+ of passing mechanisms for routine calls.2 TAG Defines the specified tag. Format DEFINE TAG tag-name 3 Qualifiers/EMPTY /EMPTY=string-list /EMPTY="None" (D)@ Specifies one or more strings that indicate that a use of theB structured tag has no subtags. If you do not specify the /EMPTYC qualifier, then there will be no way to explicitly indicate thatC an occurrence of the tag is empty. You can always use implicitlyD empty tags by starting a new top-level tag after the current top-2 level tag, or by terminating the comment block.> You use this qualifier only with the /TYPE=STRUCTURED case. /KEYWORDS! /KEYWORDS=keyword-list-name@ Defines the keywords that you can use with this tag. You must> specify the keyword-list-name parameter by using th e DEFINEB KEYWORDS command. If you specify the keyword-list-name with theA /KEYWORDS qualifier, the compiler will check that any keywordsC appearing in your source code as the value of this tag belong toD the indicated keyword-list-name. This checking always takes placeB at compile time; the editor does not check keywords as you type them.A If you specify /KEYWORDS=*, this indicates that any keyword is5 allowed and no checking of keywords is to be done.; You use this qualifier only with the /TYPE=KEYWORD case. /LANGUAGE /LANGUAGE=language-nameC Specifies the language associated with the tag being defined. IfD you do not specify a language, the default is the language of the current buffer./SUBTAGS /SUBTAGS=tag-listA Indicates the subtags that can appear in a structured tag. TheA special case /SUBTAGS=* indicates that any tag is allowed. ForC example, you would use this special case for the PARAMETERS tag.> You use this qualifier only with the /TYPE=STRUCTURED case./TYPE /TYPE=type-keyword@ Indicates the type of the tag. You can specify any one of the following types: Keyword Type Description. TEXT Ordinary text tag (default)@ KEYWORD List of keywords to be parsed at compile time3 STRUCTURED Sequence of zero or more subtags 3 Parametertag-nameA Specifies the name of the tag being defined. The tag name mustD consist only of alphanumeric characters, the dollar sign ($), orB the underscore (_), and may contain embedded blanks. Tag namesB are case-insensitive. If you include embedded blanks, place the name inside quotation marks.2 TOKEN< Defines an editing token for use with the EXPAND command. Format DEFINE TOKEN token-name token body END DEFINE or DEFINE TOKEN token-name$ /PLACEHOLDER= placeholder-name 3 Qualifiers /DESCR IPTION /DESCRIPTION=stringE Specifies some text to be displayed along with the token name whenD the token name appears in a menu during an EXPAND operation or in a SHOW TOKEN display. /LANGUAGE /LANGUAGE=language-nameD Specifies the language associated with the token. By default, the6 token is defined for use with the current language. /PLACEHOLDER# /PLACEHOLDER=placeholder-nameD Specifies the name of a defined placeholder that expands in p laceB of the token. The token gets its description, topic string, and& body from the defining placeholder.= Note that the /PLACEHOLDER qualifier is mutually exclusiveA with the /DESCRIPTION and /TOPIC_STRING qualifiers and the ENDC DEFINE command must not be used on the DEFINE TOKEN command whenA /PLACEHOLDER is specified. No token body is specified with the /PLACEHOLDER qualifier. /TOPIC_STRING /TOPIC_STRING=stringD Specifies a quoted string that LSE uses  to retrieve help text forE this token. This string is appended to the /TOPIC_STRING qualifier@ specified in the DEFINE LANGUAGE command to form the completeC string of topics that LSE uses to look up the help text for this token. 3 Parameter token-nameC Specifies the name for the token being defined. Each token for aE particular language must have a unique name. Token and alias namesC must not conflict. A token name can be any character including a4 blank space, but not a leading or trailing space. token bodyB Is the text of the token expansion. When the token is expanded,@ the token name is replaced with the text of the token body. AD token can have more than one quoted string in each body line. ForB the expansion of the token, you can set the indentation of each@ string by using the /INDENTATION qualifier and its associated/ keywords described in the following section:> Each quoted string in the body line of a token can take the=  qualifier and keywords described in the following section.! Nonterminal Body QualiDefaults0 /INDENTATION=(keyword1 [,integer1, keyword2]) keyword1= You can specify any of the following options for keyword1: Option Description< EXPAND Indents the string to the column of the first= character of the nonterminal placeholder beingD expanded. This is the default value if the first body) line is not a null string.@ CURRENT Indents the string to the indentation of the line? containing the placeholder or token. This is theE default value if the first body line is a null string.@ PREVIOUS Indents the string to the indentation of the lineC before the line containing the placeholder or token.: FIXED Indents the string to the specified column. integer1C You can specify any integer for the integer1 option. The defaultD is 0. The integer is added to the column position as specified byB keyword1 and adjusts the indentation by that number of columns.E The integer can be negative. When the value for keyword1 is FIXED,C integer1 specifies the column position at which to put body text and must be positive. keyword2= You can specify any of the following options for keyword2: Option Description= TAB Specifies that integer1 should be interpreted as@ specifying an adjustm ent in terms of tab increments? rather than columns. Integer1 is multiplied by theC tab increment for the buffer before it is added to the* column specified by keyword1.= SPACE Specifies that integer1 should be interpreted asA specifying an adjustment in terms of spaces. This is the default.B Note that you cannot specify keyword2 when keyword1 has a FIXED value.B If there is more than one quoted string in a body line, a commaE must separate the strings. For FORTRAN, if the body line is insideE of a comment or there is a tab in the body lines, the /INDENTATIONE qualifier and associated keywords do not take effect for the first$ quoted string for each body line.D For more information about the use of the /INDENTATION qualifier,+ see the examples for the EXPAND command.ww˯ 1 DELETE? Deletes the effect of the item specified by the option word. Format DELETE option 2 ADJUSTMENT@ Removes a name from the list of adjustments associated with a language. Format( DELETE ADJUSTMENT adjustment-name 3 Qualifier /LANGUAGE /LANGUAGE=language-nameC Names the language associated with the adjustment being deleted.E By default, LSE deletes the adjustment from the set of adjustments; defined for the current language. By using the /LANGUAGE@ qualifier, you can delete adjustments from other languages as well. 3 Parameteradjustment-name6 Specifies the name of the adjustment to be deleted.2 ALIAS+ Deletes the definition of an alias name. Format DELETE ALIAS alias-name 3 Qualifier /LANGUAGE /LANGUAGE=language-nameD Specifies the name of the language in which the alias is defined.' The default is the current language. 3 Parameter alias-name* Specifies the alias name to be deleted. 2 BUFFER Deletes a buffe"r. Format" DELETE BUFFER [buffer-name] 3 Parameter buffer-name> Indicates which buffer is to be deleted. The default is the current buffer. 2 COMMAND@ Deletes the definition of the indicated user-defined command. Format" DELETE COMMAND command-name 3 Parameter command-name' Specifies the command to be deleted.2 KEY( Deletes the specified key definition. Format DELETE KEY key-specifier 3 Qualifier /IF_STATE /IF_STATE=GOLD /NOIF_STATE (D)B Specifies that the key definition to be deleted is for the GOLDE state. The default is to delete the key definition for the default state. 3 Parameter key-specifierD Indicates the keyword or single printing character for the key toC be deleted. Valid key-specifiers include all keynames recognized by the DEFINE KEY command. 2 KEYWORDS2 Cancels the indicated keywords list definition. Format( DELET E KEYWORDS keyword-list-name 3 Parameterkeyword-list-name, Specifies the keyword list to be deleted. 2 LANGUAGE- Cancels the indicated language definition. Format$ DELETE LANGUAGE language-name 3 Parameter language-name( Specifies the language to be deleted. 2 LIBRARY= [SCA Command] Deletes an SCA library from a VMS directory. Format( DELETE LIBRARY library-spec[,...] 3 Qualifiers/CONFIRM /CONFIRM /NOCONFIRM (D)D Indicates whether the delete function will request a confirmation# of the deletion of each library.A To delete an SCA library, you must respond to the confirmation; prompt by typing one or more characters of the word YES.) Otherwise, the library is not deleted./LOG /LOG /NOLOG (D)A Indicates whether successful deletion of SCA libraries will be reported. 3 Parameterlibrary-spec[,...]E Specifies one or more libraries to be deleted. The library must beB one of the current SCA libraries established by the SET LIBRARY> command. You can use a library number in place of a libraryA specification. For example, the primary library is library #1.3 You can also specify a wildcard name expression. 2 MODULEB [SCA Command] Deletes specified modules of source analysis data from SCA libraries. Format* DELETE MODULE module-name[, . . . ] 3 Qualifiers/CONFIRM /CONFIRM /NOCONFIRM (D)@ Tells SCA whether or not to prompt you to confirm each module deletion.E To delete a module, you must respond to the confirmation prompt byB typing Y, YE, or YES. If you specify N, NO, or press the Return? key, SCA does not delete the module. SCA considers any otherA response to be ambiguous and reissues the confirmation prompt./DECLARATION_CLASS* /DECLARATION_CLASS=declaration-classA Indicates the class of the module to be deleted. The following%  declaration classes are supported:$ PRIMARY- Module implementation% ASSOCIATED-Module specification> If you do not specify a declaration class, SCA deletes both classes, if they exist./LIBRARY /LIBRARY[=library-spec]" /LIBRARY=primary-library (D)E Specifies an SCA library containing the module to be deleted. ThisE library must be one of the current libraries (established by a SET LIBRARY command).B If you do not specify a library, the primary SCA library is the@ default; that is, the module is deleted from the first of the current SCA libraries./LOG /LOG (D) /NOLOGA Indicates whether SCA reports successful deletion of a module. 3 Parametermodule-name[, . . . ]D Specifies the names of the modules to be deleted from the current7 library. You may specify a wildcard name expression. 2 OVERVIEWM This command gets rid of all the overview lines in a buffer, and makes all( the real lines in the buffer visible. Format DELETE OVERVIEW 3 Qualifier/BUFFER /BUFFER=buffer-nameF Indicates the buffer whose overview information is to be reset. The! default is the current buffer. 2 PACKAGE@ Deletes a package definition without deleting the routines or* parameters associated with the package. Format" DELETE PACKAGE package-name 3 Parameter package-name. Names the package definition to be deleted. 2 PARAMETER1 Deletes a parameter definition from a package. Format& DELETE PARAMETER parameter-name 3 Qualifier/PACKAGE /PACKAGE=package-nameC Specifies the name of the package that contains the parameter toD be deleted. The DELETE PARAMETER command requires this qualifier. 3 Parameterparameter-name5 Specifies the name of the parameter to be deleted.2 PLACEHOLDERA Removes a name from the list of placeholders associated with a language.  Format DELETE PLACEHOLDER name 3 Qualifier /LANGUAGE /LANGUAGE=language-name; Names the language associated with the placeholder being@ deleted. By default, LSE deletes the placeholder from the setA of placeholders defined for the current language. By using the> /LANGUAGE qualifier, you can delete placeholders from other languages as well. 3 Parametername7 Specifies the name of the placeholder to be deleted.2 QUERY- [SCA Command] Deletes the indicated query. Format DELETE QUERY [query-name] 3 Parameter query-nameE Specifies the query to be deleted. If you omit the query name, the7 current query is deleted. You can specify wildcards. 2 ROUTINE/ Deletes a routine definition from a package. Format" DELETE ROUTINE routine-name 3 Qualifier/PACKAGE /PACKAGE=package-name@ Indicates the package containing the routine definition to be? deleted. The DELE TE ROUTINE command requires this qualifier. 3 Parameter routine-name3 Specifies the name of the routine to be deleted.2 TAGC Removes a name from the list of tags associated with a language. Format DELETE TAG name 3 Qualifier /LANGUAGE /LANGUAGE=language-name? Names the language associated with the tag being deleted. By@ default, LSE deletes the tag from the set of tags defined forB the current language. By using the /LANGUAGE qualifie!r, you can, delete tags from other languages as well. 3 Parametername/ Specifies the name of the tag to be deleted.2 TOKENA Removes a token name from the list of tokens associated with a language. Format DELETE TOKEN name 3 Qualifier /LANGUAGE /LANGUAGE=language-nameB Specifies the language associated with the token being deleted.C By default, LSE deletes the token from the set of tokens definedC for the current language. Using" the /LANGUAGE qualifier, you can. delete tokens from other languages as well. 3 Parametername2 Specifies the token name that is to be deleted. 2 WINDOW Deletes the current window. Format DELETE WINDOWwwY̯ 1 DOD Directs LSE to execute LSE commands or VAXTPU program statements. Format DO [string[, . . . ]] 2 Qualifiers/BUFFER /BUFFER[=buffer-name]D Indicates that LSE should read commands from th#e specified buffer? and execute the commands or VAXTPU program statements within@ that buffer. The default is the current buffer. If you do notE specify either the /BUFFER qualifier or the /PROMPT qualifier, LSE executes the current buffer. /CONTINUE /CONTINUE (D) /NOCONTINUED Indicates whether LSE prompts for a single string to be executed,= or for multiple strings to be executed. If you specify the? /NOCONTINUE qualifier, LSE repeatedly prompts for a$dditional/ commands until you issue a CONTINUE command.B You use the /[NO]CONTINUE qualifier with the /PROMPT qualifier;? you must not specify the /NOCONTINUE qualifier with the /TPU qualifier./LSE /LSE (D)/ Indicates that the strings are LSE commands./PROMPT /PROMPT=prompt-string@ Indicates that LSE should prompt you for a command (or VAXTPU! program statement) to execute.D The /PROMPT and /BUFFER qualifiers are mutually exclusive. If% youB specify the string parameter, you cannot specify the /PROMPT orE /BUFFER qualifier. If you do not specify the /BUFFER qualifier butD specify the /PROMPT qualifier, then LSE prompts you for a command+ and does not execute the current buffer./TPUA Indicates that the strings are VAXTPU program statements. When@ specifying the /TPU qualifier, you cannot use the /NOCONTINUE qualifier. 2 Parameterstring[, . . . ]C Specifies a list of comma-separated commands !&or statements to beE executed. Commands with embedded spaces, such as GOTO BUFFER, must) be enclosed by double quotation marks.ww ̯ 1 END3 Ends the operation specified by the option word. Format END option 2 DEFINE9 Ends a body of text that begins with a DEFINE command. Format END DEFINE 2 REVIEW Ends an LSE REVIEW session. Format END REVIEWww ̯ 1 ENLARGE 2 WINDOW E'nlarges the current window. Format ENLARGE WINDOW line-count 3 Parameter line-count> Specifies the number of screen lines you want to add to theC current window. If you do not supply this parameter, LSE prompts& you for the number of lines to add.C The maximum size of a window depends on the size and type of theA terminal screen you are using. The minimum size is one line of) text and one line for the status line.ww ̯ 1 ENTER1 ( Inserts the item specified by the option word. Format ENTER option 2 COMMENT% Converts pseudocode into comments. Format ENTER COMMENT 3 Qualifiers/BLOCK /BLOCK (D)@ Specifies that the comment should be entered above the cursorD (or selected text range), formatting the comment according to the! placeholder LSE$BLOCK_COMMENT.; You cannot specify both the /BLOCK and /LINE qualifiers./LINEA Specifies that the comment )should be entered at the end of the@ current line (or selected text range), formatting the comment1 according to the placeholder LSE$LINE_COMMENT.; You cannot specify both the /LINE and /BLOCK qualifiers.2 LINE* Splits the current line into two lines. Format ENTER LINE 3 Qualifiers /BEGINNING /BEGINNING (D)? Indicates that the cursor should be left at the beginning of@ the second line. If you position the cursor at the end of theC ori *ginal line, the /BEGINNING qualifier adds a new blank line toD the current buffer and repositions the cursor at the beginning of the new line.= If you position the cursor at the beginning of a line, the@ /BEGINNING qualifier adds a new blank line before the currentD line and the cursor remains at the beginning of the current line.E If you position the cursor within a line, the /BEGINNING qualifierB splits that line into two lines at the original cursor positionB and rep+ositions the cursor at the beginning of the second line./COMMENT /COMMENT (D) /NOCOMMENTE Indicates whether or not the second line should be a comment. ThisB qualifier has no effect unless each of the following conditions are met:6 o The current buffer is associated with a language+ o Comments are defined for the language/ o The cursor is positioned within a comment, o Wrapping is set for the current bufferB If all these conditions apply,, you use the /NOCOMMENT qualifier> when you want to terminate a comment and begin a code line./ENDC Indicates that the cursor should be left at the end of the first@ line. If you start with the cursor at the end of the original< line, the /END qualifier causes the cursor to stay there.? If you start with the cursor at the beginning of a line, theC /END qualifier adds a new blank line before the current line and+ positions the cursor on that blank line.@ If you po-sition the cursor within a line, specifying the /ENDD qualifier splits the line in two leaving the cursor at the end of the first line. 2 PSEUDOCODE- Inserts pseudocode placeholder delimiters. Format ENTER PSEUDOCODE2 SPACEA Inserts or overstrikes a space at the current cursor position,= depending on whether the current editing mode is insert or overstrike.: If wrap mode is set, then line-oriented filling occurs. Format ENTER SPACE. 2 SPECIALA Causes LSE to insert into the current buffer a character whose ASCII code you specify. Format ENTER SPECIAL ASCII-code 3 Parameter ASCII-codeB Specifies the ASCII code of the character you want as a decimal number from 0 through 255.2 TAB: Inserts tabs and blanks at the current cursor position. Format ENTER TAB2 TEXT/ Inserts text at the current cursor position. Format ENTER TEXT string 3 Param$/eterstring9 Is a quoted string specifying the text to be inserted.ww0̯ 1 ERASE1 Inserts the item specified by the option word. Format ERASE option 2 CHARACTER< Erases a single character at the current cursor position. Format ERASE CHARACTER 3 Qualifiers/CURRENT /CURRENT (D)( Erases text in the current direction./FORWARD( Erases text in the forward direction. /INDICATED /INDICATED (D)08 Deletes the character at the current cursor position./REVERSE( Erases text in the reverse direction./TO@ Deletes the character at the current cursor position when theA direction is FORWARD. Deletes the character before the current1 cursor position when the direction is REVERSE.2 LINE9 Removes a line of text at the current cursor position. Format ERASE LINE 3 Qualifiers /BEGINNING /BEGINNING (D)B Indicates that the cursor1 should be moved to the beginning of aE line as part of the ERASE operation. You cannot use the /BEGINNING+ qualifier with the /INDICATED qualifier./CURRENT /CURRENT (D)( Erases text in the current direction./ENDA Indicates that the cursor should be moved to the end of a lineD as part of the ERASE operation. You cannot use the /END qualifier! with the /INDICATED qualifier./FORWARD( Erases text in the forward direction. /INDICATED /INDICAT2ED (D)> Erases the entire line that the cursor is on (including theD carriage return and line feed), regardless of the cursor position@ within that line or the direction specified. The cursor movesC to the beginning of the next line. You cannot use the /INDICATED: qualifier with the /BEGINNING, /END, or /TO qualifiers./REVERSE( Erases text in the reverse direction./TOC Erases text from the current cursor position to the next line in the direction specified.32 PLACEHOLDER= Deletes the text of a placeholder and related punctuation. Format ERASE PLACEHOLDER 3 Qualifiers/CURRENT /CURRENT (D)4 Specifies cursor motion in the current direction./FORWARD4 Specifies cursor motion in the forward direction./GOTO_PLACEHOLDER /GOTO_PLACEHOLDER (D) /NOGOTO_PLACEHOLDER> Specifies whether or not the cursor should move to the nextA placeholder after performing the ERASE operation. The mov!4ementD to the next placeholder does not take place if it would force the- current position to scroll off the screen./REVERSE4 Specifies cursor motion in the reverse direction. 2 SELECTION. Removes the text within the selected range. Format ERASE SELECTION2 WORD1 Removes a word at the current cursor position. Format ERASE WORD 3 Qualifiers/CURRENT /CURRENT (D)( Erases text in the current direction./FORWARD( 5 Erases text in the forward direction. /INDICATED /INDICATED (D)> Deletes the entire word the cursor is on, regardless of the& cursor's position within that word./NEXT; Erases the word following the cursor. When the cursor isD positioned on a space, LSE erases all the spaces before and afterD the deleted word except one space. If the cursor is at the end ofD a line, the next line is appended to the current line. You cannot? use the /NEXT qualifier with any ot6her ERASE WORD qualifier. /PREVIOUSE Erases the previous word when the cursor is on the first characterB of a word or between words. When the cursor is in the middle of@ a word, that entire word is erased and the cursor moves on toB the first letter of the next word. You cannot use the /PREVIOUS1 qualifier with any other ERASE WORD qualifier./REVERSE( Erases text in the reverse direction./TOD Deletes text from the current cursor position to the beginning of,7 the next word in the specified direction.wwP̯ 1 EXITE [SCA Command] Ends an LSE editing session or SCA query session andE returns control to the calling process or the VMS command language interpreter. Format EXIT 2 Qualifier/LOG /LOG /NOLOG (D)D [SCA] Indicates whether completion of an SCA session is reported.wwP̯ 1 EXPANDD Replaces placeholders, token names, alias names, or routine names8C at the current cursor position with the appropriate body of textA or code, if the cursor is not on an overview line. Replaces anC overview line with the underlying source lines, if the cursor isE on an overview line. Expands symbols to include their occurrences,& if the cursor is in a query buffer. Format EXPAND 2 Qualifiers/DEPTH /DEPTH=n /DEPTH=1 (D)D Specifies how many levels of detail are displayed. If you specifyD the value ALL9, all subgroups for this overview line are expanded.D If the cursor is not on an overview line or is in a query buffer,# the /DEPTH qualifier is ignored./GOTO_PLACEHOLDER /GOTO_PLACEHOLDER (D) /NOGOTO_PLACEHOLDER> Specifies whether or not the cursor should move to the nextB placeholder after performing the EXPAND operation. The movementD to the next placeholder does not take place if it would force the- current position to scroll off the screen.> If :the cursor is on an overview line, the /GOTO_PLACEHOLDERB qualifier is ignored. Note that when you use the EXPAND command@ with SCA, this command does not support the /GOTO_PLACEHOLDER qualifier.ww`ͯ 1 EXTEND8 Compiles one or more VAXTPU procedures to extend LSE. Format { procedure-name } EXTEND { * } { } 2 Qualifier /INDICATED /INDICATED (D)> If you specify the /INDIC;ATED qualifier, the EXTEND command@ compiles the VAXTPU procedure in which the cursor is located.@ You cannot specify the /INDICATED qualifier with a parameter. 2 Parametersprocedure-name@ The name of the VAXTPU procedure you want to compile. You can! abbreviate the procedure name.*C Wildcard symbol instructing VAXTPU to compile all the procedures and statements in the buffer.ww`ͯ 1 EXTRACT> Extracts the specified items for use in LSE comma<nds or SCA libraries. Format! EXTRACT item-type item-name 2 ADJUSTMENTB Extracts the definition of the named adjustment and formats the definition as a command. Format( EXTRACT ADJUSTMENT adjustment-name 3 Qualifiers /LANGUAGE /LANGUAGE[=language-name]> Specifies the language associated with the adjustment being@ extracted. If you do not specify the /LANGUAGE qualifier, the# default is the current language./NEWE S=pecifies that only the adjustment definitions defined during this' editing session should be extracted. 3 Parameteradjustment-nameC Specifies the name of the adjustment you want. You may specify a wildcard.2 ALIASD Extracts the definition of an alias and formats the definition as a command. Format EXTRACT ALIAS alias-name 3 Qualifiers /LANGUAGE /LANGUAGE[=language-name]D Specifies the language associated with the alias being ex>tracted.D If you do not specify the /LANGUAGE qualifier, the default is the current language./NEWE Specifies that only the definitions of aliases defined during this' editing session should be extracted. 3 Parameter alias-name> Specifies the name of the alias you want. You may specify a wildcard. 2 KEYWORDSD Extracts the definition of the named keyword list and formats the definition as a command. Format( EXTRACT KEYWORDS keyword-list-name? 3 Qualifier/NEWD Specifies that only the definitions of keyword list names defined3 during this editing session should be extracted. 3 Parameterkeyword-list-name? Specifies the keyword list name. You can specify a wildcard. 2 LANGUAGE@ Extracts the definition of the named language and formats the definition as a command. Format$ EXTRACT LANGUAGE language-name 3 Qualifier/NEWB Specifies that only the definitions of languages define@d during, this editing session should be extracted. 3 Parameter language-nameA Specifies the name of the language you want. You may specify a wildcard. 2 MODULEC [SCA Command] Extracts specified modules of source analysis data from an SCA library. Format/ EXTRACT MODULE module-name-expr[, . . . ] 3 Qualifiers/DECLARATION_CLASS* /DECLARATION_CLASS=declaration-class@ Indicates the class of the module to be copied. The following% dAeclaration classes are supported:# PRIMARY-Module implementation% ASSOCIATED-Module specification? If you do not specify a declaration class, SCA extracts both classes, if they exist./LIBRARY /LIBRARY=library-specE Specifies the SCA static library from which to extract the module.E This library must be one of the current SCA libraries (establishedC by a SET LIBRARY command). If you do not specify this qualifier,E then SCA tries to extract the mBodule from the primary library (the' first of the current SCA libraries)./LOG /LOG /NOLOG (D)< Indicates whether SCA reports the extraction of a module./OUTPUT /OUTPUT=file-specD Specifies the file into which all modules of source analysis dataE will be written. The default is /OUTPUT=module-name.ANA, where the< module name is the name of the file the compiler created. 3 Parametermodule-name-expr[, . . . ]A Specifies the modules to exCtract. If you specify more than oneC library, SCA extracts the module from the first library in which it occurs. 2 PACKAGE? Extracts the definition of the named package and formats the definition as a command. Format" EXTRACT PACKAGE package-name 3 Qualifiers /LANGUAGE /LANGUAGE[=language-name]; Specifies the language associated with the package being@ extracted. If you do not specify the /LANGUAGE qualifier, the# default is the currDent language./NEWA Specifies that only the definitions of packages defined during, this editing session should be extracted. 3 Parameter package-name@ Specifies the name of the package you want. You may specify a wildcard. 2 PARAMETERA Extracts the definition of the named parameter and formats the definition as a command. Format& EXTRACT PARAMETER parameter-name 3 Qualifiers /LANGUAGE /LANGUAGE[=language-name]= Specifies tEhe language associated with the parameter being@ extracted. If you do not specify the /LANGUAGE qualifier, the# default is the current language./NEWC Specifies that only the definitions of parameters defined during, this editing session should be extracted. 3 Parameterparameter-nameB Specifies the name of the parameter you want. You may specify a wildcard.2 PLACEHOLDERC Extracts the definition of the named placeholder and formats the definition as a comFmand. Format* EXTRACT PLACEHOLDER placeholder-name 3 Qualifiers /LANGUAGE /LANGUAGE[=language-name]? Specifies the language associated with the placeholder being@ extracted. If you do not specify the /LANGUAGE qualifier, the# default is the current language./NEWA Specifies that only the placeholder definitions defined during, this editing session should be extracted. 3 Parameterplaceholder-nameD Specifies the name of the placeholdGer you want. You may specify a wildcard. 2 ROUTINE? Extracts the definition of the named routine and formats the definition as a command. Format" EXTRACT ROUTINE routine-name 3 Qualifiers /LANGUAGE /LANGUAGE[=language-name]; Specifies the language associated with the routine being@ extracted. If you do not specify the /LANGUAGE qualifier, the# default is the current language./NEWA Specifies that only the definitions of routines dHefined during, this editing session should be extracted. 3 Parameter routine-name@ Specifies the name of the routine you want. You may specify a wildcard.2 TAG; Extracts the definition of the named tag and formats the definition as a command. Format EXTRACT TAG tag-name 3 Qualifiers /LANGUAGE /LANGUAGE[=language-name]B Specifies the language associated with the tag being extracted.D If you do not specify the /LANGUAGE qualifierI, the default is the current language./NEW> Specifies that only the tag definitions defined during this' editing session should be extracted. 3 Parametertag-name< Specifies the name of the tag you want. You may specify a wildcard.2 TOKEN= Extracts the definition of the named token and formats the definition as a command. Format EXTRACT TOKEN token-name 3 Qualifiers /LANGUAGE /LANGUAGE[=language-name]D Specifies the lJanguage associated with the token being extracted.D If you do not specify the /LANGUAGE qualifier, the default is the current language./NEWD Specifies that only the definitions of tokens defined during this' editing session should be extracted. 3 Parameter token-name> Specifies the name of the token you want. You may specify a wildcard.wwͯ 1 FILLA Reformats the text within a selected range to put as much textA on a line as possible. ThKis command is particularly useful forE comments and ordinary prose, but is not normally used with program code. Format FILL 2 Qualifiers/COMMENT_COLUMN+ /COMMENT_COLUMN=CONTEXT_DEPENDENT (D) /COMMENT_COLUMN=numberB Specifies that the comment column should be determined from theA context. LSE uses the position of the commented segment in the: first line of the selected range as the comment column.C Number specifies an explicit column n Lumber in which to align theD comments. LSE aligns all commented segments in the selected rangeB with this column; all paragraphs within the range have the sameD comment column setting. Number must be an integer in the range ofE from 1 to 131; also, the value must be consistent with the lengths3 of the comment delimiters used within the range./ For a text fill, LSE ignores this qualifier.wwͯ 1 FINDA [SCA Command] Locates occurrences described by the Mcurrent SCA libraries.G For information on the SCA query language, see SCA_Topics in online  help. Format FIND query-expression 2 Qualifiers /DESCRIPTION /DESCRIPTION=stringC Specifies a single line of text that is displayed along with theC query name when the query is displayed by issuing the SHOW QUERY command./DISPLAY! /DISPLAY[=(option, . . . )] /DISPLAY=DEFAULT (D) /NODISPLAY? Indicates how much infoNrmation SCA displays concerning query@ results. Use one or more of the following keywords to request specific information: NAME Symbol name CLASS Class of item* LINE_NUMBER Compilation line number= MODULE Module name containing a symbol occurrenceD FILE_SPEC File name and type containing a symbol occurrenceB FULL_FILE_SPEC Complete file specification containing a symbol occurrence5 RECORD_NUMBERO Record number within a source file$ RELATIONSHIP Relationship type- NUMBER Number of the display lineB OCCURRENCE_ Type of symbol occurrence (such as declaration, TYPE read, call). ALL All of the previous options: DEFAULT Default settings of the display optionsC NONE Nothing (equivalent to the /NODISPLAY qualifier)E You can prefix any keyword (except ALL, DEFAULT, and NONE) with NO/ to request thPat the information be excluded.@ The initial default for each type of new query is as follows:; DISPLAY=(NAME,CLASS,MODULE,LINE,OCCURRENCE,RELATIONSHIP)/LOG /LOG (D) /NOLOG< Indicates whether the count of symbol occurrences will be reported./MODIFY /MODIFY[=query-name] /NOMODIFY (D)B Indicates that an existing query is to be modified. By default,) each FIND command creates a new query.@ The /MODIFY=query-name qualifier indicaQtes that the specifiedA query should be modified according to the specification of the8 FIND command. The specified query must already exist.A By default, the /MODIFY qualifier specifies the current query./NAME /NAME[=query-name]A Specifies the name of the query. If a query with the same nameE already exists, you must also specify the /REPLACE qualifier. If aE query-name is not specified, then SCA assigns a unique name to the0 query. The query name can be a Rquoted string./OUTPUT /OUTPUT[=file-spec]B Specifies that command output is to go to a file rather than beD displayed on your screen (or go to a batch log file). The default( output file specification is SCA.LIS./REPLACE /REPLACE /NOREPLACE (D)? Indicates whether existing queries should be replaced by new@ queries. By default, a FIND command that creates a query with8 the same name as an already existing query will fail./RESULT /RSESULT=option /RESULT=DEFAULT (D) /NORESULTB Indicates the type of query results displayed. You must specify! one of the following keywords:, SYMBOLS Only symbols are displayed.7 OCCURRENCES Symbols and occurrences are displayed.; DEFAULT Either symbols or occurrences, or both areD displayed. SCA chooses the result type that is most3 appropriate for the current query.> The /NORESULT qualifier specifies that Tno results should beE displayed. This means that no query evaluation is done. If a queryC result exists because you issued a FIND command, then specifying. /NORESULT causes that result to be deleted. /SYNCHRONIZE /SYNCHRONIZE /NOSYNCHRONIZE (D)@ Indicates that the query result must be synchronized with theB current state of the virtual library being queried. By default,D /NOSYNCHRONIZE causes SCA to do as little processing as necessaryE to evaluate the query U. This can lead to query results that reflectD the state of the virtual library at the time of a previous query.B The /SYNCHRONIZE qualifier specifies that the query result mustA be synchronized with the current virtual library. SCA attempts@ to minimize the amount of processing, but the result is stillB synchronized with the virtual library that was in effect at the time the query was evaluated. 2 Parameterquery-expression0 Specifies the set of occurrences to be foun!Vd.wwͯ 1 FOCUS? Displays an overview of the buffer. The current line remains5 visible, and the rest of the buffer is compressed. Format FOCUSwwͯ 1 GOTO= Moves the cursor to the item specified by the option word. Format GOTO option 2 BOTTOM8 Moves the cursor to the bottom of the current buffer. Format GOTO BOTTOM 2 BUFFER, Moves the cursor to the specified buffer. FormatW GOTO BUFFER buffer-name 3 Qualifiers/CREATE /CREATE /NOCREATE (D)C Specifies whether or not the buffer should be created if it does not exist. /READ_ONLY /READ_ONLY (D) /NOREAD_ONLY@ Specifies whether or not the indicated buffer should have theB read-only attribute. If the buffer has this attribute, then LSEB does not write the contents to a file when you exit from LSE orA when you issue a COMPILE command. This qualifier Xhas an effectC only if the GOTO BUFFER command is creating a buffer. If you areE going to an already existing buffer, the read-write status of thatC buffer is not changed. The /WRITE qualifier is equivalent to the /NOREAD_ONLY qualifier./WRITE /WRITE /NOWRITE (D)@ Specifies whether or not the indicated buffer should have theE write attribute. If the buffer has this attribute, then LSE writesA the contents of the buffer to a file when you exit from LSE oYrA when you issue a COMPILE command. This qualifier has an effectC only if the GOTO BUFFER command is creating a buffer. If you areD going to an already existing buffer, the read-write status of theE buffer is not changed. The /NOREAD_ONLY qualifier is equivalent to the /WRITE qualifier. 3 Parameter buffer-name? Specifies the name of the buffer. You may use abbreviations.D You can specify a buffer name with a character string value of upE to 255 alphanumeric or Zspecial characters. If you begin the bufferB name with special characters, such as those accessed on the topC row of your keyboard by pressing the shift key, you must encloseC the buffer name in quotation marks. Similarly, to specify a nameA that contains embedded blanks (spaces), or quotation marks and8 spaces, enclose the entire string in quotation marks. 2 CHARACTER* Moves the cursor to the next character. Format GOTO CHARACTER 3 Qualifiers/CURRENT[ /CURRENT (D)< Instructs LSE to use the current direction of the buffer./FORWARD9 Instructs LSE to move the cursor down or to the right. /HORIZONTALLY /HORIZONTALLY (D)1 Instructs LSE to move the cursor horizontally./REVERSE6 Instructs LSE to move the cursor up or to the left. /VERTICALLY/ Instructs LSE to move the cursor vertically. 2 COMMANDE Produces the LSE Command> prompt at which you can enter LSE or SCA commands. F\ormat GOTO COMMAND2 DECLARATIONC [SCA Required] Displays the declaration of the symbol indicated.D LSE displays the source code containing the symbol declaration inE another window and positions the cursor on the symbol declaration. Format% GOTO DECLARATION [symbol-name] 3 Qualifiers /ASSOCIATED@ Indicates that you want to see the associated declaration forA the symbol. An associated declaration is a related declaration@ that accompanies ]the primary declaration (such as an EXTERNAL declaration)./CONTEXT_DEPENDENT@ If you specify both the /CONTEXT_DEPENDENT and the /INDICATEDB qualifiers, then SCA determines which declaration to display by using the following criteria:C o If the indicated occurrence of the symbol is a reference, LSED displays the declaration specified by the compiler as bound to$ that occurrence of the symbol.@ o If the indicated occurrence of the symbol is an associated8 ^ declaration, LSE displays the primary declaration.< o If the indicated occurrence of the symbol is a primary; declaration, LSE displays the associated declaration.> You cannot use the /CONTEXT_DEPENDENT qualifier without the /INDICATED qualifier. /INDICATED= Instructs LSE to use the symbol name at the current cursor= position, or the text within the currently active selected@ range, as the symbol name. To help SCA identify exactly whichA occurrence of the s _ymbol name the cursor is positioned on, LSEE passes both the current cursor position in the buffer and the file/ specification for the current buffer to SCA.? If SCA has no information for the symbol name at the currentE cursor position (for example, if the line containing the symbol isB a new line and the file has not been recompiled), then SCA usesB whatever general information it has about that symbol as if youD issued a GOTO DECLARATION command for the symbol name witho`ut the /INDICATED qualifier.D If you specify the /INDICATED qualifier, you must not specify the symbol-name parameter.@ You cannot use the /INDICATED qualifier without the /CONTEXT_ DEPENDENT qualifier./PRIMARY /PRIMARY (D)= Indicates that you want to see the primary declaration for@ the symbol. A primary declaration is the declaration that SCAB interprets as most significant for a symbol (such as a FUNCTIONB declaration). For example, the primary deaclaration of a routine% describes the body of the routine. 3 Parameter symbol-nameE Specifies that the declaration associated with the named symbol isE to be displayed. You must not specify a symbol name if you specify the /INDICATED qualifier.2 FILEC Moves the cursor to the buffer containing the specified file. IfC no buffer contains the specified file, LSE reads the file into a new buffer. Format GOTO FILE file-spec 3 Qualifiers/CREbATE /CREATE /NOCREATE (D)@ Specifies whether the GOTO FILE command should succeed if theE specified file does not exist. This qualifier has no effect if you# are going to an existing buffer./MODIFY /MODIFY /NOMODIFY; Specifies whether the buffer you create is modifiable or? unmodifiable. If you specify the /MODIFY qualifier, the GOTO? FILE command creates a modifiable buffer. If you specify theE /NOMODIFY qualifier, the GOTO FILE ccommand creates an unmodifiableE buffer. If you do not specify either qualifier, LSE determines theB buffer's modifiable status from the read-only/write setting. ByD default, a read-only buffer is unmodifiable and a write buffer is modifiable./NEWA Specifies that you want to create a new file. If the specifiedD file already exists, LSE reports an error and aborts the command.C The file-spec parameter may not contain wildcards if you specifyE this qualifier. You cannodt use this qualifier with the /[NO]CREATE or /[NO]MODIFY qualifiers. /READ_ONLY /READ_ONLY /NOREAD_ONLYB Specifies whether or not the buffer you create is read-only andB therefore unmodifiable. This qualifier and the /WRITE qualifierE override any setting established by the SET DIRECTORY command. The@ /WRITE qualifier is equivalent to the /NOREAD_ONLY qualifier.B If you specify neither the /READ_ONLY nor the /WRITE qualifier,D LSE uses the default estableished by the most recent SET DIRECTORYC command for the directory that contains the file. If during your> current editing session you have not issued a SET DIRECTORY@ command nor defined the logical LSE$READ_ONLY_DIRECTORY, then& the buffer is writeable by default./WRITE /WRITE /NOWRITEB Specifies whether or not the buffer you create is writeable andD therefore modifiable. This qualifier and the /READ_ONLY qualifierE override any setting established by the SfET DIRECTORY command. The@ /NOREAD_ONLY qualifier is equivalent to the /WRITE qualifier.B If you specify neither the /WRITE nor the /READ_ONLY qualifier,D LSE uses the default established by the most recent SET DIRECTORYC command for the directory that contains the file. If during your> current editing session you have not issued a SET DIRECTORY@ command nor defined the logical LSE$READ_ONLY_DIRECTORY, then& the buffer is writeable by default. 3 Parameter file-spec< g Specifies the name of the file to be edited. LSE uses the? directories specified in the SET SOURCE_DIRECTORY command toA resolve the file specification. If the file cannot be found inA one of those directories (or the list of directories is empty)C and you used the /CREATE qualifier, LSE creates the file in your default directory.2 LINEC Moves the cursor to the end of the line, or the next line if the* cursor is already at the end of a line. Format GOThO LINE 3 Qualifiers /BEGINNING /BEGINNING (D)@ Indicates that the cursor should be moved to the beginning ofD the line. The /BEGINNING, /BREAK, /BOUND, and /END qualifiers are mutually exclusive./BOUND> Moves the cursor to the beginning or the end of the currentB line depending on whether the direction specified is FORWARD orB REVERSE. If the cursor is already at the specified destination,D LSE issues a message to that effect and the cursor does not move.iC The /BEGINNING, /BREAK, /BOUND, and /END qualifiers are mutually exclusive./BREAK< Moves the cursor either to the beginning or end of a lineD depending on whether the direction currently specified is FORWARDE or REVERSE. If the cursor is already at the specified destination,> LSE moves it to the corresponding break on the next line inB the current direction. The /BEGINNING, /BREAK, /BOUND, and /END% qualifiers are mutually exclusive./CURRENT /CURRENT (jD)< Instructs LSE to use the current direction of the buffer./ENDD Indicates that the cursor should be moved to the end of the line.C The /BEGINNING, /BREAK, /BOUND, and /END qualifiers are mutually exclusive./FORWARD9 Instructs LSE to move the cursor down or to the right./REVERSE6 Instructs LSE to move the cursor up or to the left.2 MARKC Moves the cursor to a marker name defined by a SET MARK command. Format GOTO MARK marker-namek 3 Parameter marker-nameB Specifies the name of a marker created with a SET MARK command.2 PAGED Moves the cursor to the next page where a page boundary is a form, feed or the beginning or end of a buffer. Format GOTO PAGE 3 Qualifiers/CURRENT /CURRENT (D)< Instructs LSE to use the current direction of the buffer./FORWARD) Instructs LSE to move the cursor down./REVERSE' Instructs LSE to move the cursor up.2 PLACEHOLDERl% Moves the cursor to a placeholder. Format GOTO PLACEHOLDER 3 Qualifiers/ALL /ALL (D): Instructs the GOTO PLACEHOLDER command to recognize all? placeholders, including pseudocode placeholders and overview records./CURRENT /CURRENT (D)< Instructs LSE to use the current direction of the buffer./FORWARD9 Instructs LSE to move the cursor down or to the right. /NOPSEUDOCODE> Instructs the GOTO PLACEHOLDER command to imgnore pseudocode placeholders./REVERSE6 Instructs LSE to move the cursor up or to the left.2 QUERYE [SCA Command] Moves the cursor to the specified SCA query session. Format GOTO QUERY [query-name] 3 Parameter query-name+ Specifies the name of the query session. 2 REVIEW; Moves the cursor to the currently active review session. Format GOTO REVIEW 2 SCREENB Moves the cursor in the indicated direction two lines less than-n the number of lines in the current window. Format GOTO SCREEN 3 Qualifiers/CURRENT /CURRENT (D)< Instructs LSE to use the current direction of the buffer./FORWARD) Instructs LSE to move the cursor down./REVERSE' Instructs LSE to move the cursor up. 2 SOURCEA Displays the source corresponding to the current diagnostic or> query item. To display a query item, you must be using SCA. Format GOTO SOURCE 3 Qualifieros /READ_ONLYC Specifies that the buffer containing the source be set read-onlyA and therefore unmodifiable. Using this qualifier overrides any4 setting established by the SET DIRECTORY command./WRITEC Specifies that the buffer containing the source be set writeable? and therefore modifiable. Using this qualifier overrides any4 setting established by the SET DIRECTORY command.2 TOP5 Moves the cursor to the top of the current buffer. Format GOTO pTOP2 WORD= Moves the cursor to the beginning of the current, next, orB previous word in the current buffer, depending on the direction specified. Format GOTO WORD 3 Qualifiers/CURRENT /CURRENT (D)< Instructs LSE to use the current direction of the buffer./FORWARD9 Instructs LSE to move the cursor down or to the right./REVERSE6 Instructs LSE to move the cursor up or to the left.ww{ί 1 HELPB Displays qinformation about LSE and SCA commands. In response to? the Topic? prompt, you can also display such information as:1 o New features in the update ("New_Features")E o Brief command descriptions with SCA commands noted ("Commands")< o Directions and suggestions for new users ("New_Users")= o Tutorial information about the use of many LSE features ("Features")1 o Information about SCA topics ("SCA_Topics") Format HELP [topic-list]: Yrou can switch to the LSE portable command language by < using the SET COMMAND LANGUAGE PORTABLE command. You can; then request help on the portable command language. You= can return to the CLI-based parser by entering the command SET COMMAND LANGUAGE VMS. 2 Qualifiers /INDICATED /INDICATEDA Causes LSE to display the help text associated with the token,= placeholder, or routine at the current cursor position. If> you do not specify or negate the /LANGUAGE squalifier or theA /PACKAGE qualifier, LSE first looks for a language element. IfE the indicated item is not a language element, then LSE looks for a package element.@ The help text comes from the HELP library associated with the= specified language or package. LSE forms a topic string by@ concatenating the /TOPIC_STRING qualifier associated with theD language or package followed by the indicated token, placeholder,= or entry name. LSE then searches for the topic in the HtELP library.D You cannot use the /INDICATED qualifier with any of the following9 qualifiers: /KEYPAD, /LANGUAGE, /LIBRARY, or /PACKAGE./KEYPAD /KEYPADB Specifies that you want keypad HELP. You cannot use the /KEYPAD> qualifier with any of the following qualifiers: /INDICATED,$ /LANGUAGE, /LIBRARY, or /PACKAGE.C The /KEYPAD qualifier builds the keypad diagram by using legendsB specified with the /LEGEND qualifier on the DEFINE KEY command.B When the udiagram is displayed and you press a key, LSE looks upD the topic specified for that key by using the /TOPIC qualifier onD the DEFINE KEY command, and displays the corresponding help text./ The HELP library accessed is LSE$KEYPAD.HLB. /LANGUAGE /LANGUAGE=language-nameB Causes LSE to take the value of the /TOPIC_STRING qualifier forD the indicated language and concatenate that value to the front ofC the topic-list parameter on the HELP command. If you specify theB v /LANGUAGE qualifier without a value, then LSE uses the languageD associated with the current buffer. (In this case, not having the? current buffer associated with a language creates an error.)D You must not specify either the /KEYPAD qualifier or the /PACKAGE* qualifier with the /LANGUAGE qualifier./LIBRARY /LIBRARY=library-name@ Specifies which HELP library LSE searches for the topic. ThisC qualifier overrides the library file determined by LSE's defaultC behwavior. You may specify any other qualifiers with the /LIBRARY/ qualifier, except for the /KEYPAD qualifier./PACKAGE /PACKAGE=package-nameB Causes LSE to take the value of the /TOPIC_STRING qualifier forC the indicated package and concatenate that value to the front ofE the topic-list parameter on the HELP command. You must provide the. package name as the value of the qualifier.E You must not specify either the /KEYPAD or the /LANGUAGE qualifier with the /PxACKAGE qualifier. 2 Parameter topic-listD Indicates the topic for which you want help. This may be any listB of topics valid for input to the DCL command interpreter's HELPD command. The topic list must not be specified with the /INDICATED qualifier.wwί 1 INCLUDE> Inserts the specified file at the current editing position. Format INCLUDE file-spec 2 Qualifier/BUFFER /BUFFER=buffer-nameC Specifies a buffer into wyhich the file is to be included. If theD buffer does not exist, it is created for display only (the buffer% cannot be written back to a file). 2 Parameter file-specC Specifies the file to be copied to the current editing position.. Wildcards are permitted in DECwindows mode.wwί 1 INSPECTA [SCA Command] Inspects the consistency between declarations or" references for the same symbol. Format INSPECT query-expression 2 Qualifierzs/CHARACTERISTICS( /CHARACTERISTICS=(option[ . . . ]) /CHARACTERISTICS=ALL (D)? Indicates which characteristics of the occurrences should be? checked. You can use one or more of the following options to request specific information:= IMPLICIT_ Checks that all symbols are explicitly DECLARATIONS declared.B TYPE Checks that the types of all occurrences of) each symbol match.D UNIQUENESS { Checks that multiple declarations of the same1 symbol have the same name.8 UNUSED_SYMBOLS Checks that all symbols are used.@ USAGE Looks for symbols that are read but never: written, or written but never read.C ALL Checks all of the preceding characteristics.> Any of these options (except ALL) can have the prefix NO to: indicate that the characteristic should not be checked.A Each of the cha |racteristic options takes a query-expression asB an optional value. The characteristic-specific query expressionA specifies the set of occurrences for which that characteristic? will be checked. If the prefix NO is present, then the queryA expression indicates occurrences for which that characteristic= will not be checked. The default query expression for each5 characteristic option is to check all occurrences. /DESCRIPTION /DESCRIPTION=stringC Specifies a sin}gle line of text that is displayed along with theC query name when the query is displayed by issuing the SHOW QUERY command./DISPLAY! /DISPLAY[=(option, . . . )] /DISPLAY=DEFAULT (D) /NODISPLAY? Indicates how much information SCA displays concerning query@ results. Use one or more of the following keywords to request specific information: NAME Symbol name CLASS Class of item* LINE_NUMBER Compilation line number~D FILE_NAME File name and type containing a symbol occurrenceB FULL_FILE_SPEC Complete file specification containing a symbol occurrence5 RECORD_NUMBER Record number within a source fileB OCCURRENCE_ Type of symbol occurrence (such as declaration, TYPE read, call). ALL All of the previous options: DEFAULT Default settings of the display optionsC NONE Nothing (equivalent to the /NODISPLAY qualifier)E You can prefix any keyword (except ALL, DEFAULT, and NONE) with NO+ to request that information be excluded.@ The initial default for each type of new query is as follows:. DISPLAY=(NAME,CLASS,MODULE,LINE,OCCURRENCE) /ERROR_LIMIT0 /ERROR_LIMIT=(global-limit[,symbol-limit]) /NOERROR_LIMIT (D)B Specifies the maximum number of errors that the INSPECT command@ should report. This causes the INSPECT command to stop if the( number of errors exceeds the maximum.D The global-limit parameter specifies the maximum number of errors= reported for all symbols before the INSPECT command stops.D The symbol-limit parameter specifies the maximum number of errorsD reported for a particular symbol before the INSPECT command stops$ reporting errors for that symbol./LOG /LOG (D) /NOLOG< Indicates whether the count of symbol occurrences will be reported./MODIFY /MODIFY[=query-name] /NOMODIFY (D)B Indicates that an existing query is to be modified. By default,, each INSPECT command creates a new query.@ The /MODIFY=query-name qualifier indicates that the specifiedA query should be modified according to the specification of the; INSPECT command. The specified query must already exist.A By default, the /MODIFY qualifier specifies the current query./NAME /NAME[=query-name]A Specifies the name of the query. If a query with the same nameE already exists, you must also specify the /REPLACE qualifier. If aE query name is not specified, then SCA assigns a unique name to the query./OUTPUT /OUTPUT[=file-spec]B Specifies that command output is to go to a file rather than beD displayed on your screen (or go to a batch log file). The default( output file specification is SCA.LIS./REPLACE /REPLACE /NOREPLACE (D)? Indicates whether existing queries should be replaced by newD queries. By default, an INSPECT command that creates a query with8 the same name as an already existing query will fail./RESULT /RESULT=option /RESULT=DEFAULT (D) /NORESULTB Indicates the type of query results displayed. You must specify! one of the following keywords:, SYMBOLS Only symbols are displayed.7 OCCURRENCES Symbols and occurrences are displayed.; DEFAULT Either symbols or occurrences, or both areD displayed. SCA chooses the result type that is most3 appropriate for the current query.> The /NORESULT qualifier specifies that no results should be? displayed. This means that no query evaluation is done. If aB query result exists because you issued an INSPECT command, then9 specifying /NORESULT causes that result to be deleted./SEVERITY_LEVEL$ /SEVERITY_LEVEL=severity-level! /SEVERITY=INFORMATIONAL (D)< Indicates the lowest severity level for diagnostics to be reported, as follows: INFORMATIONAL WARNING ERROR FATAL_ERROR /SYNCHRONIZE /SYNCHRONIZE /NOSYNCHRONIZE (D)@ Indicates that the query result must be synchronized with theB current state of the virtual library being queried. By default,D /NOSYNCHRONIZE causes SCA to do as little processing as necessaryE to evaluate the query. This can lead to query results that reflectD the state of the virtual library at the time of a previous query.B The /SYNCHRONIZE qualifier specifies that the query result mustA be synchronized with the current virtual library. SCA attempts@ to minimize the amount of processing, but the result is stillB synchronized with the virtual library that was in effect at the time the query was evaluated. 2 Parameterquery-expression3 Specifies the set of occurences to be inspected.ww ί 1 LINED Moves the cursor in the current buffer to the start of the source line you specify. Format$ LINE integer [procedure-name] 2 ParametersintegerB Specifies the number of the line in the current buffer to which@ you want LSE to move the cursor. If you do not specify a lineE number, LSE prompts for one. Pressing CTRL/Z at the prompt cancels the command.procedure-nameB Specifies the name of a VAXTPU procedure in the current buffer.A The procedure name is valid only for VAXTPU source files. ThisC parameter is useful because some compiler messages refer to line numbers in a procedure.C To find out the current line number and total number of lines in) the buffer, use the WHAT LINE command.ww ί 1 LOADE [SCA Command] Loads one or more files of compiler-generated source% analysis data into an SCA library. Format LOAD file-spec[, . . . ] 2 Qualifiers/DELETE /DELETE /NODELETE (D)? Deletes an analysis data file after it has been successfully loaded into an SCA library./LIBRARY /LIBRARY=library-spec" /LIBRARY=primary-library (D)A Specifies an SCA physical library to update. This library mustD be one of the current SCA libraries, established by a SET LIBRARY command.B If you do not specify this qualifier, SCA refers to the primaryA SCA library; that is, SCA updates the first of the current SCA physical libraries./LOG /LOG (D) /NOLOG;  Indicates whether SCA reports successful updating of SCA libraries./REPLACE /REPLACE (D) /NOREPLACEE Indicates whether SCA replaces existing modules of source analysis data with new information. 2 Parameterfile-spec[, . . . ]C Specifies one or more files of source analysis data to be loadedB into an SCA library. You may use a wildcard file specification.D The default file type is .ANA, which is the default file type for3 source analysis dat"a files created by compilers.ww ί 1 LOWERCASE2 WORDC Changes the letters in the current word or the selected range to lowercase. Format LOWERCASE WORDww0ϯ 1 MODIFY 2 LANGUAGE8 Modifies the characteristics of a specified language. Format$ MODIFY LANGUAGE language-name 3 Qualifiers /CAPABILITIES /CAPABILITIES=DIAGNOSTICS! /CAPABILITIES=NODIAGNOSTICS@ Specifies whether the compiler can generate diagnostic files./COMMENT" /COMMENT=(specifier, . . . )E Specifies the character sequences of comments in the language. The specifiers are as follows:# o ASSOCIATED_IDENTIFIER=keywordD Indicates the preferred association of comments to identifier.2 You can specify one of the following values:C - NEXT-Indicates that comments should be associated with the next identifier.C - PREVIOUS-Indicates that comments should be associated with" the preceding identifier." o BEGIN=list of quoted strings END=list of quoted stringsB Defines the character sequences that start and end bracketedA comments. A bracketed comment begins and ends with explicitE comment delimiters. (Note that the beginning and ending commentE delimiters can be the same, but need not be.) The list providedD with the specifiers BEGIN and END can be any of the following:? - A  string that is the one open comment sequence for the3 language. You must enclose this in quotes.B - A parenthesized list of strings, each one of which can beD an open comment sequence for the language. You must enclose each one in quotes.B The list accompanying the BEGIN specifier must be consistent? with the list acompanying the END specifier. If the BEGIN@ specifier lists a string, then the END specifier must also list a string.B  Bracketed comments are recognized by the formatting commandsB (see the ALIGN and FILL commands) and placeholder operations= (see the ERASE PLACEHOLDER command and the /DUPLICATION3 qualifier of the DEFINE PLACEHOLDER command).% o TRAILING=list of quoted stringsB Defines the character sequence that introduces line-oriented= comments. A line-oriented comment begins with a special? character sequence (consisting of one or more characters)A and ends at the end of the line. The list provided with the5 TRAILING specifier can be any of the following:? - A string that is the one-line comment sequence for the language.C - A list of strings enclosed in parentheses; each string can5 be a line-comment sequence for the language.A Line comments are recognized by the formatting commands and= placeholder operations, just as bracketed comments are.! o LINE=list of quoted stringsE  Requires that the comment delimiter be the first character thatB is not blank on the line. The LINE specifier is particularly8 useful with block comments, such as the following: /*1 ** Here is the inside of a comment/ ** which has LINE="**" specified */( o FIXED=quoted string, column number= Used for languages that require that a specific commentE delimiter be placed in a specific column, such as FIXED=("*",1) for COBOL./COMPILE_COMMAND /COMPILE_COMMAND=stringE Specifies the default command string for the COMPILE command. (SeeA the explanation of the command-string parameter in the COMPILE command entry.) /EXPAND_CASE /EXPAND_CASE=AS_IS (D) /EXPAND_CASE=LOWER /EXPAND_CASE=UPPERA Specifies the case of the text of the inserted template. AS_IS@ specifies that the inserted template be expanded according toC the case in the token or placeholder definition. LOWER and UPPERA specify that the inserted template be expanded in lowercase or uppercase, respectively.E If you do not specify a value for the /EXPAND_CASE qualifier, thenD the value is reset to the default AS_IS. If you omit the /EXPAND_7 CASE qualifier, the current value remains in effect. /FILE_TYPES' /FILE_TYPES=(file-type[, . . . ])A Specifies a list of file types that are valid for the languageD being defined. The file  types must be enclosed in quoted strings.E When LSE reads a file into a buffer, it sets the language for thatD buffer automatically if it recognizes the file type. For example,E a FORTRAN file type (.FOR) sets the language to FORTRAN. Note that< the period character must be included with the file type./FORTRAN /FORTRAN=ANSI_FORMAT /FORTRAN=NOANSI_FORMAT (D)@ Specifies special processing for ANSI FORTRAN. Note that someC commands behave differently when you use the /FORTRAN qualifier.B Specifying NOANSI_FORMAT causes LSE to insert templates in non-D ANSI (tab) format. If you do not specify a value for the /FORTRANC qualifier, then the value is reset to the default NOANSI_FORMAT.C If you omit the /FORTRAN qualifier, the current value remains in effect. /HELP_LIBRARY /HELP_LIBRARY=file-spec /NOHELP_LIBRARY> Specifies the HELP library where you can find help text for@ placeholders and tokens defined in this language. LSE appliesC the default file specification SYS$HELP:HELPLIB.HLB. If you wantC to access some HELP library other than SYS$HELP, you must supply an explicit device name./IDENTIFIER_CHARACTERS# /IDENTIFIER_CHARACTERS=stringD Specifies the characters that may appear in token and alias names? in that language. This list of characters is used in various) contexts for the /INDICATED qualifier.= The list of identifier characters also determines what LSE=  considers to be a word. A word is a sequence of identifierE characters, possibly followed by one or more blanks. All nonblank,@ nonidentifier characters are considered to be distinct words.? If you do not specify a value for the /IDENTIFIER_CHARACTERS; qualifier, LSE supplies the following values by default:H "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ%$_0123456789"E If you omit the /IDENTIFIER_CHARACTERS qualifier, then the current value remains in effect./INITIAL_STRING /INITIAL_STRING=stringB Specifies the initial text that is to appear in a newly created buffer. /LEFT_MARGIN /LEFT_MARGIN=n /LEFT_MARGIN=1' /LEFT_MARGIN=CONTEXT_DEPENDENT(D)B Specifies the left margin setting that is to be associated with the language.B If you specify CONTEXT_DEPENDENT as the column number, then LSEA uses the indentation of the current line to determine the leftA margin when you use the /WRAP quali fier. When you use the FILL> command, LSE uses the indentation of the first line of eachA selected paragraph to determine the left margin. If you do notA specify a value for the /LEFT_MARGIN qualifier, then the valueD is reset to the default CONTEXT_DEPENDENT. If you omit the /LEFT_9 MARGIN qualifier, the current value remains in effect./OVERVIEW_OPTIONS< /OVERVIEW_OPTIONS=(MINIMUM_LINES=m, TAB_RANGE=(t1,t2))C Specifies both the minimum number of lines an overview line must3 hide and the range of acceptable tab increments.! The specifiers are as follows: o MINIMUM_LINES=mA Specifies the minimum number of lines an overview line must> hide. The default is 1. For example, if the value of theD parameter on MINIMUM_LINES is 5, then a line hides other linesC only if there are at least five lines to hide. This specifierC helps the user to avoid having very small source-line groups,. and thus to avoid many exp ansion levels. o TAB_RANGE=(t1,t2)C The TAB_RANGE specifier indicates the range of tab values for@ which the adjustment definitions are valid. The default isE (4,8). The second value must be at least twice the first value;A both values must be positive. For example, if the tab range@ is (4,8), then LSE assumes that the adjustment definitionsB will work for any DEFINE LANGUAGE/TAB_INCREMENT value from 4C to 8 inclusive. If you specify a /TAB_INCREM ENT value outside@ the tab range, then LSE recomputes indentation to make the adjustments work.< For best performance, it is recommended that you avoid> recomputation by choosing a range that covers reasonableE values. The numbers specified for the DEFINE ADJUSTMENT/CURRENTE and DEFINE ADJUSTMENT/SUBSEQUENT commands must work for any tab' increment value in the tab range./PLACEHOLDER_DELIMITERSA /PLACEHOLDER_DELIMITERS=(delimiter-specification[, . . . ])9 Specifies the starting and ending strings that delimitD placeholders. Placeholders can specify single constructs or listsA of constructs. The delimiters for each type of placeholder are@ specified as a pair of quoted strings separated by commas and enclosed in parentheses.9 The format of a delimiter specification is as follows:* keyword=(starting-string,ending-string)E Possible keywords are REQUIRED, REQUIRED_LIST, OPTIONAL, OPTIONAL_E LIST, or PSEUDOCODE. If you do not use the PSEUDOCODE keyword, theB default is NOPSEUDOCODE. The maximum length of these strings is seven characters.? The following is an example of a complete set of placeholder delimiter specifications:" /PLACEHOLDER_DELIMITERS = ( - REQUIRED =("{<",">}"), -% REQUIRED_LIST=("{<",">}..."), - OPTIONAL =("[<",">]"), -% OPTIONAL_LIST=("[<",">]..."), - PSEUDOCODE=("" , ""))9 If any of the five keywords are not specified with the? /PLACEHOLDER_DELIMITERS qualifier, LSE applies the following defaults:" /PLACEHOLDER_DELIMITERS = ( - REQUIRED =("{","}"), -# REQUIRED_LIST=("{","}..."), - OPTIONAL =("[","]"), -# OPTIONAL_LIST=("[","]..."), - NOPSEUDOCODE)/PUNCTUATION_CHARACTERS$ /PUNCTUATION_CHARACTERS=string( /PUNCTUATION_CHARACTERS=",;()" (D)B Specifies the characters that are considered punctuation marks,B or delimiters, in the langu age. When a placeholder name and its@ enclosing brackets are deleted, preceding white space is alsoE deleted if there are punctuation characters to delimit the programB constructs. If you do not specify a value for the /PUNCTUATION_? CHARACTERS qualifier, then the value is reset to the defaultA ",;()". If you omit the /PUNCTUATION_CHARACTERS qualifier, the# current value remains in effect. /QUOTED_ITEM4 /QUOTED_ITEM=(QUOTES=string [,ESCAPES=string]) /NOQUOTED_IT EM= Describes the syntax of certain language elements, such asE strings, that require special handling for proper text formatting.C LSE uses the /QUOTED_ITEM qualifier to detect comments properly.D LSE does not acknowledge comment strings that occur within quotedD items, nor does LSE acknowledge quoted elements that occur within comments.D The value of the /QUOTED_ITEM qualifier indicates the syntax of aC quoted item. This value must be a keyword list. The keywords are as follows: o QUOTES@ This keyword is required, and must have an explicit value.A The value must be a quoted string denoting all of the quoteE characters in the language. LSE assumes that quoted items begin& and end with the same character. o ESCAPESD This keyword is optional. If given, then the value is requiredB and must be a quoted string containing the escape characters? for quoted items. Some languages use escape characters toA  insert quoting characters into strings. For example, C usesA the backslash (\) as an escape character. If you omit this? keyword, then LSE assumes that the language inserts quote/ characters into strings by doubling them. /RIGHT_MARGIN /RIGHT_MARGIN=n /RIGHT_MARGIN=1 (D)C Specifies the right margin setting that is to be associated withD the language. If you do not specify a value for the /RIGHT_MARGINC qualifier, then the value is reset to the default 1. If you omitD the /RIGHT_MARGIN qualifier, the current value remains in effect./TAB_INCREMENT /TAB_INCREMENT=nB Specifies that tab stops be set every n columns, beginning with column 1./TAG_TERMINATORS) /TAG_TERMINATORS=(string[, . . . ]) /TAG_TERMINATORS=(":") (D)C Specifies the character sequences that you an use to terminate aC tag. You can use each string in the list of strings to terminate@ a tag. When you use the /DESIGN=C OMMENTS qualifier to compileE programs, the compiler uses this information to detect tags inside of comments.? You must not specify a string that ends in whitespace (spaceC characters or tabs). Compilers always allow whitespace between aE tag name and the tag terminator characters. If you want to require@ whitespace between the tag and the tag terminator string, useA a space character as the first character of the tag terminator@ string. HP does not recommend the use of embedded whitespace.D If you do not specify a value for the /TAG_TERMINATORS qualifier,@ then the value is reset to the default (":"). If you omit theC /TAG_TERMINATORS qualifier, the current value remains in effect. /TOPIC_STRING /TOPIC_STRING=string> Specifies a prefix string to be concatenated to the /TOPIC_B STRING qualifier specified in a placeholder or token definitionC before LSE looks up the help text for that placeholder or token.E (Typically, this is the name of the language in the HELP library.)/VERSION /VERSION=string? Specifies a string that represents the version number of theA tokens and placeholders associated with this language. You use4 the SHOW LANGUAGE command to display this string./WRAP /WRAP /NOWRAPB Specifies whether text should be wrapped to a new line when you> are typing beyond the right margin of the current line. TheB /NOWRAP qualifier disables such text wrapping. If you omit thisD qualifier, then the WRAP setting for the language is not changed. 3 Parameter language-nameE Specifies the name of the language whose characteristics are to be defined.ww`ϯ 1 NEXTB Moves the cursor to the next item specified by the option word. Format NEXT option 2 BUFFERD Moves your next buffer into the current window, returning to your last position in that buffer. Format NEXT BUFFER2 ERRORA Selects the next diagnostic in the current set of diagnostics. Format NEXT ERROR 2 OCCURRENCED [SCA Required] Moves the cursor forward to the next occurrence ofE the current source symbol in the current query and highlights that next occurrence. Format NEXT OCCURRENCE2 QUERY@ [SCA Command] Moves the cursor to the next SCA query session. Format NEXT QUERY2 STEPC Moves the cursor forward to the next error, item, or occurrence,E depending on whether LSE is in review or query mode. The indicated item is highlighted. Format NEXT STEP 2 SYMBOLD [SCA Required] Moves the cursor forward to the next source symbol8 in the current query and highlights that next symbol. Format NEXT SYMBOL 2 WINDOWE Moves the cursor from the current window to the next window if the) screen is split into multiple windows. Format NEXT WINDOWww`ϯ $1 ONE 2 WINDOW& Deletes all but the current window. Format ONE WINDOWww`ϯ 1 OTHER 2 WINDOWE Moves the cursor from the current window to the next window if the) screen is split into multiple windows. Format OTHER WINDOWwwpϯ 1 PASTE? Copies the contents of the specified buffer into the current) buffer at the current cursor position. Format PASTE 2 Qualifiers/BUFFER /BUFFER=buffer-name /BUFFER=$CLIPBOARD /BUFFER=$PASTE (D)= Specifies the buffer to be copied into the current buffer. /CLIPBOARD> Instructs LSE to use the DECwindows clipboard, instead of a@ buffer, to supply the text being inserted. The /CLIPBOARD and- /BUFFER qualifiers are mutually exclusive.wwpϯ 1 PREVIOUS@ Moves the cursor to the previous item specified by the option word. Format PREVIOUS option 2 BUFFERC Moves your previous buffer into the current window, returning to% your last position in that buffer. Format PREVIOUS BUFFER2 ERRORE Selects the previous diagnostic in the current set of diagnostics. Format PREVIOUS ERROR 2 OCCURRENCEE [SCA REquired] Moves the cursor back to the previous occurrence ofE the current source symbol in the current query and highlights that occurrence. Format PREVIOUS OCCURRENCE2 QUERY@ [SCA Command] Moves the cursor back to the previous SCA query session. Format PREVIOUS QUERY2 STEP> Moves the cursor back to the previous error, item, name, orC occurrence, depending on whether LSE is in review or query mode. That item is highlighted. Format PREVIOUS STEP 2 SYMBOLE [SCA Required] Moves the cursor back to the previous source symbol: in the current query and highlights that source symbol. Format PREVIOUS SYMBOL 2 WINDOWA Moves the cursor from one window to the previous window if the) screen is split into multiple windows. Format PREVIOUS WINDOWwwpϯ 1 QUIT< Ends an LSE session without saving modified user buffers. Format QUITwwpϯ 1 QUOTEB Enters a control code or other character, either as text in the7 buffer you are editing or as a string for a command. Format QUOTEwwϯ 1 READ0 Inserts the contents of a file into a buffer. Format READ file-spec 2 Qualifier/BUFFER /BUFFER=buffer-name? Specifies a buffer into which the file is to be read. If theD buffer does not exist, it is created for display only (the buffer% cannot be written back to a file). 2 Parameter file-specC Specifies the file to be read. LSE uses the list for the currentB SET SOURCE_DIRECTORY command to resolve the file specific ation.A LSE uses VAX DEC/CMS to access a file if the directory for the> file to be accessed is the same as the current CMS library.wwϯ 1 RECALLA Recalls a previous LSE command, which you can edit and execute again. Format RECALLwwϯ 1 RECOVER 2 BUFFERE Reconstructs the contents of a buffer from a buffer-change journal file. Format! RECOVER BUFFER [file-name] 3 Qualifier/ALL9 S pecifies that LSE should use the latest generation of: all locatable buffer-change journal files to attempt to@ perform a recovery operation. LSE uses the file specification? LSE$JOURNAL:.TPU$JOURNAL to locate all buffer-change journalC files. If you specify the /ALL qualifier, you cannot specify the file-name parameter. 3 Parameter file-name@ Specifies the name of the file. You can specify either of theE following files that the editor should use to perform the recovery operation:( o Source file that was in the buffer1 o Full name of the buffer-change journal filewwϯ 1 REDO= Reverses the most recent UNDO command. A followup command > to UNDO, the REDO command reverses the most recent function; that was undone and replaces the original function. The> REDO replaces any LSE function except for the UNDO and REDO commands. Format REDOwwϯ 1 REFRESH Refreshes the screen display. Format REFRESHwwЯ 1 REORGANIZE@ [SCA Command] Optimizes the organization of the specified SCA libraries. Format* REORGANIZE [library-spec[, . . . ]] 2 Qualifier/LOG /LOG (D) /NOLOGE Indicates whether SCA reports a successful library reorganization. 2 Parameterlibrary-spec[, . . . ]? Specifies the SCA libraries to be reorganized. If you do not> specify a library, LSE reorganizes the primary SCA library.wwЯ 1 REPEAT1 Repeats a command a specified number of times. Format" REPEAT repeat-count command 2 Parameters repeat-countD Specifies a positive decimal integer number indicating the number+ of times you want to repeat the command.command( Specifies the command to be repeated.wwЯ 1 REPLACED Creates a new generation of the indicated element in your current CMS library. Format REPLACE 2 Qualifier/VARIANT /VARIANT=variant-letter /NOVARIANT (D)5 Controls whether CMS creates a variant generation.wwЯ 1 REPORT/ [SCA Command] Produces the specified report. Format- REPORT report-name other-parms[ . . . ] 2 Qualifiers/DOMAIN /DOMAIN=query-name? Specifies the name of the query to use as the domain for theB report. The query should include occurrences of files that have? been compiled. This value is converted to a VAXTPU value andB assigned to the global VAXTPU variable SCA$REPORT_DOMAIN_QUERY.B This procedure limits the report to objects that are contained,C directly or indirectly, within at least one of the files in this query.E The default value is the null string. By convention, VAXTPU report7 procedures interpret this as the entire SCA library./FILL /FILL (D) /NOFILLD Specifies that whenever a paragra ph of commented text is inserted@ into a report, it is set up so that a text processor, such as? RUNOFF or DOCUMENT performs the usual fill and justification@ operations on the paragraph. If you specify /NOFILL, then the> report tool does not instruct the text processor to fill or justify the paragraph.E For any individual paragraph, you can override the setting of thisD qualifier by including appropriate text-processor comments within the body of the comment.E The value of this qualifier is used to set the value of the globalA VAXTPU variable SCA$REPORT_FILL as follows. If you specify theC /FILL qualifier, or it is indicated by default, then SCA$REPORT_D FILL is 1; if you specify the /NOFILL qualifier, then SCA$REPORT_ FILL is 0.A The /FILL qualifier is ignored if it is not meaningful for theD target. In particular, it is ignored for LSE package definitions. /HELP_LIBRARY /HELP_LIBRARY=library_name> Specifies the help library to use for PACKAGE reports. This= qualifier is ignored for other reports. The PACKAGE reportB generates one or more DEFINE PACKAGE commands. The library_nameB specifies the value to use with the /HELP_LIBRARY qualifier for) the generated DEFINE PACKAGE commands.B If you omit this qualifier, the PACKAGE report omits the /HELP_C LIBRARY qualifier from the DEFINE PACKAGE commands it generates. /LANGUAGES% /LANGUAGES=(language,[ . . . ])D Specifies the lan guage to use for PACKAGE reports. This qualifierA is ignored for other reports. The PACKAGE report generates oneA or more DEFINE PACKAGES commands. This qualifier specifies theD languages to use as the values of the /LANGUAGE qualifier for the% generated DEFINE PACKAGE commands.A If you omit this qualifier, the PACKAGE report inserts the LSEC placeholder {language_name} . . . as the value for the /LANGUAGEE qualifier with the DEFINE PACKAGE commands. Before you can execute ? the DEFINE PACKAGE command, you must replace the placeholder@ manually with the names of the languages that are appropriate# for the languages being defined./OUTPUT /OUTPUT=file-nameA Specifies the output file to use for the report. This value is? converted to a VAXTPU string and passed as the value for theD global VAXTPU variable SCA$REPORT_OUTPUT. The default value takesA the file name from the report-name parameter and the file type? from the target-file-type parameter. The target-file-type is@ implied by the /TARGET qualifier. For example, if you specifyB DOCUMENT for the /TARGET qualifier, this implies a file type of .SDML./TARGET /TARGET=target-file-type> Specifies the type of target file to produce. This value is@ converted to a VAXTPU string value and assigned to the global@ VAXTPU variable SCA$REPORT_TARGET. You can specify one of the following keywords:% Keyword Type of file"  TEXT, TXT Text file8 RUNOFF, DSR, RNO A file for processing by RUNOFF> SDML, DOCUMENT A file for processing by VAX DOCUMENT5 LSEDIT, LSE A file for processing by LSE> HLP, HELP A help file for processing by the VAX" Librarian+ OTHER=value Optional file type> Note that the OTHER keyword can take an optional value. The; default value is the null string, which by convention is> interpr eted by the VAXTPU procedures as TEXT. User suppliedA report procedures can ignore this convention and provide their own defaults.B The default target file types are SDML for INTERNALS and 2167A_E DESIGN reports, HLP for HELP reports, and LSE for PACKAGE reports. 2 Parameters report-name? Specifies the name of the report to produce. The report name> should be the name of one of the HP supplied reports or theD name of a user-written report. You can abbreviate the rep ort name! if the abbreviation is unique.> The REPORT command uses the report-name parameter to find aD corresponding VAXTPU procedure whose name starts with SCA_REPORT_? report-name. This VAXTPU procedure is invoked to produce theA report. Because there is a VAXTPU restriction on the length ofA procedure names, a report name must not exceed 121 characters., HP has implemented the following reports:F o HELP - A help file, suitable for processing by the VMS Librarian into a help library.D o PACKAGE - An LSE package definition, which can be processed byC LSE and put into an environment file, to create templates for* calling the procedures in your code.@ o INTERNALS - A comprehensive report on the software in your> system, all of the information in comment headers, and a+ structural presentation of your code.E o 2167A_DESIGN - The design section of the DOD-STD-2167A Software Design Document.other-parms[ . . . ]; Specifies other parameters that are passed to the VAXTPUB procedure. These parameters are collected into a single string,D which is then assigned to the global VAXTPU variable SCA$_REPORT_C REST_OF_LINE. These SCA parameters are obtained from the commandA line from the $REST_OF_LINE type of the VMS Command Definition Utility.wwPЯ 1 RESERVE3 Reserves an element in your current CMS library. Format RESERVE [element-name] 2 Qualifiers /GENERATION" /GENERATION[=generation-exp]@ Specifies the generation of the element to reserve. If you doA not specify a value, LSE assumes you have specified generationC "1+" (the generation-exp parameter must be enclosed in quotation@ marks if nonalphanumeric characters are present). If you omitD the qualifier altogether, LSE uses the specified or default valueE from the command SET CMS/GENERATION to determine the generation to reserve./MERGE /MERGE=generation-exp /NOMERGE (D)B Determines whether LSE merges another generation of the elementB with the generation being reserved. If you omit this qualifier,E LSE uses the setting of the command SET CMS/[NO]MERGE to determine> whether to merge generations of the element being reserved.6 You must enclose generation-exp in quotes (" ") if* nonalphanumeric characters are present. 2 Parameter element-name> Specifies the elements to reserve. If you do not specify an@ element name, LSE uses the file name and type of your current buffer as the element name.wwPЯ 1 REVIEWB Selects and displays a set of diagnostic messages that resultedB from a compilation. The diagnostics associated with the current< contents of the buffer become the current diagnostic set. Format REVIEW [buffer] 2 Qualifier/FILE /FILE=file-specD Specifies the name of the diagnostics file containing the resultsD of a compilation. By default, LSE looks in your current directoryA for a .DIA file with the same file name as the file associated with the buffer. 2 ParameterbufferB Specifies that the set of diagnostics associated with the named? buffer is to be reviewed. The default is the current buffer.wwPЯ 1 SAVE/ Saves the item specified by the option word. Format SAVE option2 ENVIRONMENT? Writes out all user-defined languages, placeholders, tokens,0 aliases, and packages to an environment file. Format! SAVE ENVIRONMENT file-spec 3 Qualifiers/ALL /ALL (D)@ Specifies that LSE write all defined items to the environment file./NEW? Specifies that LSE write out only those definitions you madeA during the current editing session. Definitions that were read/ in from an environment file are not written. 3 Parameter file-specE Specifies the file to which LSE should write the environment data. 2 SECTION? Writes the binary form of all current key definitions, learnD sequences, and VAXTPU procedures and variables to a section file.E This saves processing time when LSE reads the definitions back in. Format SAVE SECTION file-spec 3 Qualifiers /DEBUG_NAMES /DEBUG_NAMES (D) /NODEBUG_NAMESB Specifies whether VAXTPU procedure parameters or local variable/ names should be written to the section file./IDENT /IDENT=string8 Specifies an identifying string for the section file./PROCEDURE_NAMES /PROCEDURE_NAMES (D) /NOPROCEDURE_NAMESD Specifies whether VAXTPU procedure names should be written to the section file. 3 Parameter file-specE Specifies the file to which LSE should write the section data. The% default file type is .TPU$SECTION.wwwЯ 1 SEARCHE Searches the current buffer for the specified string and positions the cursor at that string. Format SEARCH search-string 2 Qualifiers/DIALOG /DIALOG /NODIALOG (D); Instructs LSE to use a dialog box to prompt the user for> parameters and qualifier values. The command parameters are@ optional if you specify this qualifier. If you supply command> parameters and qualifiers with the /DIALOG qualifier, theseA parameters and qualifiers are used to set the initial state of the dialog box.B LSE ignores the /DIALOG qualifier if you are using a character- cell terminal./PATTERN /PATTERN /NOPATTERN (D)B Enables or disables special interpretation of wildcard patterns@ in a search string. Use the SET SEARCH command to specify the3 style of wildcard patterns (VMS, ULTRIX or TPU).C For details of the pattern styles use the command HELP FEATURES PATTERNS.? When you specify the /NOPATTERN qualifier (or when it is the? default), special interpretation of wildcard patterns in the search string is disabled. 2 Parameter search-stringA Specifies a quoted string indicating the string to search for.@ If the TPU pattern style is being used the search-string is a< TPU expression which must evaluate to a TPU pattern (for  example: "'abc' | 'def'").D If you are using the DECwindows interface and specify the /DIALOGB qualifier, the search string field in the Find dialog box takesA the default value f$rom the the previous search string, if any.wwОЯ 1 SELECT2 ALL5 Selects the entire contents of the current buffer. Format SELECT ALLwwОЯ 1 SET1 Enables the item specified by the option word. Format SET option 2 AUTO_ERASEE Enables automatic erasing of placeholders in the indicated buffer. Format SET AUTO_ERASE 3 Qualifier/BUFFER /BUFFER=buffer-nameE Indicates the buffer for which automatic erasing is to be enabled.% The default is the current buffer.2 CMS@ Sets the default values for reservations and fetches that LSE@ performs when you issue the appropriate LSE file-manipulation commands. Format SET CMS 3 Qualifiers /CONCURRENT /CONCURRENT /NOCONCURRENTA Controls whether an element reserved by you can be reserved byB another user while you have it reserved. The initial setting is /CONCURRENT./CONFIRM /CONFIRM /NOCONFIRMD Specifies whether you want to be prompted for confirmation beforeD LSE performs a FETCH or RESERVE operation. The initial setting is /CONFIRM. /GENERATION /GENERATION=generation-exp@ Specifies the generation to be used for CMS RESERVE and FETCH7 operations. The initial setting is /GENERATION="1+"./HISTORY /HISTORY /NOHISTORYC Controls whether CMS includes the element history in the file ifB the element has the history attribute and if a CMS FETCH or CMSC RESERVE operation is performed. The initial setting is /HISTORY./MERGE /MERGE=generation-exp /NOMERGEA Controls whether LSE merges a reserved or fetched element withA another generation of the same element. The initial setting is /NOMERGE./NOTES /NOTES /NONOTESC Controls whether notes are embedded in the file if the retrievedD element has the notes attribute and if a CMS FETCH or CMS RESERVE9 operation is performed. The initial setting is /NOTES./REMARK /REMARK=string /NOREMARKE Specifies the remark to be used on RESERVE operations. The initialD setting is to prompt for the remark. If you specify the /NOREMARKE qualifier, LSE prompts you for a remark when you issue a CMS file- manipulation command.2 COMMAND_LANGUAGE3 Sets the command language to PORTABLE or VMSLSE. Format! SET COMMAND LANGUAGE keyword 2 CURSOR< Selects either bound cursor motion or free cursor motion. Format SET CURSOR motion-setting 3 Parametermotion-settingC Specifies the cursor-motion setting. Motion-setting keywords and their effects are as follows:BOUNDC Restricts the cursor to positioning on a character, end-of-line,B or end-of-buffer. This is the initial setting and is similar to# cursor motion in the EDT editor.FREED Lets the cursor move anywhere in a window including past the end-A of-line, past the end-of-buffer, in the middle of a tab, or toE the left of the left margin. This is similar to the default cursor motion for the EVE editor.2 DEFAULT_DIRECTORY< Changes your default device and directory specifications. Format; SET DEFAULT_DIRECTORY [device-name[:][directory-spec] 3 Parametersdevice-name[:]E Specifies a device name to be used as the default device in a file specification.di rectory-specA Specifies a directory name to be used as the default directory@ in a file specification. A directory name must be enclosed inD brackets. Use the minus sign to specify the next higher directory& from the current default directory.; You must specify either the device-name parameter or theE directory-spec parameter. If you specify only the device name, theE current directory is the default for the directory-spec parameter.D If you specify only the directory name, the current device is the) default for the device-name parameter.B You can use a logical name, but it must constitute at least the$ device part of the specification. 2 DIRECTORY< Sets the default read-only/writeable status of files in a specified directory. Format# SET DIRECTORY directory-spec 3 Qualifiers /READ_ONLYB Specifies that files in the indicated directories are read-onlyE and unmodifiable by default. The /READ_ONLY qualifier prevents theE WRITE command from writing files to the indicated directory unless* you subsequently override this default./WRITE /WRITE (D)B Specifies that files in the indicated directories are writeable and unmodifiable by default. 3 Parameterdirectory-spec= Specifies a directory to be set as read-only or writeable.2 FONT+ Sets the specified fonts for the screen. Format SET FONT keyword-list 3 Parameter keyword-listE Indicates the fonts to be set or reset. You can specify either big, or little and either normal or condensed.BIG* Specifies that the fonts should be big. CONDENSED0 Specifies that the fonts should be condensed.LITTLE- Specifies that the fonts should be little.NORMAL- Specifies that the fonts should be normal. 2 FORWARD5 Sets the current direction of a buffer to forward. Format SET FORWARD 3 Qualifier/BUFFER /BUFFER=buffer-nameD Indicates the buffer whose direction is to be set to forward. The! default is the current buffer.2 INDENTATIONC Sets the current indentation level count for the current buffer,% without changing the current line. Format# SET INDENTATION level-option 3 Qualifier/BUFFER /BUFFER=buffer-nameC Indicates the buffer whose current indentation level count is to1 be changed. The default is the current buffer. 3 Parameter level-optionE Indicates the level to be set or changed. The indentation keywords$ and their effects are as follows:CURRENTC Sets the indentation level count to the beginning of the text on the current line.CURSORD Sets the indentation level count to the column currently occupied by the cursor.LEFT; Decreases the indentation level count by the current tab increment.RIGHT; Increases the indentation level count by the current tab increment. 2 INSERTC Sets the text-entry mode of the indicated buffer to insert mode. Format SET INSERT 3 Qualifier/BUFFER /BUFFER=buffer-nameC Indicates the buffer whose text-entry mode is to be changed. The! default is the current buffer. 2 JOURNALING> Enables buffer-change journaling for the specified buffers. Format# SET JOURNALING [buffer-name] 3 Qualifier/ALL? Specifies that all of LSE's user buffers that exist when theA command is issued should be journaled. If you specify the /ALL; qualifier, you cannot specify the buffer-name parameter. 3 Parameter buffer-nameD Specifies the name of the buffer that should be journaled. If you: omit this parameter, the default is the current buffer. 2 LANGUAGE: Sets the language associated with the indicated buffer. Format! SET LANGUAGE language-name 3 Qualifier/BUFFER /BUFFER=buffer-nameB Indicates the buffer whose associated language you want to set.% The current buffer is the default. 3 Parameter language-nameC Specifies the name of the language to associate with the buffer.4 The SET LANGUAGE command requires this parameter.2 LEFT_MARGIN1 Sets the left margin for the indicated buffer. Format$ SET LEFT_MARGIN column-number 3 Qualifier/BUFFER /BUFFER=buffer-name? Indicates the buffer whose left margin is to be changed. The! default is the current buffer. 3 Parameter column-number> Specifies the column for the left margin. The value must beC greater than or equal to one and less than the value set for the right margin.C If you specify the CONTEXT_DEPENDENT value as the column number,A then LSE uses the indentation of the current line to determineE the left margin when you use the /WRAP qualifier. When you use theC FILL command, LSE uses the indentation of the first line of each3 selected paragraph to determine the left margin. 2 LIBRARYE [SCA Command] Identifies the SCA physical libraries to be used for subsequent SCA functions. Format+ SET LIBRARY directory-spec[, . . . ] 3 Qualifiers/AFTER /AFTER[=library-spec]@ Instructs SCA to insert the new library or libraries into the@ list of active SCA libraries after the library you specify asC the qualifier value. If you do not specify a value, SCA adds the/ library or libraries to the end of the list./BEFORE /BEFORE[=library-spec]@ Instructs SCA to insert the new library or libraries into theA list of active SCA libraries before the library you specify asC the qualifier value. If you do not specify a value, SCA adds the5 library or libraries to the beginning of the list./LOG /LOG (D) /NOLOGA Indicates whether SCA reports the resulting list of active SCA libraries. 3 Parameterdirectory-spec[, . . . ]? Specifies one or more directories, each of which comprises aC separate SCA library. The list of libraries you specify replacesD the current list of active libraries unless you specify an /AFTER or /BEFORE qualifier.2 MARKE Associates a marker name with the current cursor position. You canE later use that marker name with the GOTO MARK command to return to the specified position. Format SET MARK marker-name 3 Parameter marker-nameD Specifies the name of the marker to be placed. For a marker name,C you may use any combination of up to 21 alphanumeric characters,B underscores, or dollar signs. If this marker name is already in( use, the previous marker is canceled. 2 MAX_UNDO3 Sets the maximum number of commands you can undo for a specific buffer. Format SET MAX_UNDO number 3 Qualifier/BUFFER /BUFFER=buffer-nameI Indicates the buffer whose MAX_UNDO buffer limit is to be changed. The! default is the current buffer. 3 ParameternumberG Specify the maximum number of commands you can undo in the "number".J qualifier. If you omit a value in the"number" qualifier, LSE displays G a default maximum Undo number of [100]. Press Return to accept the ( default or specify a different value.2 MODE; Establishes the status of warning bells sounding, keypadB emulation, select range, tab appearance, and the use of graphic characters in menus. Format SET MODE  keyword-list 3 Parameter keyword-list@ Indicates the modes to be set or reset. The mode keywords and their effects are as follows:!BELL=NONE or ALL or [NO]BROADCAST: Specifies which new messages should be accompanied by aB warning bell character. By default, only broadcast messages are! accompanied by a warning bell.KEYPAD=EDT or EVED Specifies whether the key definitions should be similar to EDT orC EVE. Note that EVE key definitions do not use the numeric key pad@ on VT200 terminals; numeric keypads on VT200-series terminals@ emulate EDT key definitions regardless of the keypad mode you choose.MENU=[NO]GRAPHICS< Lets you choose between graphic characters and nongraphic> characters in the display of a menu. The initial setting is@ MENU=GRAPHICS. If the terminal characteristics do not includeA DEC_CRT, then LSE uses nongraphic characters regardless of the setting of this mode.> Graphic characters currently require more s creen repaintingA than do nongraphic characters, so you may want to use SET MODE9 MENU=NOGRAPHICS if you are working at a low baud rate.[NO]PENDING_DELETEC Specifies whether a selection in a user buffer should be deleted@ when the user inserts text. The initial setting is NOPENDING_? DELETE. PENDING_DELETE is disabled for a selection made withC SELECT ALL. You can use the UNERASE SELECTION command to restore deleted text.TABS=[NO]VISIBLEC Specifies whether tabs should appear as blanks, or a combination; of the HT (horizontal tab) symbol and dots ("HT......"). TABS=[NO]HARD: Specifies whether tab or blank characters are used for  tabulation.UNDO=ON or OFF7 Specifies whether or not UNDO processing is enabled. 2 MODIFY$ Sets buffer status to modifiable. Format SET MODIFY 3 Qualifier/BUFFER /BUFFER=bufferA Indicates the buffer that is to be set modifiable. The current buffer is the default.2 NOAUTO_ERASE> Disables automatic erasing of placeholders in the indicated buffer. Format SET NOAUTO_ERASE 3 Qualifier/BUFFER /BUFFER=buffer-name< Indicates the buffer for which automatic erasing is to be/ disabled. The default is the current buffer.2 NOJOURNALING8 Disables buffer journaling for the specified buffers. Format% SET NOJOURNALING [buffer-name] 3 Qualifier/ALLD Specifies that all of LSE's buffer-change journal files should beC closed and buffer-change journaling halted for those buffers. IfE you specify the /ALL qualifier, you cannot specify the buffer-name parameter. 3 Parameter buffer-nameE Specifies the name of the buffer that no longer have an associated> buffer-change journal file. If you omit this parameter, the! default is the current buffer. 2 NOLANGUAGEC Disassociates the language associated with the indicated buffer. Format  SET NOLANGUAGE 3 Qualifier/BUFFER /BUFFER=buffer-name= Indicates the buffer whose associated language you want to3 disassociate. The current buffer is the default. 2 NOLIBRARYE [SCA Command] Removes the specified SCA libraries from the current list of active libraries. Format- SET NOLIBRARY [library-spec[, . . . ]] 3 Qualifier/LOG /LOG (D) /NOLOGB Indicates whether LSE reports removal of the libraries from the active list. 3 Parameterlibrary-spec[, . . . ]@ Specifies the libraries to be removed from the current activeB libraries list. If you omit this parameter, SCA removes all the" active libraries from the list. 2 NOMODIFY0 Sets a buffer to display-only (unmodifiable). Format SET NOMODIFY 3 Qualifier/BUFFER /BUFFER=buffer-name> Indicates the buffer that is to be set to display-only. The! default is the current buffer.2 NOOUTPUT_FILE1 Disassociates the buffer from any output file. Format SET NOOUTPUT_FILE 3 Qualifier/BUFFER /BUFFER=buffer-name? Indicates the buffer whose output file is to be changed. The! default is the current buffer. 2 NOOVERVIEW8 Disables overview operations in the indicated buffer. Format SET NOOVERVIEW 3 Qualifier/BUFFER /BUFFER=buffer-name> Indicates the buffer in which overview operations are to be/ disabled. The default is the current buffer.2 NOSOURCE_DIRECTORYC Specifies a directory or directories to be removed from the list of source directories. FormatF SET NOSOURCE_DIRECTORY [directory-spec [,directory-spec] . . . ] 3 Parameter&directory-spec [,directory-spec] . . .= Specifies a list of directory specifications to be removedA from the list of source directories. If you do not specify anyA parameter, LSE removes all directories from the list of sou!rce directories. 2 NOWRAPA Disables wrapping of the current line in the indicated buffer. Format SET NOWRAP 3 Qualifier/BUFFER /BUFFER=buffer-nameA Indicates the buffer for which wrapping is to be disabled. The! default is the current buffer.2 OUTPUT_FILE: Establishes the output file associated with the buffer. Format SET OUTPUT_FILE file-spec 3 Qualifier/BUFFER /BUFFER=buffer-name? Indicates the buffer whose output file is to be changed. The! default is the current buffer. 3 Parameter file-spec8 Indicates the file specification for the output file. 2 OVERSTRIKEA Sets the text-entry mode of the indicated buffer to overstrike mode. Format SET OVERSTRIKE 3 Qualifier/BUFFER /BUFFER=buffer-nameC Indicates the buffer whose text-entry mode is to be changed. The! default is the current buffer. 2 OVERVIEW7 Enables overview operations in the indicated buffer. Format SET OVERVIEW 3 Qualifier/BUFFER /BUFFER=buffer-name> Indicates the buffer in which overview operations are to be. enabled. The default is the current buffer. 2 READ_ONLYE Instructs LSE not to write the indicated buffer to a file when you5 exit from LSE or when you issue a COMPILE command. Format SET READ_ONLY 3 Qualifier/BUFFER /BUFFER=buffer-nameE Indicates the buffer whose read_only/write state is to be changed.% The default is the current buffer. 2 REVERSE5 Sets the current direction of a buffer to reverse. Format SET REVERSE 3 Qualifier/BUFFER /BUFFER=buffer-nameD Indicates the buffer whose direction is to be set to reverse. The! default is the current buffer.2 RIGHT_MARGIN2 Sets the right margin for the indicated buffer. Format% SET RIGHT_MARGIN column-number 3 Qualifier/BUFFER /BUFFER=buffer-name@ Indicates the buffer whose right margin is to be changed. The! default is the current buffer. 3 Parameter column-numberB Specifies the column for the right margin. The value must be an: integer greater than the value set for the left margin. 2 SCREEN0 Sets specified characteristics of the screen. Format SET SCREEN keyword-list 3 Parameter keyword-list= Indicates the screen characteristics to be se t. The screen keywords are as follows:BALANCE_WINDOWS (D)C Specifies how LSE manages window length. If you specify BALANCE_? WINDOWS, LSE adjusts all the window lengths on the screen toC be, as nearly as possible, of equal lengths. This is the defaultB value. If you specify NOBALANCE_WINDOWS, LSE splits the currentC window in half when it needs a new window, leaving all the other window lengths unchanged.HEIGHT=nC Specifies the number of lines on the screen. The height, n, must, be an integer in the range 11 through 62.MAXIMUM_WINDOW_NUMBER=n> Specifies the maximum number of windows LSE creates when itA displays information in a window as a result of issuing one of the following commands: FIND GOTO DECLARATION GOTO SOURCE INSPECT REVIEW? LSE uses the MAXIMUM_WINDOW_NUMBER and MINIMUM_WINDOW_LENGTHA settings to determine whether to add a window to the screen orC reuse an existing window.  LSE checks both settings and creates a. new window only if both conditions are met.A The default value for MAXIMUM_WINDOW_NUMBER is 3. Specifying aD value of 2 produces the two-window behavior previously associated/ with the commands listed under this keyword.MINIMUM_WINDOW_LENGTH=nD Specifies a lower bound on the windows LSE creates. When you needC to map a buffer to a window, LSE creates a new window as long as$ the window is not shorter than n.? LSE uses the MI NIMUM_WINDOW_LENGTH and MAXIMUM_WINDOW_NUMBERA settings to determine whether to add a window to the screen orC reuse an existing window. LSE checks both settings and creates a. new window only if both conditions are met.WIDTH=nC Specifies the number of characters on each input or output line.? The width, n, must be an integer in the range 1 through 252.E If you specify a width greater than 80, then LSE sets the terminal? to 132-character mode. The initial setting is 80 characters.WINDOW=n< Specifies the number of windows to display on the screen.D If you change the number of windows from one to two, LSE displaysB the current buffer in both windows. If you change the number ofB windows from two to one, LSE displays the current buffer in the4 single window. The initial setting is one window.2 SCROLL_MARGINS= Delimits the lines at which the cursor triggers scrolling. Format+ SET SCROLL_MARGINS top-line-count [%].  bottom-line-count [%] 3 Parameterstop-line-countA Specifies the number of lines down from the top of a window at. which you want downward scrolling to begin.bottom-line-countB Specifies the number of lines up from the bottom of a window at, which you want upward scrolling to begin.%C Optionally specifies scroll margins as percentages of the windowB height, rounded to the nearest whole line count. This is useful= when you have a workstation with screens of varying sizes. 2 SEARCH Sets text search options. Format SET SEARCH keyword-list 3 Parameter keyword-listC Indicates the search mode settings. The keywords are as follows: AUTO_REVERSE NOAUTO_REVERSEA Specifies whether or not LSE searches in the current directionC only, or searches in the opposite direction if the string is notA found in the current direction. The initial setting is NOAUTO_ REVERSE. CASE_SENSITIVE NOCASE_SENSITIVEC Specifies whether or not the SEARCH command matches case exactly> or is insensitive to character case. The initial setting is NOCASE_SENSITIVE. DIACRITICAL_SENSITIVE NODIACRITICAL_SENSITIVEA Specifies whether or not the SEARCH command matches charactersE with diacritical markings exactly or is insensitive to diacritical: markings. The initial setting is DIACRITICAL_SENSITIVE. PATTERN=VMS PATTERN=ULTRIX PATTERN=TPU= Spe cifies either VMS, ULTRIX or TPU style patterns for the? SEARCH/PATTERN and SUBSTITUTE/PATTERN commands. The initial E setting is VMS. For details of the pattern styles use the command  HELP FEATURES PATTERNS. SPAN_SPACE NOSPAN_SPACEE Determines whether LSE matches blanks in the search string exactlyC (NOSPAN_SPACE) or allows each blank to match sequences of one orD more characters containing blanks and tabs and, at most, a single@ line break (SPAN_SPACE). The initial setting is NOSPAN_SPACE.D Not applicable to SEARCH/PATTERN and SUBSTITUTE/PATTERN commands.2 SELECT_MARK3 Marks a position as one end of a selected range. Format SET SELECT_MARK2 SOURCE_DIRECTORYB Specifies a searchlist of directories to be used to find source files. FormatB SET SOURCE_DIRECTORY directory-spec [,directory-spec] . . . 3 Qualifiers/AFTER /AFTER (D) /AFTER[=directory-spec]@ Specifies that LSE should insert the directory or directories? indicated into the list of source directories in back of theA directory you specify as the value on the qualifier. If you do@ not specify a directory-spec value, LSE adds the directory or& directories to the end of the list.C If you do not specify either the /AFTER qualifier or the /BEFORE5 qualifier, LSE replaces the entire directory list./BEFORE /BEFORE /BEFORE[=directory-spec]@ Specifies that LSE should  insert the directory or directories@ indicated into the list of source directories in front of theE directory you specify as the value on the qualifier. If you do notC specify a directory-spec value, the directory or directories are" added at the front of the list.C If you do not specify either the /BEFORE qualifier or the /AFTER5 qualifier, LSE replaces the entire directory list. 3 Parameter&directory-spec [,directory-spec] . . .B Specifies one or more directory specifications. You can specifyC CMS$LIB as one directory specification; however, you may not getB the results you expect if you set CMS$LIB as a source directory0 and do not issue the CMS command SET LIBRARY.2 TAB_INCREMENT7 Specifies logical tab stops in the indicated buffer. Format SET TAB_INCREMENT number 3 Qualifier/BUFFER /BUFFER=buffer-nameA Indicates the buffer whose tab increment is to be changed. The! default is the current buffer. 3 Parameternumber0 Specifies the interval for setting tab stops.2 WRAPE Enables wrapping in the indicated buffer. LSE automatically splitsB the current line at the right-margin setting when you type text past the right margin. Format SET WRAP 3 Qualifier/BUFFER /BUFFER=buffer-name@ Indicates the buffer for which wrapping is to be enabled. The! default is the current buffer.2 WRITEC Instructs LSE to write the contents o f the indicated buffer to a: file when you exit from LSE or issue a COMPILE command. Format SET WRITE 3 Qualifier/BUFFER /BUFFER=buffer-nameE Indicates the buffer whose read-only/write state is to be changed.% The default is the current buffer.ww`ѯ 1 SHIFTB Shifts the window horizontally to the left or right one column. Format SHIFT 2 Qualifiers/CURRENT /CURRENT (D)1 Specifies the current direction for the shift./FORWARD? Shifts the window to the right so that you can view formerly1 hidden text to the right of the original text./REVERSEE Shifts the window to the left so that you can view any text hidden by a SHIFT/FORWARD command.ww`ѯ 1 SHOWD Displays information about the item specified by the option word. Format SHOW option 2 ADJUSTMENT9 Displays the characteristics of indicated adjustments. Format( SHOW ADJUSTMENT [adjustment-name] 3 Qualifier /LANGUAGE /LANGUAGE=language-nameB Associates a language with the specified adjustments. If you doE not specify a language, LSE displays information about adjustmentsD associated with the correct language. If you specify /LANGUAGE=*,> LSE displays information on any adjustment that matches the> adjustment name, regardless of the language for which it is defined. 3 Parameteradjustment-name@ Specifies which adjustments are to be shown. If you omit thisB parameter, LSE assumes you have specified a wildcard adjustment name.2 ALIAS/ Displays information on the specified alias. Format SHOW ALIAS [alias-name] 3 Qualifiers/BRIEF? Causes LSE to display (in tabular format) the alias name and equivalent string.C If you specify a wildcard expression for the parameter or if LSE& assumes one, /BRIEF is the default./FULLE Causes LSE to display the alias name and equivalent string in list format.B If you specify an explicit name for the parameter, /FULL is the default. /LANGUAGE /LANGUAGE=language-nameC Specifies the language associated with the alias. The default is the current language. 3 Parameter alias-nameB Specifies the name of the alias whose characteristics are to beD displayed. If this parameter is omitted, a wildcard alias name is assumed. 2 BUFFER7 Displays the characteristics of one or more buffers. Format SHOW BUFFER [buffer-name] 3 Qualifiers /ALL_BUFFERSD Specifies all buffers to be displayed when a wildcard buffer nameE is specified or assumed. LSE ignores this qualifier if you specify an explicit buffer name./BRIEFE Causes the current window to display (in tabular format) the name,D number of text lines, and information about whether the buffer is/ modified, compiled, reviewed, or modifiab le.@ If you move the cursor to a line containing a buffer name andD press the Select key, LSE performs a GOTO BUFFER command for thatD buffer. If you move the cursor to a line containing a buffer nameE and press the Remove key, LSE performs a DELETE BUFFER command forE that buffer. In DECwindows mode, you can perform a GOTO BUFFER forC a buffer displayed in the list by pressing MB1 twice on the line containing the buffer name.? If you specify a wildcard expression, or if LSE assumes one, /BRIEF is the default./FULL> Causes LSE to list all the information available about eachA indicated buffer, including associated input and output files,D language, and all the buffer attributes that you can set, such as margins and text-entry mode.; If you specify an explicit buffer, /FULL is the default./SYSTEM_BUFFERSB Specifies that only system buffers be displayed when a wildcardE buffer name is specified or assumed. LSE ignores this qualifier if' you specify an explicit buffer name. /USER_BUFFERS /USER_BUFFERS (D)@ Specifies that only user buffers be displayed when a wildcardE buffer name is specified or assumed. LSE ignores this qualifier if' you specify an explicit buffer name. 3 Parameter buffer-nameD Specifies the name of the buffer or buffers whose characteristics? are to be displayed. If you specify a null buffer name (""),A the current buffer is assumed. If this paramete r is omitted, a# wildcard buffer name is assumed.2 CMSD Displays the current CMS settings, which are the initial settings: unless you have changed them using the SET CMS command. Format SHOW CMS 2 COMMAND: Displays the characteristics of a user-defined command. Format" SHOW COMMAND [command-name] 3 Parameter command-nameD Specifies the name of the command whose characteristics are to beE displayed. If you omit this parameter, LSE disp lays information on all user-defined commands.2 DEFAULT_DIRECTORY5 Displays the current default device and directory. Format SHOW DEFAULT_DIRECTORY 2 DIRECTORY5 Displays the setting of the SET DIRECTORY command. Format SHOW DIRECTORY2 KEYD Displays the definitions bound to the normal state and GOLD state of any defined key. Format SHOW KEY key-specifier 3 Qualifiers/BRIEF /BRIEF (D)@ Indicates h ow much information you want displayed. The /BRIEFE qualifier instructs LSE to display only key names and the commands associated with them./FULL? Indicates how much information you want displayed. The /FULLE qualifier instructs LSE to display topics, legends, and remarks as& well as the key names and commands. 3 Parameter key-specifier< Specifies the name of the key whose definitions are to be= displayed. You may use a wildcard character on the commandB lin e to specify all defined keys or a group of related keys. IfA you press the Return key before specifying a key, LSE suppliesE quotation marks to any specifier you type at the prompt; thus, LSEE interprets an asterisk specified at the prompt as the asterisk key3 on the keyboard and not as a wildcard character.B To specify key combinations beginning with the PF1 key, use theB prefix GOLD/. To specify combinations by using the control key,? use the form CTRL/x, where x may be t he letters A through Z. 2 KEYWORDS> Displays the characteristics of the specified keyword list. Format( SHOW KEYWORDS [keyword-list-name] 3 Qualifiers/BRIEF /BRIEF (D)@ Indicates how much information you want displayed. The /BRIEFB qualifier causes LSE to display (in tabular format) the name of the indicated keyword list./FULL? Indicates how much information you want displayed. The /FULL@ qualifier causes LSE to display all the information available@ about the indicated keyword list, as specified by the currentE DEFINE KEYWORDS command (see the list of qualifiers for the DEFINE KEYWORDS command). 3 Parameterkeyword-list-name: Specifies the keyword list or keyword lists about whichD information is wanted. By default, LSE displays information about7 the keyword list associated with the current buffer. 2 LANGUAGE: Displays the characteristics of the specified language. Format$ SHOW LANGUAGE [language-name] 3 Qualifiers/BRIEF@ Indicates how much information you want displayed. The /BRIEFC qualifier causes LSE to display (in tabular format) the name and' file type of the indicated language./FULL /FULL (D)? Indicates how much information you want displayed. The /FULL@ qualifier causes LSE to display all the information availableC about the indicated language, as specified by the current DEFINE> LANGUAGE command (see the list of qualifiers for the DEFINE LANGUAGE command). 3 Parameter language-nameA Specifies the language or languages about which information isB wanted. By default, LSE displays information about the language& associated with the current buffer. 2 LIBRARYD [SCA Command] Displays the directory specification for all active SCA libraries. Format SHOW LIBRARY 3 Qualifiers/BRIEF /BRIEF (D); Displays only the directory specification for all active libraries./FULL; Displays all information about all active SCA libraries.2 MARK. Displays the setting of the specified mark. Format SHOW MARK [marker-name] 3 Qualifiers/BRIEF@ Indicates how much information you want displayed. The /BRIEFC qualifier causes LSE to display (in tabular format) the name and3 associated buffer for each marker currently set.D If you specify a wildcard expression for the parameter, or if LSE& assumes one, /BRIEF is the default./FULL? Indicates how much information you want displayed. The /FULLC qualifier causes LSE to list all the information available about8 each indicated marker, including the associated text.D If you specify an explicit marker for the parameter, /FULL is the default. 3 Parameter marker-nameC Specifies the name of the marker whose characteristics are to beC displayed. If you omit this parameter, LSE displays the names of all the markers you have set. 2 MAX_UNDO? Shows the maximum number of commands that you can undo for a specific buffer. Format SHOW MAX_UNDO 3 Qualifier/BUFFER /BUFFER=buffer-name@ Indicates the buffer whose MAX_UNDO limit is to be displayed.% The default is the current buffer.2 MODE@ Displays the current settings for modes set with the SET MODE command. Format SHOW MODE 2 MODULE@ [SCA Command] Displays information about SCA library modules. Format* SHOW MODULE [module-name[, . . . ]] 3 Qualifiers/ALL> Specifies that SCA display both hidden and visible modules./BRIEF@ Indicates how much information you want displayed. The /BRIEFB qualifier causes SCA to display selected information about each& indicated module in tabular format.D If you specify a wildcard expression for the parameter, or if SCA& assumes one, /BRIEF is the default./FULL? Indicates how much information you want displayed. The /FULLD qualifier causes SCA to list all information available about each indicated module.B If you specify an explicit name for the parameter, /FULL is the default./HIDDEN2 Specifies that SCA display only hidden modules./LIBRARY /LIBRARY=library-spec /LIBRARY=* (D)B Specifies an SCA library containing the module to be displayed.C The library must be one of the current SCA libraries established by a SET LIBRARY command.E If you do not specify the /LIBRARY qualifier, SCA assumes you have' specified all current SCA libraries./OUTPUT /OUTPUT[=file-spec]D Directs command output to a file rather than to the $SHOW buffer.4 The default output file specification is SCA.LIS./VISIBLE /VISIBLE (D)3 Specifies that SCA display only visible modules. 3 Parametermodule-name[, . . . ]E Specifies the modules to be displayed. If you omit this parameter,C SCA displays all modules. You may specify wildcard module names. 2 PACKAGE6 Displays the characteristics of indicated packages. Format SHOW PACKAGE package-name 3 Qualifiers/BRIEF@ Indicates how much information you want displayed. The /BRIEFB qualifier causes LSE to display (in tabular format) the name of each indicated package.D If you specify a wildcard expression for the parameter, or if LSE& assumes one, /BRIEF is the default./FULL? Indicates how much information you want displayed. The /FULL@ qualifier causes LSE to display all the information availableC about each indicated package, as specified by the current DEFINEE PACKAGE command (see the list of qualifiers for the DEFINE PACKAGE command).B If you specify an explicit name for the parameter, /FULL is the default. 3 Parameter package-nameA Specifies the name of the package to be displayed. You may useD wildcards. If you omit this parameter, LSE displays the status of all known packages. 2 PARAMETER8 Displays the characteristics of indicated parameters. Format& SHOW PARAMETER [parameter-name] 3 Qualifiers/BRIEF@ Indicates how much information you want displayed. The /BRIEFC qualifier causes LSE to display (in tabular format) the name andC package associated with each indicated parameter. If you specifyB a wildcard expression for the parameter, or if LSE assumes one, /BRIEF is the default./FULL? Indicates how much information you want displayed. The /FULL@ qualifier causes LSE to display all the information availableE about each indicated parameter, as specified by the current DEFINE? PARAMETER command (see the list of qualifiers for the DEFINE PARAMETER command).B If you specify an explicit name for the parameter, /FULL is the default. /LANGUAGE /LANGUAGE=language-name< Shows only those parameters associated with the indicatedC language. If you do not specify a language, LSE uses the currentD language. If you specify /LANGUAGE=*, LSE displays information onC any parameter that matches the parameter name, regardless of the$ language for which it is defined.B The /LANGUAGE qualifier is mutually exclusive with the /PACKAGE qualifier./PACKAGE /PACKAGE=package-name@ Specifies the name of the package with which the parameter isD associated. The /PACKAGE qualifier is mutually exclusive with the /LANGUAGE qualifier. 3 Parameterparameter-nameE Specifies which parameters are to be shown. If you omit this name,< LSE assumes you have specified a wildcard parameter name.2 PLACEHOLDER: Displays the characteristics of indicated placeholders. Format* SHOW PLACEHOLDER [placeholder-name] 3 Qualifiers/BRIEF@ Indicates how much information you want displayed. The /BRIEFC qualifier causes LSE to display (in tabular format) the name and# description of each placeholder.D If you specify a wildcard expression for the parameter, or if LSE& assumes one, /BRIEF is the default./FULL@ The /FULL qualifier causes LSE to display all the informationB available about each indicated placeholder, as specified by theE current DEFINE PLACEHOLDER command (see the list of qualifiers for# the DEFINE PLACEHOLDER command).B If you specify an explicit name for the parameter, /FULL is the default. /LANGUAGE /LANGUAGE=language-name@ Associates a language with the specified placeholders. If you> do not specify a language, LSE associates placeholders withA the current language. If you specify /LANGUAGE=*, LSE displaysD information on any placeholder that matches the placeholder name,6 regardless of the language for which it is defined. 3 Parameterplaceholder-nameA Specifies which placeholders are to be shown. If you omit thisC parameter, LSE assumes you have specified a wildcard placeholder name.2 QUERYC [SCA Command] Displays information about one or more current SCA query sessions. Format" SHOW QUERY [query-name,...] 3 Qualifiers/BRIEF /BRIEF (D)? Indicates how much information you want to be displayed. TheA /BRIEF qualifier causes SCA to display (in tabular format) theB query name, query expression, and description for the indicated query./FULL? Indicates how muc h information you want to be displayed. TheB /FULL qualifier causes SCA to display all information about the indicated query. 3 Parameter query-nameB Specifies the name of the query to be displayed. If you specifyC a null query name (""), SCA assumes you mean the current query.@ If you omit this parameter, SCA assumes you have specified an asterisk (*). 2 ROUTINE8 Displays the characteristics of one or more routines. Format" SHOW ROUTINE [routine-n!ame] 3 Qualifiers/BRIEF@ Indicates how much information you want displayed. The /BRIEFC qualifier causes LSE to display (in tabular format) the name and( package associated with each routine.D If you specify a wildcard expression for the parameter, or if LSE& assumes one, /BRIEF is the default./FULL? Indicates how much information you want displayed. The /FULL@ qualifier causes LSE to display all the information availableC about each indicated routine, as "specified by the current DEFINEE ROUTINE command (see the list of qualifiers for the DEFINE ROUTINE command).B If you specify an explicit name for the parameter, /FULL is the default. /LANGUAGE /LANGUAGE=language-nameE Shows routines that are associated with the indicated language. IfC you do not specify a language, LSE uses the current language. IfC you specify /LANGUAGE=*, LSE displays information on any routine@ that matches the routine name, regard#less of the language forA which it is defined. The /LANGUAGE and /PACKAGE qualifiers are mutually exclusive./PACKAGE /PACKAGE=package-name> Specifies the name of the package with which the routine isA associated. The /PACKAGE and /LANGUAGE qualifiers are mutually exclusive. 3 Parameter routine-nameA Indicates which routines are to be displayed. If you omit thisE parameter, LSE assumes you have specified a wildcard routine name. 2 SCREEN? Displ!$ays the current values set with the SET SCREEN command. Format SHOW SCREEN 2 SEARCH0 Displays the settings of text-search options. Format SHOW SEARCH2 SOURCE_DIRECTORY< Displays the setting of the SET SOURCE_DIRECTORY command. Format SHOW SOURCE_DIRECTORY 2 SUMMARY4 Shows statistics and other information about LSE. Format SHOW SUMMARY2 TAG2 Displays the characteristics of indicated tags. Format % SHOW TAG [tag-name] 3 Qualifiers/BRIEF@ Indicates how much information you want displayed. The /BRIEFC qualifier causes LSE to display (in tabular format) the name and description of each tag.D If you specify a wildcard expression for the parameter, or if LSE& assumes one, /BRIEF is the default./FULL@ The /FULL qualifier causes LSE to display all the informationB available about each indicated tag, as specified by the currentD DEFINE TAG command (see t&he list of qualifiers for the DEFINE TAG command).B If you specify an explicit name for the parameter, /FULL is the default. /LANGUAGE /LANGUAGE=language-name? Associates a language with the specified tags. If you do notE specify a language, LSE associates tags with the current language.B If you specify /LANGUAGE=*, LSE displays information on any tagE that matches the tag name, regardless of the language for which it is defined. 3 Parametertag-'nameD Specifies which tags are to be shown. If you omit this parameter,6 LSE assumes you have specified a wildcard tag name.2 TOKEN6 Displays the characteristics of one or more tokens. Format SHOW TOKEN [token-name] 3 Qualifiers/BRIEF@ Indicates how much information you want displayed. The /BRIEFC qualifier causes LSE to display (in tabular format) the name and description of each token.D If you specify a wildcard expression for the parameter,( or if LSE& assumes one, /BRIEF is the default./FULL? Indicates how much information you want displayed. The /FULL@ qualifier causes LSE to display all the information availableA about each indicated token, as specified by the current DEFINEA TOKEN command (see the list of qualifiers for the DEFINE TOKEN command).B If you specify an explicit name for the parameter, /FULL is the default. /LANGUAGE /LANGUAGE=language-nameA Associates a language w)ith the specified tokens. If you do not= specify a language, LSE associates tokens with the current@ language. If you specify /LANGUAGE=*, LSE displays any tokensE that match the token name, regardless of the language for which it is defined. 3 Parameter token-name? Indicates which tokens are to be displayed. If you omit thisC parameter, LSE assumes you have specified a wildcard token name. 2 VERSION= [SCA Command] Displays the current version of LSE and SCA. * Format SHOW VERSIONwwү 1 SHRINK 2 WINDOW Shrinks the current window. Format SHRINK WINDOW line-count 3 Parameter line-countE Indicates the number of screen lines you want to subtract from theC current window. The maximum size of a window depends on the sizeE and type of the terminal screen you are using. The minimum size is5 one line of text and one line for the status line.wwү 1 SPAWN< + [SCA Command] Spawns a subprocess running the DCL command0 interpreter and suspends the editing session.& NOTEB This function is not available in DECwindows; any attempt to invoke it incurs an error. Format SPAWN [command] 2 ParametercommandE Specifies a command line to be executed by the spawned subprocess.E If you specify this parameter, the subprocess ends and LSE regains* control upon completion of the comm,and.wwӯ 1 SPELLC Runs DECspell to check the currently selected text or the entire buffer. Format SPELLwwӯ 1 SPLIT 2 WINDOW7 Divides the current window into two or more windows. Format! SPLIT WINDOW [window-count] 3 Parameter window-countC Specifies the number of windows to create. The maximum size of aE window depends on the size and type of the terminal screen you areC using. The minimu-m size is one line of text and one line for the status line.< The text cursor appears in the lowest of the new windows.wwӯ 1 SUBSTITUTE8 Replaces occurrences of one text string with another. Format SUBSTITUTE search-string replace-string 2 Qualifiers/ALL@ Specifies that all occurrences of the search string are to beB replaced with the replace string. Specifying the /ALL qualifier@ causes LSE to perform a.ll the indicated substitutions without* prompting you for further instructions./CASE_MATCHING /CASE_MATCHING /NOCASE_MATCHING (D)= Specifies whether LSE uses the case of words in the search? string to determine the case for the replacement string. The= four conditions are: uppercase, lowercase, capitalized, or? undetermined. For example, if a word in the search string isB all uppercase, all the letters of the corresponding word in the? replacement string /become uppercase. If a word in the search? string does not match the criteria for uppercase, lowercase,> or capitalization, or there are no alphabetic characters in@ the search string word, its case is undetermined and LSE doesC not modify the case of the corresponding word in the replacement string.= If the replacement string contains more than one word, LSEC respectively matches the case of words in the replacement stringA with the case of the corresponding words in t0he search string.A If the search string contains fewer words than the replacement> string, LSE matches the case of the additional words of theB replacement string with the case of the last word in the search string.E Specifying the /NOCASE_MATCHING qualifier causes LSE not to modifyA the case of the replacement string to match that of the search string./CONFIRM /CONFIRM (D)D Instructs LSE to prompt you for a confirmation at each occurrence@ before perf 1orming a substitution. If you specify the /CONFIRMA qualifier, LSE highlights each occurrence of the search string7 located by the search and prompts you for an action.3 o YES instructs LSE to replace this occurrence.D o NO instructs LSE not to replace this occurrence but to proceed with the command.A o QUIT ends the command without replacing this occurrence and% stops the SUBSTITUTE operation.@ o ALL replaces this occurrence and all remaining occurrenc2es without further prompting./DIALOG /DIALOG /NODIALOG (D)A Instructs LSE to use a dialog box to prompt you for parametersC and qualifier values. If you specify this qualifier, the command@ parameters are optional. If you supply command parameters andC qualifiers with the /DIALOG qualifier, LSE uses those parameters= and qualifiers to set the initial state of the dialog box.E The Substitute dialog box has the same fields as the Search dialogD 3 box, plus a button for case-matching replacement and a text field for the replacement string./PATTERN /PATTERN /NOPATTERN (D)B Enables or disables special interpretation of wildcard patterns@ in a search string. Use the SET SEARCH command to specify the3 style of wildcard patterns (VMS, ULTRIX or TPU).C For details of the pattern styles use the command HELP FEATURES PATTERNS.? When you specify the /NOPATTERN qualifier (or when it is the? default4), special interpretation of wildcard patterns in the search string is disabled./SINGLE@ Specifies that only one occurrence of the search string is toB be replaced with the replacement string. Specifying the /SINGLE@ qualifier causes LSE to perform a single substitution without prompting you for an action. 2 Parameters search-string, Specifies the string for which to search.@ If the TPU pattern style is being used the search-string is a< TPU expression wh5ich must evaluate to a TPU pattern (for  example: "'abc' | 'def'").replace-string& Specifies the string to substitute.A If the TPU pattern style is being used the replace-string is a; TPU expression which must evaluate to a TPU string (for  example: "'ghi'").ww6ӯ 1 TAB@ Inserts indentation. If the cursor is at the beginning of theB line, it moves to the current indentation level; otherwise, the% cursor moves to the next tab stop. Forma%6t TABww6ӯ 1 TOGGLE2 SELECT_MARK* Sets and cancels the SELECT_MARK state. Format TOGGLE SELECT_MARKww6ӯ 1 TWO 2 WINDOWS. Splits the current window into two windows. Format TWO WINDOWSww6ӯ 1 UNDOD Reverses the most recently executed LSE command. The UNDO commandB reverses any LSE command except for the UNDO and REDO commands. Format UNDO2 ENTER COMME7NT9 Reverses the effect of the last ENTER COMMENT command. Format UNDO ENTER COMMENTww]ӯ 1 UNERASED Restores the text deleted by the corresponding ERASE command that you most recently executed. Format UNERASE [erase-option] 2 Parameter erase-option< The following are valid options with the UNERASE command: CHARACTER LINE PLACEHOLDER SELECTION WORDww]ӯ 1 UNEXPAN!8D- Reverses the effect of the EXPAND command. Format UNEXPANDww]ӯ 1 UNRESERVEB Cancels the reservation of a CMS element with the same name and2 type as the input file for your current buffer. Format UNRESERVEww]ӯ 1 UNTAB? Erases blanks and tabs to the left of the cursor, moving the cursor to the previous stop. Format UNTABww]ӯ 1 UPPERCASE2 WORD) Changes the 9 current word to uppercase. Format UPPERCASE WORDww]ӯ 1 VERIFYE [SCA Command] Verifies that the specified SCA libraries are valid,' and repairs any corrupted libraries. Format& VERIFY [library-spec[, . . . ]] 2 Qualifiers/LOG /LOG (D) /NOLOGC Indicates whether SCA reports the library verification or repair operation./RECOVER /RECOVER /NORECOVER (D); Indicates whether SCA shoul :d repair a corrupted library.B If the interrupted command was a LOAD command, SCA deletes from= the library any module that had begun to load but that had? not completed loading. Also, SCA cannot recover modules thatA were waiting to be processed for loading when the interruption= occurred. To load interrupted and waiting modules, issue a5 subsequent LOAD command and include those modules.D If the interrupted library operation was a DELETE MODULE command,? the /RECOVE;R qualifier causes SCA to delete the incompletely@ deleted module. Any modules still waiting to be processed for@ deletion when the interruption occurred are excluded from theC recovery operation; to delete them, you must respecify them in a$ subsequent DELETE MODULE command. 2 Parameterlibrary-spec[, . . . ]D Specifies the SCA libraries to be verified. If you do not specifyA a library, SCA assumes you have specified the primary library.wwӯ 1 VIEW< 2 SOURCE& Displays an overview of the buffer. Format VIEW SOURCE 3 Qualifiers/DEBUGA Provides a way to debug adjustment definitions by generating aC copy of the source buffer indented as LSE views the indentation.C LSE displays the result in a system buffer named $OVERVIEW, with? all source lines visible. Numeric values for the indentationB are also displayed, along with information about the adjustment applied to each line.E You cannot =specify the /DEBUG qualifier with the /DEPTH qualifier./DEPTH /DEPTH=n /DEPTH=ALL (D)B Displays the top n levels of detail of the buffer. Lower levelsB are collapsed and represented by overview lines. If you specifyE /DEPTH=ALL, all the lines in the buffer are displayed; none of the( lines are replaced by overview lines.E You cannot specify the /DEPTH qualifier with the /DEBUG qualifier.wwӯ 1 WHAT2 LINEA Shows the current lin>e number and total number of lines in theD buffer. Also shows what percentage of the lines in the buffer are" located above the current line. Format WHAT LINEwwӯ 1 WRITEB Writes the contents of a buffer or the contents of the selected range to a file. Format WRITE [file-spec] 2 Qualifiers/BUFFER /BUFFER=buffer-name> Indicates which buffer is to be written. The default is the current buffer./DIALOG?B Instructs LSE to use a dialog box to prompt you for a parameter> value. The command parameter is optional if you supply thisB qualifier. If you specify a command parameter with /DIALOG, LSEB uses that parameter to set the initial state of the dialog box. /SELECT_RANGE6 Indicates that the selected range is to be written./VISIBLEE Indicates that the visible records in the buffer or selected rangeA be written to a file. You must specify the file-spec parameter w hen you use this qualifier. 2 Parameter file-spec= Specifies the file to which the buffer will be written. By? default, LSE writes the data to the file associated with theA buffer. This parameter is required if you specify the /SELECT_ RANGE qualifier.wwREPLACEREPORTRESERVEREVIEWSAVESEARCHSELECTSETSHIFTSHOWSHRINKSPAWNSPELLSPLIT SUBSTITUTETABTOGGLETWOUNDOUNERASEUNEXPAND UNRESERVEUNTAB UPPERCASEVERIFYVIEWWHATWRITE