1 SDL

  The Structure Definition Language ... tbs.

2 Parameters

 file-spec[,...]

  Specifies the names of one or more files to be processed.  You must
  specify at least one file name.  If you specify two or more file
  names, separate them with commas.

2 Command_Qualifiers

/ALIGNMENT

 /ALIGNMENT=value

  The assumed alignment. Integer value greater than zero.
  If specified, diagnostic messages are emitted for data items that do not
  fall on the assumed alignment.

/ALPHA_AXP

 /ALPHA_AXP (Default on Alpha and IA64 systems)

  There are many things that depend on this qualifier:

  o The size of certain data types (HARDWARE_ADDRESS, INTEGER_HW,
    HARDWARE_INTEGER, POINTER_HW) is 8 bytes if /ALPHA_AXP is specified
    and 4 bytes otherwise.

  o Bitfields can have 64 bits if /ALPHA_AXP is specified and only 32 bits
    otherwise.

  o BASIC defines the data type HUGE as BASIC$HFLOAT_AXP if /ALPHA_AXP is
    specified and as HFLOAT otherwise and HUGE_COMPLEX as
    BASIC$H_FLOATING_COMPLEX_AXP if /ALPHA_AXP is specified and as
    BASIC$H_FLOATING_COMPLEX otherwise.

  o CC writes alignment pragmas to the output file only if /ALPHA_AXP is
    specified.

  o CC generates 64-bit pointers only if /ALPHA_AXP is specified.

  o CC generates QUADWORD datatypes as __int64 if /ALPHA_AXP is specified
    and as int[2] otherwise.

  o Also see /C_DEVELOPMENT and /VMS_DEVELOPMENT.

/B64

 /B64[=value]
 /NOB64[=value] (D)

  This qualifier is only valid for the languages BLISS and BLISSF.

  The default extension for the output file is .R64 if /B64 is specified
  and .R32 otherwise.

  The word size used in BITFIELDs is 64 bits if /B64 is specified and
  32 bits otherwise.

  The name used for conditional compilation changes from BLISS or BLISSF
  to BLISS64 or BLISSF64, respectively.

  The value will be ignored.

  You cannot specify the qualifiers /B64 and /VAX together.

/CHECK_ALIGNMENT

 /CHECK_ALIGNMENT[=value]
 /NOCHECK_ALIGNMENT[=value] (D)

  If specified, diagnostic messages are emitted for data items that do not
  fall on their natural alignment.

  The value will be ignored.

/COMMENTS

 /COMMENTS[=value] (D)
 /NOCOMMENTS[=value]

  Defines whether comments in the source file will be
  written to the output file.
  The value will be ignored.

/COPYRIGHT

 /COPYRIGHT[=value]
 /NOCOPYRIGHT[=value]

  Defines whether a Compaq copyright notice is written to the output file.
  The value will be ignored.

/C_DEVELOPMENT

 /C_DEVELOPMENT[=value]
 /NOC_DEVELOPMENT[=value]

  Only used by the CC backend.

  If an input file contains more than one module, C generates one .h file
  per module if either /C_DEVELOPMENT or /VMS_DEVELOPMENT is specified and
  one file containing all the modules otherwise.

  C defines a macro with all lowercase characters to equal the same name
  in all uppercase characters for every entry node if either /C_DEVELOPMENT
  or /VMS_DEVELOPMENT is specified.

  C creates function prototypes if either /C_DEVELOPMENT or
  /VMS_DEVELOPMENT is specified (although the ones generated with
  /VMS_DEVELOPMENT only contain "__unknown_params").

  C generates most definitions twice if /C_DEVELOPMENT is specified,
  separated with "#ifdef __NEW_STARLET" ... "else" ... "endif".
  The "__NEW_STARLET" definitions contain complete function prototypes,
  the "OLD" definitions only "__unknown_params". Also the definitions of
  structs and unions are different.

  The __member_alignment pragmas are only generated if both /ALPHA_AXP and
  /C_DEVELOPMENT are specified.

  C generates "if !defined(__VAXC)" for special cases if /C_DEVELOPMENT or
  /VMS_DEVELOPMENT is specified, otherwise "ifdef __cplusplus" is generated.

  C generates "#ifndef __<module-name>_LOADED" ... if /C_DEVELOPMENT or
  /VMS_DEVELOPMENT is specified.

  C generated "__required_pointer_size" pragmas if either
  /VMS_DEVELOPMENT or both /V_DEVELOPMENT and /ALPHA_AXP are specified.

  Together with the /ALPHA_AXP qualifier and the /VMS_DEVELOPMENT qualifier
  this qualifier influences the definition of certain data types and the
  generation of certain pragmas, e.g. the data type QUADWORD is defined as
  __int64 if /ALPHA_AXP is specified and /VMS_DEVELOPMENT and not
  /C_DEVELOPMENT, and as int [2] otherwise, and the HARDWARE_ADDRESS and
  POINTER_HW data types are defined as __int64 if /ALPHA_AXP and neither
  /C_DEVELOPMENT nor /VMS_DEVELOPMENT are specified and as int[2] if
  /ALPHA_AXP is not specified, and are not defined if /ALPHA_AXP and one of
  the qualifiers /C_DEVELOPMENT or /VMS_DEVELOPMENT is specified.

  Pretty confusing, isn't it?

  The value [of the qualifier] will be ignored.

/DUMP

 /DUMP[=file-spec]
 /NODUMP[=file-spec]

 Generates a dump of the intermediary representation.  file-spec is
 the name of the dump file.

/GLOBAL_DEFINITION

 /GLOBAL_DEFINITION[=value]
 /NOGLOBAL_DEFINITION[=value]

  The BASIC language does not support this option.

  BLISS and BLISSF define common and global items as "global" if
  /GLOBAL_DEFINITION is specified and as "external" otherwise.

  CC defines global items as "extern" if /GLOBAL_DEFINITION is not specified.

  MACRO defines global items depending on the presence of
  /VMS_DEVELOPMENT and /GLOBAL_DEFINITION

  Pascal define global items as "[GLOBAL]" if /GLOBAL_DEFINITION is
  specified and as "[EXTERNAL]" otherwise.

  PLI define global items as "globaldef" if /GLOBAL_DEFINITION is
  specified and as "globalref" otherwise.

  The value will be ignored.

/HEADER

 /HEADER (D)
 /NOHEADER

  Defines whether the SDL header is written to the output file.
  The SDL header contains the creation date and time of the output file
  (i.e. the date and time when SDL was run) and the name and the
  creation date of the source file used to generate the output file.

/LANGUAGES

 /LANGUAGES=(keyword[=filespec][,...])

  Specifies the names of the languages for which you want to  generate
  output. filespec optionally lets you specify [part of] a file
  specification. If you provide only one file specification,  you  can
  omit the parentheses.

  You can specify one of the following languages:

  ADA       The Ada programming language.

  BASIC     The BASIC programming language.

  BLISS     The BLISS programming language.

  BLISS64   Same as BLISS with the additional qualifier /B64.

  BLISSF    A "fields" variant of the BLISS programming language.

  CC        The C and C++ programming languages.

  DCL       The Digital Command Language.

  DTR       The Datatrieve programming language.

  DUMP      Dumps the input in a special format.

  FORTRAN   The FORTRAN programming language.

  FORTRAN_STEVE_LIONEL   The FORTRAN programming language.
                         This is close to "FORTRAN" with
			 the exception that ... tbs.

  FORTV3    An older dialect of the FORTRAN programming language.

  MACRO     The VAX Macro assembler, also available on Alpha and IA64.

  PASCAL    The Pascal programming language.

  PLI       The PL1 programming language.

  SDML      The Standard Digital Markup Language.

  TPU       The Text Processing Utility language.

  TPU_2     The Text Processing Utility language.
            This is a different implementation which
	    should produce the same result as "TPU"

  UIL       The DECwindows User Interface Language.
            This is a different implementation which
	    should produce the same result as "UIL"

/LIST

 /LIST[=file-spec]
 /NOLIST[=file-spec]

 Generates a listing file. file-spec is the name of the listing file.

/MEMBER_ALIGN

 /MEMBER_ALIGN[=value]
 /NOMEMBER_ALIGN[=value]

  Specifies that every item in aggregates should be aligned.
  This is the same as specifying ALIGN on all aggregates.

  The value will be ignored.

/MODULE

 /MODULE (D)
 /NOMODULE

  ADA outputs the module header and predeclared types if /MODULE is specified.

  PASCAL generates "%include"-able files if /NOMODULE is specified.
  Otherwise, the generated files are MODULEs, which can be [INHERIT]ed.

/PARSE

 /PARSE[=file-spec] (D)
 /NOPARSE

  /PARSE generates an intermediate file. file-spec is the name of the file.
  If /NOPARSE is specified, SDL assumes that the input file-spec (parameter 1)
  is an intermediate file.

  You cannot specify the qualifiers /NOPARSE and /SUPPRESS together.

/PLI_DEVELOPMENT

 /PLI_DEVELOPMENT[=value]
 /NOPLI_DEVELOPMENT[=value]

  Only used by the PLI backend.

  This qualifier specifies the definition of certain data types,
  e.g. most integral data types are defined as fixed binary (n) if
  /PLI_DEVELOPMENT is specified and as bit(n) aligend otherwise.

  In addition to that, the type names of certain parameters are changed,
  e.g. "ASTADR" to "entry value" and "MASK_BYTE" to "bit (8) aligned".

  Default parameters that are not optional are marked as "optional" if
  /PLI_DEVELOPMENT is specified

  The value will be ignored.

/SUBFIELDS

 /SUBFIELDS[=value]
 /NOSUBFIELDS[=value]

  tbs - -> sdl$v_subfield_opt.
  The value will be ignored.

/SUPPRESS

 /SUPPRESS=(option[,...])
 /NOSUPPRESS=(option[,...])

  /SUPPRESS=PREFIXES
  /SUPPRESS=TAGS

  With this qualifier, you can specify that items should be generated
  without prefixes and/or tags.

  You can specify one of the following options:

  PREFIXES  specify that items should be generated without prefixes.

  TAGS      specify that items should be generated without tags.

  If you provide only one value, you can omit the parentheses.

  You cannot specify the qualifiers /NOPARSE and /SUPPRESS together.

/SYMBOLS

 /SYMBOLS=(value[,...])

  It is possible to specify symbols and values which can be used in the
  IFSYMBOL statement (kind of conditional compilation).

  If you provide only one value, you can omit the parentheses.

/VAX

 /VAX (Default on VAX systems)

  For modules, FORTRAN writes the following comment to the output file:
  !DEC$ OPTIONS/ALIGN=(RECORDS=PACKED,COMMONS=PACKED)/NOWARN

  CC generates "double" as return type for functions if the actual return
  type is quadword and /VAX and not /VMS_DEVELOPMENT is specified.

  You cannot specify the qualifiers /ALPHA_AXP and /VAX together.
  You cannot specify the qualifiers /B64 and /VAX together.

/VMS_DEVELOPMENT

 /VMS_DEVELOPMENT[=value]
 /NOVMS_DEVELOPMENT[=value]

  o Ada defines the data types QUADWORD and INTEGER_QUAD as INTEGER_64
    if /ALPHA_AXP and /VMS_DEVELOPMENT is specified and as
    UNSIGEND_QUADWORD otherwise.

  o BLISS defines routines as "external routine routine-name : novalue"
    if /VMS_DEVELOPMENT is not specified and generates macros or keywordmacros
    otherwise.

  o BLISS' and BLISSF's generation of certain "literal"s for the sizes of
    structures or unions depends on this qualifier.

  o BLISSF ignores user fill fields if /VMS_DEVELOPMENT is specified.

  o BLISSF ignores nested structures if /VMS_DEVELOPMENT is specified.

  o BLISSF generates macros instead of fields for certain level one items.

  o CC handles user fill depending on /VMS_DEVELOPMENT.

  o CC handles references to aggregates within typedef'd aggregates 
    different when /VMS_DEVELOPMENT is specified.

  o See also /C_DEVELOPMENT

  o Pascal prefixes "read node" modules with PASCAL$ if /VMS_DEVELOPMENT
    is specified.

  o Pascal suppresses the generation of certain fill fields if
    /VMS_DEVELOPMENT is specified.

  o Pascal appends "$TYPE" to data types that have no "$" in their name
    if /VMS_DEVELOPMENT is specified.

  o Pascal emits an error message if it encounters a complex data type
    if /VMS_DEVELOPMENT is not specified.

  o Pascal generates the type "$DEFPTR" for user data types if
    /VMS_DEVELOPMENT is specified and generates the actual type if not.


  The value will be ignored.

