!************************************************************************* ! * ! © Copyright 2005 Hewlett-Packard Development Company, L.P. * ! * ! Confidential computer software. Valid license from HP required for * ! possession, use or copying. Consistent with FAR 12.211 and 12.212, * ! Commercial Computer Software, Computer Software Documentation, and * ! Technical Data for Commercial Items are licensed to the U.S. * ! Government under vendor's standard commercial license. * ! * !************************************************************************* !++ ! Facility: ! Extended LSE (XLSE) ! ! Abstract: ! This module defines the SDL language attributes, templates ! and placeholders. ! ! Author: ! Joel L. Clinkenbeard, Technical Languages and Environments Group ! W. Ward Clark, LinkWorks Project ! ! Creation Date: 1-Nov-84 ! ! Modification History: ! X0.3 WWC 15-Nov-84 add BAR and END_BAR aliases ! X0.3-1 WWC 3-Jan-85 add basic module definitions ! X0.4 WWC 28-Feb-85 TEMPLATE --> TOKEN ! X0.6 WWC 14-May-85 /AUTOFILL --> /AUTOSUBSTITUTE ! BAR --> BBAR, END_BAR --> EBAR ! X0.7 JLC 22-Mar-85 define SDL language placeholders and templates ! X0.7-1 WWC 18-Aug-85 add definitions for SDLDOC ! X0.7-2 WWC 25-Aug-85 SDL$HELP --> SYS$HELP:HELPLIB.HLB ! X0.9 WWC 15-Jan-86 Copyright placeholder: 1985 --> 1986 ! X0.9-1 WWC 16-Jan-86 improve BLOCK-DECLARATION template ! X0.9-2 WWC 17-Jan-86 reformatted many templates, changed ";" generation ! X0.10 WWC 16-Nov-86 upgrade to LSE V2 ! X1.1 WWC 10-Jan-87 Copyright placeholder: 1986 --> 1987 ! X1.1-1 WWC 30-Mar-87 new DEFINE LANGUAGE /COMMENT qualifier ! X1.2 WWC 23-Aug-87 remove RUNOFF change bar definitions ! X1.2-1 WWC 27-Aug-87 '{' is an SDL comment character, ! can't be placeholder delimiter ! X1.2-2 WWC 14-Feb-88 TBS alias --> token, ... ! 1987 --> 1988 ! X1.3 WWC 3-Dec-88 update help topics ! X1.3-1 WWC 15-Jan-89 normalize LSE command syntax ! 1988 --> 1989 ! X1.3-2 WWC 11-Feb-89 remove XLSE-specific definitions ! X3.0 WWC 1-Jan-90 upgrade to LSE V3.0 ! 1989 --> 1990 ! X3.0-1 WWC 28-Jan-90 add PDF definitions ! X3.1 WWC 29-Oct-91 1990 --> 1991 ! X4.0a WWC 24-Feb-93 1991 --> 1993 !-- ! !+ ! SDL Language Definition !- DELETE LANGUAGE sdl DEFINE LANGUAGE sdl - /COMMENT=( - ASSOCIATED_IDENTIFIER = PREVIOUS, - NOBEGIN, - NOEND, - NOFIXED, - NOLINE, - TRAILING=("{+","{-","{","/*+","/*-","/*")) - /CAPABILITIES=NODIAGNOSTICS - /COMPILE_COMMAND="SDL/PARSE/LIST" - /EXPAND_CASE=AS_IS - /FILE_TYPES=(.SDL) - /HELP_LIBRARY=HELPLIB - /IDENTIFIER_CHARACTERS= - "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ%$_0123456789#" - /INITIAL_STRING="[module]" - /LEFT_MARGIN=CONTEXT_DEPENDENT - /OVERVIEW_OPTIONS=( - MINIMUM_LINES=1, - TAB_RANGE=(4,8)) - /PLACEHOLDER_DELIMITERS=( - REQUIRED= ("<",">"), - REQUIRED_LIST= ("<",">..."), - OPTIONAL= ("[","]"), - OPTIONAL_LIST= ("[","]..."), - PSEUDOCODE= ("«","»")) - /PUNCTUATION_CHARACTERS=",;()" - /QUOTED_ITEM=(QUOTES="""") - /RIGHT_MARGIN=80 - /TAB_INCREMENT=4 - /TOPIC_STRING="sdl" - /NOWRAP - /VERSION="SDL V3.2 (XLSE X4.0a)" !+ ! Delete any language definitions !- SET LANGUAGE sdl DELETE PLACEHOLDER * DELETE TOKEN * ! !+ ! Language-independent definitions !- DELETE PLACEHOLDER "lse$block_comment" DEFINE PLACEHOLDER "lse$block_comment" - /TYPE=NONTERMINAL "{ " "{" END DEFINE DELETE PLACEHOLDER "lse$generic" DEFINE PLACEHOLDER "lse$generic" - /TYPE=NONTERMINAL "" END DEFINE DELETE PLACEHOLDER "lse$line_comment" DEFINE PLACEHOLDER "lse$line_comment" - /TYPE=NONTERMINAL "{ " END DEFINE DEFINE PLACEHOLDER "module" - /DESCRIPTION="SDL MODULE definition" - /DUPLICATION=VERTICAL - /TOPIC="Declarations MODULE" - /TYPE=NONTERMINAL "MODULE [ident-option];" "{[module-level-comments]" " " "[statement]..." "END_MODULE [module-name];" END DEFINE DEFINE TOKEN "module" /PLACEHOLDER="module" DEFINE PLACEHOLDER "module-level-comments" - /DESCRIPTION="" - /DUPLICATION=VERTICAL - /TOPIC="" - /TYPE=NONTERMINAL "++" " Facility:" " " " " " Abstract:" " " " " " Author:" " " " " " Creation Date: " " " " Modification History:" "--" END DEFINE DEFINE PLACEHOLDER "module-name" - /DESCRIPTION="Valid module name" - /AUTO_SUBSTITUTE - /TOPIC="Declarations MODULE" - /TYPE=TERMINAL "Valid module name" END DEFINE ! !+ ! SDL Language Support !- DEFINE PLACEHOLDER "IDENT-option" - /DESCRIPTION="IDENT option" - /TOPIC="Declarations MODULE" - /TYPE=NONTERMINAL "IDENT ""[ident-text]""" END DEFINE DEFINE TOKEN "IDENT" /PLACEHOLDER="IDENT-option" DEFINE PLACEHOLDER "ident-text" - /DESCRIPTION="Any string of text" - /TOPIC="Declarations MODULE" - /TYPE=TERMINAL "Any string of text" END DEFINE DEFINE PLACEHOLDER "statement" - /DESCRIPTION="" - /DUPLICATION=VERTICAL - /TOPIC="Declarations" - /TYPE=MENU "AGGREGATE-declaration" /PLACEHOLDER "BLOCK-declaration" /PLACEHOLDER "CONSTANT-declaration" /PLACEHOLDER "ENTRY-declaration" /PLACEHOLDER "ITEM-declaration" /PLACEHOLDER "local-assignment" /PLACEHOLDER "INCLUDE-statement" /PLACEHOLDER "output-comment" /PLACEHOLDER END DEFINE DEFINE PLACEHOLDER "declaration-statement" - /DESCRIPTION="" - /DUPLICATION=VERTICAL - /TOPIC="Declarations" - /TYPE=MENU "CONSTANT-declaration" /PLACEHOLDER "BLOCK-declaration" /PLACEHOLDER "AGGREGATE-declaration" /PLACEHOLDER "ENTRY-declaration" /PLACEHOLDER "ITEM-declaration" /PLACEHOLDER END DEFINE DEFINE TOKEN "declaration" /PLACEHOLDER="declaration-statement" DEFINE PLACEHOLDER "CONSTANT-declaration" - /DESCRIPTION="CONSTANT declaration" - /DUPLICATION=VERTICAL - /TOPIC="Declarations CONSTANT" - /TYPE=NONTERMINAL "CONSTANT [PREFIX-option] [TAG-option] [COUNTER-option];" END DEFINE DEFINE TOKEN "CONSTANT" /PLACEHOLDER="CONSTANT-declaration" DEFINE PLACEHOLDER "constant-definition" - /DESCRIPTION="" - /SEPARATOR="," - /TOPIC="Declarations CONSTANT" - /TYPE=MENU " EQUALS " "([constant-name]...) EQUALS [INCREMENT-expression]" END DEFINE DEFINE PLACEHOLDER "constant-name" - /DESCRIPTION="Name of a constant" - /DUPLICATION=HORIZONTAL - /SEPARATOR="," - /TOPIC="Declarations CONSTANT" - /TYPE=TERMINAL "Name of a constant" END DEFINE DEFINE PLACEHOLDER "INCREMENT-expression" - /DESCRIPTION="Constant increment expression" - /TOPIC="Declarations CONSTANT" - /TYPE=NONTERMINAL "INCREMENT " END DEFINE DEFINE TOKEN "INCREMENT" /PLACEHOLDER="INCREMENT-expression" DEFINE PLACEHOLDER "expression" - /DESCRIPTION="Valid SDL expression" - /TOPIC="Expressions" - /TYPE=MENU "numeric-constant" /PLACEHOLDER " + " " - " " * " " / " "- " "()" "logical-shift-expression" /PLACEHOLDER "logical-or-expression" /PLACEHOLDER "logical-and-expression" /PLACEHOLDER "offset-location-symbol" /PLACEHOLDER END DEFINE DEFINE PLACEHOLDER "constant-expression" /PLACEHOLDER="expression" DEFINE PLACEHOLDER "numeric-constant" - /DESCRIPTION="Numeric constant" - /TOPIC="Expressions Numeric_Values" - /TYPE=MENU "digit-string" /PLACEHOLDER "decimal-constant" /PLACEHOLDER "hexadecimal-constant" /PLACEHOLDER "binary-constant" /PLACEHOLDER "octal-constant" /PLACEHOLDER "ascii-constant" /PLACEHOLDER END DEFINE DEFINE PLACEHOLDER "digit-string" - /DESCRIPTION="String of decimal digits" - /TOPIC="Expressions Numeric_Values" - /TYPE=TERMINAL "String of digits in range 0-9" END DEFINE DEFINE PLACEHOLDER "decimal-constant" - /DESCRIPTION="Decimal constant string" - /TOPIC="Expressions Numeric_Values" - /TYPE=NONTERMINAL "%D" END DEFINE DEFINE PLACEHOLDER "hexadecimal-constant" - /DESCRIPTION="hexadecimal constant string" - /TOPIC="Expressions Numeric_Values" - /TYPE=NONTERMINAL "%X" END DEFINE DEFINE PLACEHOLDER "hexadecimal-digit-string" - /DESCRIPTION="String of hexadecimal digits" - /TOPIC="Expressions Numeric_Values" - /TYPE=TERMINAL "String of digits in range 0-9, A-F" END DEFINE DEFINE PLACEHOLDER "octal-constant" - /DESCRIPTION="octal constant string" - /TOPIC="Expressions Numeric_Values" - /TYPE=NONTERMINAL "%O" END DEFINE DEFINE PLACEHOLDER "octal-digit-string" - /DESCRIPTION="String of octal digits" - /TOPIC="Expressions Numeric_Values" - /TYPE=TERMINAL "String of digits in range 0-7" END DEFINE DEFINE PLACEHOLDER "binary-constant" - /DESCRIPTION="binary constant string" - /TOPIC="Expressions Numeric_Values" - /TYPE=NONTERMINAL "%B" END DEFINE DEFINE PLACEHOLDER "binary-digit-string" - /DESCRIPTION="String of binary digits" - /TOPIC="Expressions Numeric_Values" - /TYPE=TERMINAL "String of digits in range 0-1" END DEFINE DEFINE PLACEHOLDER "ascii-constant" - /DESCRIPTION="ascii constant string" - /TOPIC="" - /TYPE=NONTERMINAL "%A" END DEFINE DEFINE PLACEHOLDER "printable-ascii-string" - /DESCRIPTION="String of printable ascii characters" - /TOPIC="" - /TYPE=TERMINAL "String of printable ascii characters" END DEFINE DEFINE PLACEHOLDER "logical-shift-expression" - /DESCRIPTION="Logical shift expression" - /TOPIC="Expressions Operators" - /TYPE=NONTERMINAL " @ " END DEFINE DEFINE PLACEHOLDER "logical-or-expression" - /DESCRIPTION="Logical OR expression" - /TOPIC="Expressions Operators" - /TYPE=NONTERMINAL " ! " END DEFINE DEFINE PLACEHOLDER "logical-and-expression" - /DESCRIPTION="Logical AND expression" - /TOPIC="Expressions Operators" - /TYPE=NONTERMINAL " & " END DEFINE DEFINE PLACEHOLDER "offset-location-symbol" - /DESCRIPTION="AGGREGATE offset location symbols" - /TOPIC="Expressions Offset_Symbols" - /TYPE=MENU "origin-byte-offset-symbol" /PLACEHOLDER "first-member-byte-offset-symbol" /PLACEHOLDER "bit-offset-symbol" /PLACEHOLDER END DEFINE DEFINE PLACEHOLDER "origin-byte-offset-symbol" - /DESCRIPTION="Current byte offset from origin in an AGGREGATE declaration" - /TOPIC="Expressions Offset_Symbols" - /TYPE=NONTERMINAL "." END DEFINE DEFINE PLACEHOLDER "first-member-byte-offset-symbol" - /DESCRIPTION="Current byte offset relative to first member in AGGREGATE" - /TOPIC="Expressions Offset_Symbols" - /TYPE=NONTERMINAL ":" END DEFINE DEFINE PLACEHOLDER "bit-offset-symbol" - /DESCRIPTION="Bit offset from most recent byte-aligned element" - /TOPIC="Expressions Offset_Symbols" - /TYPE=NONTERMINAL "^" END DEFINE DEFINE PLACEHOLDER "AGGREGATE-declaration" - /DESCRIPTION="Declaration of aggregate" - /DUPLICATION=VERTICAL - /TOPIC="Declarations AGGREGATE" - /TYPE=NONTERMINAL "AGGREGATE [aggregate-options]...;" " ..." " END [aggregate-name];" END DEFINE DEFINE TOKEN "AGGREGATE" /PLACEHOLDER="AGGREGATE-declaration" DEFINE PLACEHOLDER "aggregate-name" - /DESCRIPTION="Name of aggregate" - /AUTO_SUBSTITUTE - /TOPIC="Declarations AGGREGATE" - /TYPE=TERMINAL "Name of aggregate" END DEFINE DEFINE PLACEHOLDER "aggregate-type" - /DESCRIPTION="STRUCTURE, UNION, or implicit union" - /TOPIC="Declarations AGGREGATE" - /TYPE=MENU "STRUCTURE" "UNION" "item-data-type" /PLACEHOLDER END DEFINE DEFINE PLACEHOLDER "aggregate-options" - /DESCRIPTION="Aggregate options" - /SEPARATOR=" " - /TOPIC="Declarations AGGREGATE" - /TYPE=MENU "member-options" /PLACEHOLDER "storage-class" /PLACEHOLDER "ORIGIN " "MARKER " END DEFINE DEFINE PLACEHOLDER "STRUCTURE-declaration" - /DESCRIPTION="Declaration of structure aggregate" - /DUPLICATION=VERTICAL - /TOPIC="Declarations STRUCTURE" - /TYPE=NONTERMINAL "AGGREGATE STRUCTURE [aggregate-options]...;" " ..." " END [aggregate-name];" END DEFINE DEFINE TOKEN "STRUCTURE" /PLACEHOLDER="STRUCTURE-declaration" DEFINE PLACEHOLDER "UNION-declaration" - /DESCRIPTION="Declaration of union aggregate" - /DUPLICATION=VERTICAL - /TOPIC="Declarations UNION" - /TYPE=NONTERMINAL "AGGREGATE UNION [aggregate-options]...;" " ..." " END [aggregate-name];" END DEFINE DEFINE TOKEN "UNION" /PLACEHOLDER="UNION-declaration" DEFINE PLACEHOLDER "member-declaration" - /DESCRIPTION="Declaration of aggregate member" - /DUPLICATION=VERTICAL - /TOPIC="Declarations AGGREGATE" - /TYPE=MENU " [member-options]...;[description]" "substructure-declaration" /PLACEHOLDER "subunion-declaration" /PLACEHOLDER END DEFINE DEFINE TOKEN "member" /PLACEHOLDER="member-declaration" DEFINE PLACEHOLDER "member-name" - /DESCRIPTION="Name of aggregate member" - /TOPIC="Declarations AGGREGATE" - /TYPE=TERMINAL "Name of aggregate member" END DEFINE DEFINE PLACEHOLDER "member-type" /PLACEHOLDER="item-data-type" DEFINE PLACEHOLDER "substructure-declaration" - /DESCRIPTION="Declaration of structure subaggregate" - /DUPLICATION=VERTICAL - /TOPIC="Declarations STRUCTURE" - /TYPE=NONTERMINAL " STRUCTURE [member-options]...;[description]" " ..." " END ;" END DEFINE DEFINE TOKEN "substructure" /PLACEHOLDER="substructure-declaration" DEFINE PLACEHOLDER "subunion-declaration" - /DESCRIPTION="Declaration of union subaggregate" - /DUPLICATION=VERTICAL - /TOPIC="Declarations UNION" - /TYPE=NONTERMINAL " UNION [member-options]...;[description]" " ..." " END ;" END DEFINE DEFINE TOKEN "subunion" /PLACEHOLDER="subunion-declaration" DEFINE PLACEHOLDER "subaggregate-name" /PLACEHOLDER="aggregate-name" DEFINE PLACEHOLDER "item-data-type" - /DESCRIPTION="Data type of item" - /TOPIC="Data_Types" - /TYPE=MENU "LONGWORD [UNSIGNED]" "WORD [UNSIGNED]" "BYTE [UNSIGNED]" "BITFIELD-clause" /PLACEHOLDER "CHARACTER-clause" /PLACEHOLDER "BOOLEAN" "QUADWORD [UNSIGNED]" "OCTAWORD [UNSIGNED]" "F_FLOATING" "D_FLOATING" "G_FLOATING" "H_FLOATING" "ADDRESS-clause" /PLACEHOLDER "DECIMAL PRECISION (, )" END DEFINE DEFINE TOKEN "LONGWORD" - /DESCRIPTION="LONGWORD data type" - /TOPIC="Data_Types Integer" "LONGWORD [UNSIGNED]" END DEFINE DEFINE TOKEN "WORD" - /DESCRIPTION="WORD data type" - /TOPIC="Data_Types Integer" "WORD [UNSIGNED]" END DEFINE DEFINE TOKEN "BYTE" - /DESCRIPTION="BYTE data type" - /TOPIC="Data_Types Integer" "BYTE [UNSIGNED]" END DEFINE DEFINE TOKEN "QUADWORD" - /DESCRIPTION="QUADWORD data type" - /TOPIC="Data_Types Integer" "QUADWORD [UNSIGNED]" END DEFINE DEFINE TOKEN "OCTAWORD" - /DESCRIPTION="OCTAWORD data type" - /TOPIC="Data_Types Integer" "OCTAWORD [UNSIGNED]" END DEFINE DEFINE PLACEHOLDER "UNSIGNED" - /DESCRIPTION="UNSIGNED option" - /TYPE=NONTERMINAL "UNSIGNED" END DEFINE DEFINE TOKEN "UNSIGNED" /PLACEHOLDER="UNSIGNED" DEFINE TOKEN "F_FLOATING" - /DESCRIPTION="F_FLOATING data type" - /TOPIC="Data_Types Floating-Point" "F_FLOATING" END DEFINE DEFINE TOKEN "G_FLOATING" - /DESCRIPTION="G_FLOATING data type" - /TOPIC="Data_Types Floating-Point" "G_FLOATING" END DEFINE DEFINE TOKEN "D_FLOATING" - /DESCRIPTION="D_FLOATING data type" - /TOPIC="Data_Types Floating-Point" "D_FLOATING" END DEFINE DEFINE TOKEN "H_FLOATING" - /DESCRIPTION="H_FLOATING data type" - /TOPIC="Data_Types Floating-Point" "H_FLOATING" END DEFINE DEFINE TOKEN "BOOLEAN" - /DESCRIPTION="BOOLEAN data type" - /TOPIC="Data_Types Floating-Point" "BOOLEAN" END DEFINE DEFINE TOKEN "DECIMAL_PRECISION" - /DESCRIPTION="DECIMAL PRECISION data type" - /TOPIC="Data_Types DECIMAL" "DECIMAL PRECISION (, )" END DEFINE DEFINE PLACEHOLDER "precision" - /DESCRIPTION="Decimal precision attribute" - /TOPIC="Data_Types DECIMAL" - /TYPE=TERMINAL "Any valid SDL constant or constant expression" END DEFINE DEFINE PLACEHOLDER "scale" - /DESCRIPTION="Decimal precision scale attribute" - /TOPIC="Data_Types DECIMAL" - /TYPE=TERMINAL "Any valid SDL constant or constant expression" END DEFINE DEFINE PLACEHOLDER "ADDRESS-clause" - /DESCRIPTION="Address (pointer) datatype clause" - /TOPIC="Data_Types ADDRESS" - /TYPE=MENU "ADDRESS" "ADDRESS ()" "ADDRESS ()" END DEFINE DEFINE TOKEN "ADDRESS" /PLACEHOLDER="ADDRESS-clause" DEFINE PLACEHOLDER "BITFIELD-clause" - /DESCRIPTION="Bitfield data type clause" - /TOPIC="Data_Types BITFIELD" - /TYPE=NONTERMINAL "BITFIELD [bitfield-LENGTH-option] [MASK] [SIGNED]" END DEFINE DEFINE TOKEN "BITFIELD" /PLACEHOLDER="BITFIELD-clause" DEFINE PLACEHOLDER "bitfield-LENGTH-option" - /DESCRIPTION="Bitfield length option" - /TOPIC="Data_Types BITFIELD" - /TYPE=NONTERMINAL "LENGTH " END DEFINE DEFINE PLACEHOLDER "LENGTH-option" - /DESCRIPTION="Length option" - /TOPIC="" - /TYPE=NONTERMINAL "LENGTH " END DEFINE DEFINE TOKEN "LENGTH" /PLACEHOLDER="LENGTH-option" DEFINE PLACEHOLDER "signed" - /DESCRIPTION="Signed bitfield option" - /TOPIC="Data_Types BITFIELD" - /TYPE=NONTERMINAL "SIGNED" END DEFINE DEFINE TOKEN "SIGNED" /PLACEHOLDER="SIGNED" DEFINE PLACEHOLDER "mask" - /DESCRIPTION="MASK option" - /TOPIC="Data_Types BITFIELD" - /TYPE=NONTERMINAL "MASK" END DEFINE DEFINE TOKEN "MASK" /PLACEHOLDER="MASK" DEFINE PLACEHOLDER "length-specifier" - /DESCRIPTION="Expression evaluating to length of field or string" - /TOPIC="Expressions" - /TYPE=NONTERMINAL "" END DEFINE DEFINE PLACEHOLDER "CHARACTER-clause" - /DESCRIPTION="Character data type clause" - /TOPIC="Data_Types CHARACTER" - /TYPE=NONTERMINAL "CHARACTER [character-LENGTH-option] [VARYING]" END DEFINE DEFINE TOKEN "CHARACTER" /PLACEHOLDER="CHARACTER-clause" DEFINE PLACEHOLDER "character-LENGTH-option" - /DESCRIPTION="Character string length option" - /TOPIC="Data_Types CHARACTER" - /TYPE=NONTERMINAL "LENGTH " END DEFINE DEFINE PLACEHOLDER "VARYING" - /DESCRIPTION="VARYING option" - /TOPIC="Data_Types CHARACTER" - /TYPE=NONTERMINAL "VARYING" END DEFINE DEFINE TOKEN "VARYING" /PLACEHOLDER="VARYING" DEFINE PLACEHOLDER "member-options" - /DESCRIPTION="PREFIX, TAG, or DIMENSION" - /SEPARATOR=" " - /TOPIC="Declarations AGGREGATE" - /TYPE=MENU "PREFIX " "TAG " "DIMENSION-option" /PLACEHOLDER END DEFINE DEFINE PLACEHOLDER "PREFIX-option" - /DESCRIPTION="PREFIX option" - /TOPIC="Declarations AGGREGATE" - /TYPE=NONTERMINAL "PREFIX " END DEFINE DEFINE TOKEN "PREFIX" /PLACEHOLDER="PREFIX-option" DEFINE PLACEHOLDER "prefix-string" - /DESCRIPTION="" - /TOPIC="Declarations AGGREGATE" - /TYPE=TERMINAL "Prefix string" END DEFINE DEFINE PLACEHOLDER "TAG-option" - /DESCRIPTION="TAG option" - /TOPIC="Declarations AGGREGATE" - /TYPE=NONTERMINAL "TAG " END DEFINE DEFINE TOKEN "TAG" /PLACEHOLDER="TAG-option" DEFINE PLACEHOLDER "tag-string" - /DESCRIPTION="" - /TOPIC="Declarations AGGREGATE" - /TYPE=TERMINAL "Tag string" END DEFINE DEFINE PLACEHOLDER "DIMENSION-option" - /DESCRIPTION="DIMENSION option" - /TOPIC="Declarations AGGREGATE" - /TYPE=MENU "DIMENSION [lower-bound] " "DIMENSION *" END DEFINE DEFINE TOKEN "DIMENSION" /PLACEHOLDER="DIMENSION-option" DEFINE PLACEHOLDER "lower-bound" - /DESCRIPTION="" - /TOPIC="Declarations AGGREGATE" - /TYPE=NONTERMINAL ":" END DEFINE DEFINE PLACEHOLDER "bound-specifier" - /DESCRIPTION="" - /TOPIC="Declarations AGGREGATE" - /TYPE=NONTERMINAL "" END DEFINE DEFINE PLACEHOLDER "upper-bound" /PLACEHOLDER="bound-specifier" DEFINE PLACEHOLDER "FILL-option" - /DESCRIPTION="FILL option" - /TOPIC="" - /TYPE=NONTERMINAL "FILL" END DEFINE DEFINE TOKEN "FILL" /PLACEHOLDER="FILL-option" DEFINE TOKEN "fill_byte" - /DESCRIPTION="fill a byte bit field" - /TOPIC="" "fill BITFIELD LENGTH 8-^ FILL; { fill byte" END DEFINE DEFINE TOKEN "fill_word" - /DESCRIPTION="fill a word bit field" - /TOPIC="" "fill BITFIELD LENGTH 16-^ FILL; { fill word" END DEFINE DEFINE TOKEN "fill_longword" - /DESCRIPTION="fill a longword bit field" - /TOPIC="" "fill BITFIELD LENGTH 32-^ FILL; { fill longword" END DEFINE DEFINE TOKEN "align_word" - /DESCRIPTION="align next field on word boundary" - /TOPIC="" "align CHARACTER LENGTH (((.+1)/2)*2)-. FILL; { fill to word" END DEFINE DEFINE TOKEN "align_longword" - /DESCRIPTION="align next field on longword boundary" - /TOPIC="" "align CHARACTER LENGTH (((.+3)/4)*4)-. FILL; { fill to longword" END DEFINE DEFINE PLACEHOLDER "storage-class" - /DESCRIPTION="" - /TOPIC="" - /TYPE=MENU "COMMON" "GLOBAL" "BASED " END DEFINE DEFINE TOKEN "COMMON" - /DESCRIPTION="COMMON storage-class" - /TOPIC="" "COMMON" END DEFINE DEFINE TOKEN "GLOBAL" - /DESCRIPTION="GLOBAL storage-class" - /TOPIC="" "GLOBAL" END DEFINE DEFINE PLACEHOLDER "pointer-name" /PLACEHOLDER="symbol-name" DEFINE PLACEHOLDER "marker-string" - /DESCRIPTION="" - /TOPIC="Declarations AGGREGATE" - /TYPE=TERMINAL "Marker string" END DEFINE DEFINE PLACEHOLDER "COUNTER-option" - /DESCRIPTION="Local symbol for last constant value" - /TOPIC="" - /TYPE=NONTERMINAL "COUNTER "#" END DEFINE DEFINE PLACEHOLDER "symbol-name" - /DESCRIPTION="Name of a symbol" - /TOPIC="Names" - /TYPE=TERMINAL "Name of a symbol" END DEFINE DEFINE PLACEHOLDER "local-symbol" /PLACEHOLDER="symbol-name" DEFINE PLACEHOLDER "ITEM-declaration" - /DESCRIPTION="Declaration of data item" - /TOPIC="Declarations ITEM" - /TYPE=NONTERMINAL "ITEM " " [storage-class]" " [item-options]...;" END DEFINE DEFINE TOKEN "ITEM" /PLACEHOLDER="ITEM-declaration" DEFINE PLACEHOLDER "item-name" /PLACEHOLDER="symbol-name" DEFINE PLACEHOLDER "item-options" /PLACEHOLDER="member-options" DEFINE PLACEHOLDER "ENTRY-declaration" - /DESCRIPTION="ENTRY declaration" - /TOPIC="Declarations ENTRY" - /TYPE=NONTERMINAL "ENTRY " [parameter-list]" " [RETURNS-clause]" " [returns-TYPENAME-clause]" " [variable-specifier]" " [alias-specifier];" END DEFINE DEFINE TOKEN "ENTRY" /PLACEHOLDER="ENTRY-declaration" DEFINE PLACEHOLDER "entry-name" /PLACEHOLDER="symbol-name" DEFINE PLACEHOLDER "PARAMETER-list" - /DESCRIPTION="Descriptions of the parameters of an external entry point" - /TOPIC="Declarations ENTRY" - /TYPE=NONTERMINAL "PARAMETER (...)" END DEFINE DEFINE TOKEN "PARAMETER_list" /PLACEHOLDER="PARAMETER-list" DEFINE PLACEHOLDER "RETURNS-clause" - /DESCRIPTION="Function result data type" - /TOPIC="Declarations ENTRY" - /TYPE=NONTERMINAL "RETURNS " END DEFINE DEFINE TOKEN "RETURNS" /PLACEHOLDER="RETURNS-clause" DEFINE PLACEHOLDER "returns-TYPENAME-clause" - /DESCRIPTION="Named type function value declaration" - /TOPIC="Declarations ENTRY" - /TYPE=NONTERMINAL "TYPENAME " END DEFINE DEFINE TOKEN "TYPENAME" - /DESCRIPTION="Named type declaration for function return or parameter" - /TOPIC="Declarations ENTRY" "TYPENAME " END DEFINE DEFINE PLACEHOLDER "type-name" /PLACEHOLDER="symbol-name" DEFINE PLACEHOLDER "VARIABLE-specifier" - /DESCRIPTION="Specifies variable length argument list" - /TOPIC="Declarations ENTRY" - /TYPE=NONTERMINAL "VARIABLE" END DEFINE DEFINE TOKEN "VARIABLE" /PLACEHOLDER="VARIABLE-specifier" DEFINE PLACEHOLDER "ALIAS-specifier" - /DESCRIPTION="Internal alias for entry point name" - /TOPIC="Declarations ENTRY" - /TYPE=NONTERMINAL "ALIAS " END DEFINE DEFINE PLACEHOLDER "alias-name" /PLACEHOLDER="symbol-name" DEFINE TOKEN "ALIAS" /PLACEHOLDER="ALIAS-specifier" DEFINE token "LINKAGE" - /DESCRIPTION="ENTRY LINKAGE definition (MACRO only)" - /TOPIC="Declarations ENTRY" "LINKAGE " END DEFINE DEFINE PLACEHOLDER "link-name" /PLACEHOLDER="symbol-name" DEFINE PLACEHOLDER "parameter-description" - /DESCRIPTION="Description of an entry point parameter" - /DUPLICATION=VERTICAL- /SEPARATOR="," - /TOPIC="Declarations ENTRY" - /TYPE=NONTERMINAL " [IN-clause] [OUT-clause] [NAMED-clause] [OPTIONAL-clause] [parameter-TYPENAME-clause]" END DEFINE DEFINE PLACEHOLDER "parameter-data-type" - /DESCRIPTION="" - /TOPIC="Declarations ENTRY" - /TYPE=MENU "predefined-data-type" /PLACEHOLDER "ANY [ANY-passing-mechanism]" "aggregate-name" /PLACEHOLDER "entry-address" /PLACEHOLDER END DEFINE DEFINE TOKEN "ANY" - /DESCRIPTION="ANY parameter data type" - /TOPIC="Declarations ENTRY" "ANY" END DEFINE DEFINE PLACEHOLDER "IN-clause" - /DESCRIPTION="IN parameter" - /TOPIC="Declarations ENTRY" - /TYPE=NONTERMINAL "IN" END DEFINE DEFINE TOKEN "IN" /PLACEHOLDER="IN-clause" DEFINE PLACEHOLDER "OUT-clause" - /DESCRIPTION="OUT parameter" - /TOPIC="Declarations ENTRY" - /TYPE=NONTERMINAL "OUT" END DEFINE DEFINE TOKEN "OUT" /PLACEHOLDER="OUT-clause" DEFINE PLACEHOLDER "NAMED-clause" - /DESCRIPTION="Keyword parameter" - /TOPIC="Declarations ENTRY" - /TYPE=NONTERMINAL "NAMED [default-specifier]" END DEFINE DEFINE TOKEN "NAMED" /PLACEHOLDER="NAMED-clause" DEFINE PLACEHOLDER "DEFAULT-specifier" - /DESCRIPTION="Default value for omitted parameters" - /TOPIC="Declarations ENTRY" - /TYPE=NONTERMINAL "DEFAULT " END DEFINE DEFINE TOKEN "DEFAULT" /PLACEHOLDER="DEFAULT-specifier" DEFINE PLACEHOLDER "OPTIONAL-clause" - /DESCRIPTION="OPTIONAL parameter attribute" - /TOPIC="Declarations ENTRY" - /TYPE=NONTERMINAL "OPTIONAL" END DEFINE DEFINE TOKEN "OPTIONAL" /PLACEHOLDER="OPTIONAL-clause" DEFINE PLACEHOLDER "parameter-name" /PLACEHOLDER="symbol-name" DEFINE PLACEHOLDER "predefined-data-type" - /DESCRIPTION="Parameter of predefined data type" - /TOPIC="Declarations ENTRY" - /TYPE=NONTERMINAL " [parameter-dimension] [passing-mechanism]" END DEFINE DEFINE PLACEHOLDER "parameter-dimension" - /DESCRIPTION="" - /TOPIC="Declarations ENTRY" - /TYPE=NONTERMINAL "DIMENSION " END DEFINE DEFINE PLACEHOLDER "passing-mechanism" - /DESCRIPTION="Parameter passing mechanism" - /TOPIC="Declarations ENTRY" - /TYPE=MENU "DESCRIPTOR" "VALUE" "REFERENCE" END DEFINE DEFINE PLACEHOLDER "ANY-passing-mechanism" - /DESCRIPTION="Parameter passing mechanism for ANY datatype" - /TOPIC="Declarations ENTRY" - /TYPE=MENU "VALUE" "REFERENCE" END DEFINE DEFINE TOKEN "DESCRIPTOR" - /DESCRIPTION="Descriptor parameter passing mechanism" - /TOPIC="Declarations ENTRY" "DESCRIPTOR" END DEFINE DEFINE TOKEN "VALUE" - /DESCRIPTION="Value parameter passing mechanism" - /TOPIC="Declarations ENTRY" "VALUE" END DEFINE DEFINE TOKEN "REFERENCE" - /DESCRIPTION="Reference parameter passing mechanism" - /TOPIC="Declarations ENTRY" "REFERENCE" END DEFINE DEFINE PLACEHOLDER "entry-address" - /DESCRIPTION="Address of entry point" - /TOPIC="Declarations ENTRY" - /TYPE=NONTERMINAL "ADDRESS ()" END DEFINE DEFINE PLACEHOLDER "parameter-ENTRY-declaration" - /DESCRIPTION="ENTRY declaration of procedure parameter" - /TOPIC="Declarations ENTRY" - /TYPE=NONTERMINAL "ENTRY " [parameter-list]" " [RETURNS-clause]" END DEFINE DEFINE PLACEHOLDER "parameter-TYPENAME-clause" - /DESCRIPTION="Parameter named type" - /TOPIC="Declarations ENTRY" - /TYPE=NONTERMINAL "TYPENAME " END DEFINE DEFINE PLACEHOLDER "local-assignment" - /DESCRIPTION="Local assignment statement" - /DUPLICATION=VERTICAL - /TOPIC="Expressions Local_Symbols" - /TYPE=NONTERMINAL "# = ;" END DEFINE DEFINE TOKEN "assignment_statement" /PLACEHOLDER="local-assignment" DEFINE PLACEHOLDER "comment-lines" - /DESCRIPTION="Output or local comments" - /TOPIC="*_Comments" - /TYPE=MENU "output-comment" /PLACEHOLDER "local-comment" /PLACEHOLDER END DEFINE DEFINE TOKEN "comment" /PLACEHOLDER="comment-lines" DEFINE PLACEHOLDER "output-comment" - /DESCRIPTION="Comments to be place in SDL output" - /TOPIC="Output_Comments" - /TYPE=NONTERMINAL "/* [tbs]" END DEFINE DEFINE PLACEHOLDER "local-comment" - /DESCRIPTION="Comments local to the SDL source file" - /TOPIC="Local_Comments" - /TYPE=NONTERMINAL "{ [tbs]" END DEFINE DEFINE PLACEHOLDER "tbs" - /DESCRIPTION="Arbitrary string of text" - /TOPIC="" - /TYPE=TERMINAL "Any string of text" END DEFINE DEFINE PLACEHOLDER "INCLUDE-statement" - /DESCRIPTION="SDL source inclusion" - /TOPIC="INCLUDE_Statement" - /TYPE=NONTERMINAL "INCLUDE """";" END DEFINE DEFINE PLACEHOLDER "filename" - /DESCRIPTION="VMS filename" - /TOPIC="" - /TYPE=TERMINAL "Valid VMS filename" END DEFINE DEFINE PLACEHOLDER "block-declaration" - /DESCRIPTION="SDLDOC-compatible block declaration" - /TOPIC="" - /TYPE=NONTERMINAL " " "/*++" "/* - " "/*" "/* " "/*--" "AGGREGATE STRUCTURE TAG PREFIX ;" " ..." " END [block-name];" END DEFINE DEFINE TOKEN "block" /PLACEHOLDER="block-declaration" DEFINE PLACEHOLDER "full-block-name" - /DESCRIPTION="complete name of block" - /TOPIC="" - /TYPE=TERMINAL "complete name of block (including prefix)" END DEFINE DEFINE PLACEHOLDER "block-title" - /DESCRIPTION="title of the block" - /TOPIC="" - /TYPE=TERMINAL "title of the block" END DEFINE DEFINE PLACEHOLDER "block-description" - /DESCRIPTION="description of the block" - /TOPIC="" - /TYPE=TERMINAL "several sentence description of the block" END DEFINE DEFINE PLACEHOLDER "block-name" - /DESCRIPTION="name of the block (except for prefix)" - /AUTO_SUBSTITUTE - /TOPIC="" - /TYPE=TERMINAL "name of the block (except for prefix)" END DEFINE DEFINE PLACEHOLDER "tag-char" - /DESCRIPTION="DEC or user tag punctuation character" - /AUTO_SUBSTITUTE - /TOPIC="" - /TYPE=MENU "DEC-tag-punctuation($)" /PLACEHOLDER "user-tag-punctuation(_)" /PLACEHOLDER END DEFINE DEFINE PLACEHOLDER "DEC-tag-punctuation($)" - /DESCRIPTION="DEC tag punctuation character ($)" - /AUTO_SUBSTITUTE - /TOPIC="" - /TYPE=NONTERMINAL "$" END DEFINE DEFINE PLACEHOLDER "user-tag-punctuation(_)" - /DESCRIPTION="user tag punctuation character (_)" - /AUTO_SUBSTITUTE - /TOPIC="" - /TYPE=NONTERMINAL "_" END DEFINE DEFINE PLACEHOLDER "block-prefix" - /DESCRIPTION="facility name or field prefix characters" - /AUTO_SUBSTITUTE - /TOPIC="" - /TYPE=TERMINAL "facility name or field prefix characters" END DEFINE DEFINE PLACEHOLDER "description" - /DESCRIPTION="line-specific comment for SDLDOC" - /TOPIC="" - /TYPE=NONTERMINAL " /* [tbs]" END DEFINE