
!*************************************************************************
!									 *
! © 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 MESSAGE language attributes, templates
!   and placeholders.
!
! Author:
!   W. Ward Clark, LinkWorks Project
!
! Creation Date: 7-Nov-84
!
! Modification History:
!   X0.3    WWC   3-Jan-85  add basic module definitions
!   X0.4    WWC  28-Feb-85  TEMPLATE --> TOKEN
!   X0.6    WWC  14-May-85  /AUTOFILL --> /AUTOSUBSTITUTE
!   X0.7    WWC  18-Aug-85  remove DELETE statements
!   X0.9    WWC  15-Jan-86  Copyright placeholder:  1985 --> 1986
!   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   9-Oct-87  integrate Dick Munroe's complete support
!   X1.2-1  WWC  14-Feb-88  TBS alias --> token, ...
!			    1987 --> 1988
!   X1.2-2  WWC   1-May-88  MESSAGE-DEFINITION placeholder duplicates vertically
!   X1.3    WWC  15-Jan-89  normalize LSE command syntax
!			    1988 --> 1989
!   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  make modification-id an optional placeholder
!   X4.0a-1 WWC  24-Feb-93  1991 --> 1993
!--
!
!+
!   MESSAGE Language Definition
!-
DELETE LANGUAGE message
DEFINE LANGUAGE message -
    /COMMENT=( -
	ASSOCIATED_IDENTIFIER = PREVIOUS, -
	NOBEGIN, -
	NOEND, -
	NOFIXED, -
	NOLINE, -
	TRAILING=("!+","!-","!")) -
    /CAPABILITIES=NODIAGNOSTICS -
    /COMPILE_COMMAND="" -
    /EXPAND_CASE=AS_IS -
    /FILE_TYPES=(.MSG) -
    /HELP_LIBRARY="" -
    /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="" -
    /NOWRAP -
    /VERSION="(XLSE X4.0a)"
!+
!   Delete any language definitions
!-
SET LANGUAGE message

DELETE PLACEHOLDER *
DELETE TOKEN *
!
!+
!   Language-independent definitions
!-
DELETE PLACEHOLDER "lse$block_comment"
DEFINE PLACEHOLDER "lse$block_comment" -
    /TYPE=NONTERMINAL

    "! {tbs}"
    "!"

    END DEFINE

DELETE PLACEHOLDER "lse$generic"
DEFINE PLACEHOLDER "lse$generic" -
    /TYPE=NONTERMINAL

    "{tbs}"

    END DEFINE

DELETE PLACEHOLDER "lse$line_comment"
DEFINE PLACEHOLDER "lse$line_comment" -
    /TYPE=NONTERMINAL

    "! {tbs}"

    END DEFINE

DEFINE PLACEHOLDER tbs -
    /DESCRIPTION="field to be specified" -
    /TOPIC="" -
    /TYPE=TERMINAL

    "to be specified"

    END DEFINE

DEFINE PLACEHOLDER module -
    /DESCRIPTION="Message Definition Module" -
    /TOPIC="" -
    /TYPE=NONTERMINAL

    "[title-directive]"
    "[identification-directive]"
    "![module-level-comments]"
    ""
    "[facility-definition]"
    ""
    "[success-messages]"
    ""
    "[informational-messages]"
    ""
    "[warning-messages]"
    ""
    "[error-messages]"
    ""
    "[fatal-messages]"
    ""
    ".END"

    END DEFINE

DEFINE TOKEN module /PLACEHOLDER=module

DEFINE PLACEHOLDER module-level-comments -
    /DESCRIPTION="" -
    /DUPLICATION=VERTICAL -
    /TOPIC="" -
    /TYPE=NONTERMINAL

    "++"
    " Facility:"
    "   {tbs}"
    " "
    " Abstract:"
    "   {tbs}"
    " "
    " Author:"
    "   {tbs}"
    " "
    " Creation Date: {tbs}"
    " "
    " Modification History:"
    "--"

    END DEFINE
!+
!   Modification History definitions
!-
DEFINE TOKEN "tbs" -
    /DESCRIPTION="to-be-specified"
    "[tbs]"
    END DEFINE

DEFINE TOKEN "new_modification" -
    /DESCRIPTION="modification history entry"
    "!   [modification-id]  {your-initials}  {modification-date}  {modification-remark}"
    END DEFINE

DEFINE PLACEHOLDER modification-id -
    /DESCRIPTION="modification identification number" -
    /TOPIC="" -
    /TYPE=TERMINAL

    "modification identification number"

    END DEFINE

DEFINE PLACEHOLDER your-initials -
    /DESCRIPTION="your initials" -
    /TOPIC="" -
    /TYPE=TERMINAL

    "your initials"

    END DEFINE

DEFINE PLACEHOLDER modification-date -
    /DESCRIPTION="modification date" -
    /TOPIC="" -
    /TYPE=TERMINAL

    "modification date (dd-mmm-yy)"

    END DEFINE

DEFINE PLACEHOLDER modification-remark -
    /DESCRIPTION="brief description of a modification" -
    /TOPIC="" -
    /TYPE=TERMINAL

    "brief description of the modification"

    END DEFINE
!
!+
!   Language-specific definitions
!-
DEFINE PLACEHOLDER facility-definition -
    /DESCRIPTION="facility code definition" -
    /TYPE=NONTERMINAL

    "!+"
    "!   Facility definition"
    "!-"
    ".FACILITY {facility-name},{facility-number}[facility-qualifier]...,"
    "          [{facility-name},{facility-number}[facility-qualifier]...]..."

    END DEFINE

DEFINE PLACEHOLDER success-messages -
    /DESCRIPTION="Block of success messages" -
    /TYPE=NONTERMINAL

    "!+"
    "!   Success messages
    "!-"
    ".SEVERITY SUCCESS"
    ".BASE 1"
    "[message-documentation]"
    "normal	""normal successful completion"""
    "[message-definition]..."

    END DEFINE

DEFINE PLACEHOLDER informational-messages -
    /DESCRIPTION="Block of informational messages" -
    /LEADING="" -
    /TYPE=NONTERMINAL

    "!+"
    "!   Informational messages"
    "!-"
    ".SEVERITY INFORMATIONAL"
    ".BASE 100"
    "[message-documentation]"
    "info	""non-standard successful completion"""
    "[message-definition]..."

    END DEFINE

DEFINE PLACEHOLDER warning-messages -
    /DESCRIPTION="Block of warning messages" -
    /LEADING="" -
    /TYPE=NONTERMINAL

    "!+"
    "!   Warning messages"
    "!-"
    ".SEVERITY WARNING"
    ".BASE 200"
    "[message-documentation]"
    "warning	""warning"""
    "[message-definition]..."

    END DEFINE

DEFINE PLACEHOLDER error-messages -
    /DESCRIPTION="Block of error messages" -
    /LEADING="" -
    /TYPE=NONTERMINAL

    "!+"
    "!   Error messages"
    "!-"
    ".SEVERITY ERROR"
    ".BASE 500"
    "[message-documentation]"
    "error	""error"""
    "[message-definition]..."

    END DEFINE

DEFINE PLACEHOLDER fatal-messages -
    /DESCRIPTION="Block of fatal messages" -
    /LEADING="" -
    /TYPE=NONTERMINAL

    "!+"
    "!   Fatal messages"
    "!-"
    ".SEVERITY FATAL"
    ".BASE 1000"
    "[message-documentation]"
    "fatal	""fatal error"""
    "[message-definition]..."

    END DEFINE
DEFINE PLACEHOLDER "{facility-name},{facility-number}[facility-qualifier]..." -
    /DESCRIPTION="" -
    /DUPLICATION=VERTICAL -
    /SEPARATOR="," -
    /TYPE=NONTERMINAL

    "{facility-name},{facility-number}[facility-qualifier]..."

    END DEFINE

DEFINE PLACEHOLDER base-directive -
    /DESCRIPTION="Define the BASE in a message file." -
    /DUPLICATION=VERTICAL -
    /SEPARATOR="," -
    /TYPE=NONTERMINAL

    ".BASE {number}"

    END DEFINE

DEFINE PLACEHOLDER expression -
    /DESCRIPTION="" -
    /TYPE=TERMINAL

    "Any previously declared MSG symbol or arithematic expression operation"
    "containing a previously declared MSG symbol or constants"

    END DEFINE

DEFINE PLACEHOLDER facility-directive -
    /DESCRIPTION="Define the facility in a message file." -
    /DUPLICATION=VERTICAL -
    /SEPARATOR="," -
    /TYPE=NONTERMINAL

    ".FACILITY {{facility-name},{facility-number}[facility-qualifier]...}..."

    END DEFINE

DEFINE PLACEHOLDER facility-name /PLACEHOLDER=STRING
        
DEFINE PLACEHOLDER facility-number /PLACEHOLDER=NUMBER
    
DEFINE PLACEHOLDER facility-qualifier -
    /DESCRIPTION="Tutorial introduction to facility qualifiers" -
    /DUPLICATION=HORIZONTAL -
    /TYPE=MENU

    "/PREFIX={prefix-name}"
    "/SHARED"
    "/SYSTEM"

    END DEFINE

DEFINE PLACEHOLDER identification-directive -
    /DESCRIPTION="Define the identity of a message file." -
    /DUPLICATION=VERTICAL -
    /TYPE=NONTERMINAL

    ".IDENT '{string}'"

    END DEFINE

DEFINE PLACEHOLDER listing-title /PLACEHOLDER=STRING
    
DEFINE PLACEHOLDER literal-directive -
    /DESCRIPTION="Define a literal value for a symbol." -
    /DUPLICATION=VERTICAL-
    /TYPE=NONTERMINAL

    ".LITERAL SYMBOL={expression},[symbol={expression}]..."

    END DEFINE

DEFINE PLACEHOLDER message-definition -
    /DESCRIPTION="One message definition w/ optional documentation" -
    /DUPLICATION=VERTICAL -
    /TYPE=NONTERMINAL

    "[message-documentation]"
    "{message-name}	""{message-text}"" /FAO_COUNT=[number] [message-definition-qualifier]..."

    END DEFINE

DEFINE TOKEN message-definition /PLACEHOLDER=message-definition

DEFINE PLACEHOLDER message-documentation -
    /DESCRIPTION="" -
    /TYPE=NONTERMINAL

    ""
    "!++"
    "! FACILITY:     {tbs}"
    "! EXPLANATION:  {tbs}"
    "! USER ACTION:  {tbs}"
    "!--"

    END DEFINE

DEFINE PLACEHOLDER message-definition-qualifier -
    /DESCRIPTION="Tutorial introduction to message definition qualifiers" -
    /DUPLICATION=HORIZONTAL -
    /SEPARATOR=" " -
    /TYPE=MENU

    "/FAO_COUNT={number}"/TOKEN
    "/IDENTIFICATION={name}"/TOKEN
    "/USER_VALUE={number}"/TOKEN
    "/SUCCESS"/TOKEN
    "/INFORMATIONAL"/TOKEN
    "/WARNING"/TOKEN
    "/ERROR"/TOKEN
    "/SEVERE"/TOKEN
    "/FATAL"/TOKEN

    END DEFINE

DEFINE PLACEHOLDER message-name /PLACEHOLDER=STRING
        
DEFINE PLACEHOLDER message-text /PLACEHOLDER=STRING
        
DEFINE PLACEHOLDER module-name /PLACEHOLDER=STRING
        
DEFINE PLACEHOLDER name /PLACEHOLDER=STRING
        
DEFINE PLACEHOLDER number -
    /DESCRIPTION="Any number" -
    /LEADING="/FAO_COUNT=" -
    /TYPE=TERMINAL

    "Any number"

    END DEFINE

DEFINE PLACEHOLDER prefix-name /PLACEHOLDER=STRING
        
DEFINE PLACEHOLDER severity-directive -
    /DESCRIPTION="Define the current severity level." -
    /TYPE=NONTERMINAL

    ".SEVERITY {severity-level}"

    END DEFINE

DEFINE PLACEHOLDER severity-level -
    /DESCRIPTION="Define the current severity level." -
    /TYPE=MENU

    "SUCCESS"
    "INFORMATIONAL"
    "WARNING"
    "ERROR"
    "SEVERE"
    "FATAL"

    END DEFINE

DEFINE PLACEHOLDER string -
    /DESCRIPTION="Any printible String" -
    /TYPE=TERMINAL

    "Any Printible Characters"

    END DEFINE

DEFINE PLACEHOLDER "symbol={expression}" -
    /DESCRIPTION="" -
    /SEPARATOR="," -
    /TYPE=NONTERMINAL

    "symbol={expression}"

    END DEFINE

DEFINE PLACEHOLDER title-directive -
    /DESCRIPTION="Define the modulename/title for thie file." -
    /TYPE=NONTERMINAL

    ".TITLE {module-name} [listing-title]"

    END DEFINE

DEFINE TOKEN ".BASE" /PLACEHOLDER=BASE-DIRECTIVE

DEFINE TOKEN ".END"

    ".END"

    END DEFINE

DEFINE TOKEN ".FACILITY" /PLACEHOLDER=FACILITY-DIRECTIVE

DEFINE TOKEN ".IDENT" /PLACEHOLDER=IDENTIFICATION-DIRECTIVE

DEFINE TOKEN ".LITERAL" /PLACEHOLDER=LITERAL-DIRECTIVE

DEFINE TOKEN ".MESSAGE"

    "{message-definition}"
    "[message-documentation]"

    END DEFINE

DEFINE TOKEN ".PAGE"

    ".PAGE"

    END DEFINE

DEFINE TOKEN ".SEVERITY" /PLACEHOLDER=SEVERITY-DIRECTIVE

DEFINE TOKEN ".TITLE" /PLACEHOLDER=TITLE-DIRECTIVE

DEFINE TOKEN  "/ERROR"

     "/ERROR"

    END DEFINE

DEFINE TOKEN  "/FAO_COUNT={number}"

     "/FAO_COUNT={number}"

    END DEFINE

DEFINE TOKEN  "/FATAL"

     "/FATAL"

    END DEFINE

DEFINE TOKEN "/PREFIX={prefix-name}"

    "/PREFIX={prefix-name}"

    END DEFINE

DEFINE TOKEN "/IDENTIFICATION={name}"

    "/IDENTIFICATION={name}"

    END DEFINE

DEFINE TOKEN "/INFORMATIONAL"

    "/INFORMATIONAL"

    END DEFINE

DEFINE TOKEN "/SEVERE"

    "/SEVERE"

    END DEFINE

DEFINE TOKEN "/SHARED"

    "/SHARED"

    END DEFINE

DEFINE TOKEN "/SUCCESS"

    "/SUCCESS"

    END DEFINE

DEFINE TOKEN "/SYSTEM"

    "/SYSTEM"

    END DEFINE

DEFINE TOKEN "/USER_VALUE={number}"

    "/USER_VALUE={number}"

    END DEFINE

DEFINE TOKEN "/WARNING"

    "/WARNING"

    END DEFINE
