! Module FOOMSGDEF.GNM Version V1.0-0 ! ! Copyright 2003 Hewlett-Packard Company ! ! MODULE FUNCTION ! This GNM module serves as an example of using a single (GNM) file ! to generate application error messages, message definitions, and ! SDML-format documentation. ! ! WRITTEN BY ! Stephen Hoffman 23-Apr-2003 ! This GNM example includes new documentation as well as code ! derived from works by Bert Beander and myself. This version ! includes documentation associated with the GNM V2.0 re-write. ! ! ! Usage: ! Because this file is used to generate MSG files for the OpenVMS ! MESSAGE compiler, the ordering of the messages in this file is ! critical to application compatibility. ! o Add messages only at the end of BASE blocks. ! o Do NOT remove nor re-order any messages. ! o Do NOT re-alphabetize messages here, as this will alter the binary ! values expected by applications. ! o If you DO reorder or REMOVE messages, all application code using ! message values derived from this module WILL have to be recompiled. ! o Consider replacing unneeded messages with SPARE_n -- where n is a ! unique number -- to maintain the order of other messages. ! ! GNM will sort the messages for inclusion into the SDML documentation ! automatically. ! ! The GNM file can be thought of as a series of directives: ! ! .NAME - The message symbol, without the prefix ! .MESSAGE - The message text. This text can wrap. ! .EXPLANATION - The description that appears in the document. ! this text can wrap. ! .USER_ACTION - The recovery section that appears in the document. ! this text can wrap. ! .BREAK - May be used to start a new paragraph in the ! .explanation or .user_action ! .DESTINATION - Which file the following output will appear in. ! parameters are both and message. Used to suppress ! the generation of documentation involving messages ! considered to be application-internal messages. ! .SEVERITY - informational, success, warning, error, or fatal ! .COMPONENT - A string written to the SDML file with each message. ! Usually the name of the tool. ! .FACILITY - Provides the MESSAGE compiler .FACILITY directive. ! Use of the $ character in the prefix and the use of ! /SYSTEM are reserved to utilities with registered ! facility prefixes. See the MESSAGE compiler manual ! for further details on this command. ! .END - The Demarcation. ! ! ! The first 4 directives: .name, .message, .explanation, .user_action, ! occur as a group in that order for each message. .explanation and ! .user_action are optional. The FAO arguments within the .message ! are contained within <>. Within the <> there are 2 arguments, the ! first is a word which will be emphasized in that position in the ! document, the second is the FAO argument which will appear in the ! message file in that position. ! ! The .destination directive must appear between message groups and is ! in effect until another .destination directive occurs. Thus, when ! one message is to goto the message file only a .destination message ! will precede the message group and a .destination both will follow ! the group. ! ! Developers are strongly encouraged to include explanations and user ! actions. The writer (if there is one, of course) will hopefully ! resolve any lurking grammar or spelling errors before the product ! is released. ! ! Use special characters within this file with great care. In particular, ! please follow these rules for characters: ! ! Use alphanumerics only whenever possible. Beware special characters. ! ! Do not mismatch brackets within messages. ! ! Use spaces for the indentation of the message text and explanations. ! The utilities that process the .GNM file and the resulting generated ! files can react inappropriately to tab characters and the generated ! output text can potentially have erronous formatting. ! ! To insert an angle bracket (<>) into the MSG output MESSAGE file, you ! must use the equivalent brace ({}) character. ! ! ! Typical Command Sequence: ! ! ! ! GNM :== $ddcu:[dir]GNM ! ! ! GNM input.GNM output.MSG output.SDML ! ! ! ! now process the MSG file normally... ! ! ! MESSAGE output.MSG... ! MESSAGE/SDL output.MSG... ! SDL output.SDL.... ! ! ! ! now process the SDML file normally... ! ! ! DOCUMENT output.SDML... ! ! ! .component FOO, The FOO Utility .facility FOO, 1 /SYSTEM /PREFIX=FOO$_ ! ! Success messages go here. DO NOT REORDER. ! .severity success .destination message .name AAA000_MSG .message aaa000 message, written to msg only .explanation This is the first line of the aaa000 message explanation This is the second line of the aaa000 message explanation .user_action This is the first line of the aaa000 recovery text This is the second line of the aaa000 recovery text This is the third line of the aaa000 recovery text .name FFF111_MSG .message fff111 message, written to msg only .explanation This is the first line of the fff111 message explanation This is the second line of the fff111 message explanation This is the third line of the fff111 message explanation .user_action This is the first line of the fff111 recovery text This is the second line of the fff111 recovery text .destination both .name CCC222 .message ccc222 message, written to both .explanation This is the first line of the ccc222 message explanation This is the second line of the ccc222 message explanation This is the third line of the ccc222 message explanation This is the fouth line of the ccc222 message explanation This is the fifth line of the ccc222 message explanation .user_action This is the first line of the ccc222 recovery text ! ! ! Informational messages go here. DO NOT REORDER. ! .base 500 .severity informational .destination both .name BBB333 .message bbb333 message, written to both .explanation This is the first line of the bbb333 message explanation .user_action This is the first line of the bbb333 recovery text .name ZZZ444 .message zzz444 message, written to both .explanation This is the first line of the zzz444 message explanation This is the second line of the zzz444 message explanation .user_action This is the first line of the zzz444 recovery text This is the second line of the zzz444 recovery text ! ! Warning messages go here. DO NOT REORDER. ! .base 1000 .destination both .name LLL555 .message lll555 message, written to both .explanation This is the first line of the lll555 message explanation This is the second line of the lll555 message explanation .user_action This is the first line of the lll555 recovery text This is the second line of the lll555 recovery text This is the third line of the lll555 recovery text ! ! Error messages go here. DO NOT REORDER. ! .base 1500 .severity error .destination both .name KKK666 .message kkk666 message, written to both .explanation This is the first line of the kkk666 message explanation .user_action This is the first line of the kkk666 recovery text This is the second line of the kkk666 recovery text .destination message .name NNN777_MSG .message nnn777 message, written to msg only .explanation This is the first line of the nnn777 message explanation This is the second line of the nnn777 message explanation .user_action This is the first line of the nnn777 recovery text .destination both ! ! Fatal messages go here. DO NOT REORDER. ! .base 2000 .severity fatal .destination both .name GGG888 .message ggg888 message, written to both .explanation This is the first line of the ggg888 message explanation This is the second line of the ggg888 message explanation .user_action This is the first line of the ggg888 recovery text This is the second line of the ggg888 recovery text This is the third line of the ggg888 recovery text This is the fourth line of the ggg888 recovery text This is the fifth line of the ggg888 recovery text This is the sixth line of the ggg888 recovery text ! ! Warning messages go here. DO NOT REORDER. ! .base 2500 .severity warning .destination both .name RRR999 .message rrr999 message, written to both .explanation This is the first line of the rrr999 message explanation This is the second line of the rrr999 message explanation .user_action This is the first line of the rrr999 recovery text This is the second line of the rrr999 recovery text .end