]> granicus.if.org Git - nethack/commitdiff
This is cron-daily v1-Jan-14-2020. manpages updated: lev_comp.txt
authornhw_cron <nhw+cron@nethack.org>
Tue, 14 Jan 2020 16:17:34 +0000 (11:17 -0500)
committernhmall <nhmall@nethack.org>
Tue, 14 Jan 2020 16:51:36 +0000 (11:51 -0500)
doc/lev_comp.txt

index 4a28fcea6122876e78308342eda23a6a0ffb8b67..d6745409e22d7bc7e76ec8b8b1215e6a1d26b2ab 100644 (file)
-
-
-
-LEV_COMP(6)                   1996                    LEV_COMP(6)
+LEV_COMP(6)                      Games Manual                      LEV_COMP(6)
 
 
 
 NAME
-     lev_comp - NetHack special levels compiler
+       lev_comp - NetHack special levels compiler
 
 SYNOPSIS
-     lev_comp [ -w ] [ files ]
+       lev_comp [ -w ] [ files ]
 
-     If no arguments are given, it reads standard input.
+       If no arguments are given, it reads standard input.
 
 DESCRIPTION
-     Lev_comp is a special level compiler for NetHack version 3.2
-     and  higher.   It  takes  description files as arguments and
-     produces level files that can be loaded by NetHack  at  run-
-     time.
+       Lev_comp  is  a  special  level  compiler  for  NetHack version 3.2 and
+       higher.  It takes description files as  arguments  and  produces  level
+       files that can be loaded by NetHack at runtime.
 
-     The purpose of this tool is to provide  NetHack  administra-
-     tors  and implementors with a convenient way for adding spe-
-     cial levels to the game, or modifying existing ones, without
-     having to recompile the entire world.
+       The  purpose  of  this  tool  is  to provide NetHack administrators and
+       implementors with a convenient way for adding  special  levels  to  the
+       game,  or  modifying  existing  ones,  without  having to recompile the
+       entire world.
 
-     The -w option causes lev_comp to perform extra checks on the
-     level and display extra warnings, however these warnings are
-     sometimes superfluous, so they are not normally displayed.
+       The -w option causes lev_comp to perform extra checks on the level  and
+       display  extra warnings, however these warnings are sometimes superflu-
+       ous, so they are not normally displayed.
 
 
 GRAMMAR
-     file            : /* nothing */
-                     | levels
-                     ;
-
-     levels          : level
-                     | level levels
-                     ;
-
-     level           : maze_level
-                     | room_level
-                     ;
-
-     maze_level      : maze_def flags lev_init messages regions
-                     ;
-
-     room_level      : level_def flags lev_init messages rreg_init rooms corridors_def
-                     ;
-
-     level_def       : LEVEL_ID ':' string
-                     ;
-
-     lev_init        : /* nothing */
-                     | LEV_INIT_ID ':' CHAR ',' CHAR ',' BOOLEAN ',' BOOLEAN ',' light_state ',' walled
-                     ;
-
-     walled          : BOOLEAN
-                     | RANDOM_TYPE
-
-
-
-May                      Last change: 16                        1
-
-
-
-
-
-
-LEV_COMP(6)                   1996                    LEV_COMP(6)
-
-
-
-                     ;
-
-     flags           : /* nothing */
-                     | FLAGS_ID ':' flag_list
-                     ;
-
-     flag_list       : FLAG_TYPE ',' flag_list
-                     | FLAG_TYPE
-                     ;
-
-     messages        : /* nothing */
-                     | message messages
-                     ;
-
-     message         : MESSAGE_ID ':' STRING
-                     ;
-
-     rreg_init       : /* nothing */
-                     | rreg_init init_rreg
-                     ;
-
-     init_rreg       : RANDOM_OBJECTS_ID ':' object_list
-                     | RANDOM_MONSTERS_ID ':' monster_list
-                     ;
-
-     rooms           : /* Nothing  -  dummy room for use with INIT_MAP */
-                     | roomlist
-                     ;
-
-     roomlist        : aroom
-                     | aroom roomlist
-                     ;
-
-     corridors_def   : random_corridors
-                     | corridors
-                     ;
-
-     random_corridors: RAND_CORRIDOR_ID
-                     ;
-
-     corridors       : /* nothing */
-                     | corridors corridor
-                     ;
-
-     corridor        : CORRIDOR_ID ':' corr_spec ',' corr_spec
-                     | CORRIDOR_ID ':' corr_spec ',' INTEGER
-                     ;
-
-     corr_spec       : '(' INTEGER ',' DIRECTION ',' door_pos ')'
-                     ;
-
-     aroom           : room_def room_details
-
-
-
-May                      Last change: 16                        2
-
-
-
-
-
-
-LEV_COMP(6)                   1996                    LEV_COMP(6)
-
-
-
-                     | subroom_def room_details
-                     ;
-
-     subroom_def     : SUBROOM_ID ':' room_type ',' light_state ',' subroom_pos ',' room_size ',' string roomfill
-                     ;
-
-     room_def        : ROOM_ID ':' room_type ',' light_state ',' room_pos ',' room_align ',' room_size roomfill
-                     ;
-
-     roomfill        : /* nothing */
-                     | ',' BOOLEAN
-                     ;
-
-     room_pos        : '(' INTEGER ',' INTEGER ')'
-                     | RANDOM_TYPE
-                     ;
-
-     subroom_pos     : '(' INTEGER ',' INTEGER ')'
-                     | RANDOM_TYPE
-                     ;
-
-     room_align      : '(' h_justif ',' v_justif ')'
-                     | RANDOM_TYPE
-                     ;
-
-     room_size       : '(' INTEGER ',' INTEGER ')'
-                     | RANDOM_TYPE
-                     ;
-
-     room_details    : /* nothing */
-                     | room_details room_detail
-                     ;
-
-     room_detail     : room_name
-                     | room_chance
-                     | room_door
-                     | monster_detail
-                     | object_detail
-                     | trap_detail
-                     | altar_detail
-                     | fountain_detail
-                     | sink_detail
-                     | pool_detail
-                     | gold_detail
-                     | engraving_detail
-                     | stair_detail
-                     ;
-
-     room_name       : NAME_ID ':' string
-                     ;
-
-     room_chance     : CHANCE_ID ':' INTEGER
-
-
-
-May                      Last change: 16                        3
-
-
-
-
-
-
-LEV_COMP(6)                   1996                    LEV_COMP(6)
-
-
-
-                     ;
-
-     room_door       : DOOR_ID ':' secret ',' door_state ',' door_wall ',' door_pos
-                     ;
-
-     secret          : BOOLEAN
-                     | RANDOM_TYPE
-                     ;
-
-     door_wall       : DIRECTION
-                     | RANDOM_TYPE
-                     ;
-
-     door_pos        : INTEGER
-                     | RANDOM_TYPE
-                     ;
-
-     maze_def        : MAZE_ID ':' string ',' filling
-                     ;
-
-     filling         : CHAR
-                     | RANDOM_TYPE
-                     ;
-
-     regions         : aregion
-                     | aregion regions
-                     ;
-
-     aregion         : map_definition reg_init map_details
-                     ;
-
-     map_definition  : NOMAP_ID
-                     | map_geometry MAP_ID
-                     ;
-
-     map_geometry    : GEOMETRY_ID ':' h_justif ',' v_justif
-                     ;
-
-     h_justif        : LEFT_OR_RIGHT
-                     | CENTER
-                     ;
-
-     v_justif        : TOP_OR_BOT
-                     | CENTER
-                     ;
-
-     reg_init        : /* nothing */
-                     | reg_init init_reg
-                     ;
-
-     init_reg        : RANDOM_OBJECTS_ID ':' object_list
-                     | RANDOM_PLACES_ID ':' place_list
-
-
-
-May                      Last change: 16                        4
-
-
-
-
-
-
-LEV_COMP(6)                   1996                    LEV_COMP(6)
-
-
-
-                     | RANDOM_MONSTERS_ID ':' monster_list
-                     ;
-
-     object_list     : object
-                     | object ',' object_list
-                     ;
-
-     monster_list    : monster
-                     | monster ',' monster_list
-                     ;
+       file            : /* nothing */
+                       | levels
+                       ;
 
-     place_list      : place
-                     | place ',' place_list
-                     ;
+       levels          : level
+                       | level levels
+                       ;
 
-     map_details     : /* nothing */
-                     | map_details map_detail
-                     ;
+       level           : maze_level
+                       | room_level
+                       ;
 
-     map_detail      : monster_detail
-                     | object_detail
-                     | door_detail
-                     | trap_detail
-                     | drawbridge_detail
-                     | region_detail
-                     | stair_region
-                     | portal_region
-                     | teleprt_region
-                     | branch_region
-                     | altar_detail
-                     | fountain_detail
-                     | mazewalk_detail
-                     | wallify_detail
-                     | ladder_detail
-                     | stair_detail
-                     | gold_detail
-                     | engraving_detail
-                     | diggable_detail
-                     | passwall_detail
-                     ;
+       maze_level      : maze_def flags lev_init messages regions
+                       ;
 
-     monster_detail  : MONSTER_ID chance ':' monster_c ',' m_name ',' coordinate
-                      monster_infos
-                     ;
+       room_level      : level_def flags lev_init messages rreg_init rooms corridors_def
+                       ;
 
-     monster_infos   : /* nothing */
-                     | monster_infos monster_info
-                     ;
+       level_def       : LEVEL_ID ':' string
+                       ;
 
-     monster_info    : ',' string
-                     | ',' MON_ATTITUDE
-                     | ',' MON_ALERTNESS
+       lev_init        : /* nothing */
+                       | LEV_INIT_ID ':' CHAR ',' CHAR ',' BOOLEAN ',' BOOLEAN ',' light_state ',' walled
+                       ;
+
+       walled          : BOOLEAN
+                       | RANDOM_TYPE
+                       ;
+
+       flags           : /* nothing */
+                       | FLAGS_ID ':' flag_list
+                       ;
 
+       flag_list       : FLAG_TYPE ',' flag_list
+                       | FLAG_TYPE
+                       ;
 
+       messages        : /* nothing */
+                       | message messages
+                       ;
 
-May                      Last change: 16                        5
+       message         : MESSAGE_ID ':' STRING
+                       ;
 
+       rreg_init       : /* nothing */
+                       | rreg_init init_rreg
+                       ;
 
+       init_rreg       : RANDOM_OBJECTS_ID ':' object_list
+                       | RANDOM_MONSTERS_ID ':' monster_list
+                       ;
 
+       rooms           : /* Nothing  -  dummy room for use with INIT_MAP */
+                       | roomlist
+                       ;
 
+       roomlist        : aroom
+                       | aroom roomlist
+                       ;
 
+       corridors_def   : random_corridors
+                       | corridors
+                       ;
 
-LEV_COMP(6)                   1996                    LEV_COMP(6)
+       random_corridors: RAND_CORRIDOR_ID
+                       ;
 
+       corridors       : /* nothing */
+                       | corridors corridor
+                       ;
 
+       corridor        : CORRIDOR_ID ':' corr_spec ',' corr_spec
+                       | CORRIDOR_ID ':' corr_spec ',' INTEGER
+                       ;
 
-                     | ',' alignment
-                     | ',' MON_APPEARANCE string
-                     ;
+       corr_spec       : '(' INTEGER ',' DIRECTION ',' door_pos ')'
+                       ;
 
-     object_detail   : OBJECT_ID object_desc
-                     | COBJECT_ID object_desc
-                     ;
+       aroom           : room_def room_details
+                       | subroom_def room_details
+                       ;
 
-     object_desc     : chance ':' object_c ',' o_name ',' object_where object_infos
-                     ;
+       subroom_def     : SUBROOM_ID ':' room_type ',' light_state ',' subroom_pos ',' room_size ',' string roomfill
+                       ;
 
-     object_where    : coordinate
-                     | CONTAINED
-                     ;
+       room_def        : ROOM_ID ':' room_type ',' light_state ',' room_pos ',' room_align ',' room_size roomfill
+                       ;
 
-     object_infos    : /* nothing */
-                     | ',' curse_state ',' monster_id ',' enchantment optional_name
-                     | ',' curse_state ',' enchantment optional_name
-                     | ',' monster_id ',' enchantment optional_name
-                     ;
+       roomfill        : /* nothing */
+                       | ',' BOOLEAN
+                       ;
 
-     curse_state     : RANDOM_TYPE
-                     | CURSE_TYPE
-                     ;
+       room_pos        : '(' INTEGER ',' INTEGER ')'
+                       | RANDOM_TYPE
+                       ;
 
-     monster_id      : STRING
-                     ;
+       subroom_pos     : '(' INTEGER ',' INTEGER ')'
+                       | RANDOM_TYPE
+                       ;
 
-     enchantment     : RANDOM_TYPE
-                     | INTEGER
-                     ;
+       room_align      : '(' h_justif ',' v_justif ')'
+                       | RANDOM_TYPE
+                       ;
 
-     optional_name   : /* nothing */
-                     | ',' NONE
-                     | ',' STRING
-                     ;
+       room_size       : '(' INTEGER ',' INTEGER ')'
+                       | RANDOM_TYPE
+                       ;
 
-     door_detail     : DOOR_ID ':' door_state ',' coordinate
-                     ;
+       room_details    : /* nothing */
+                       | room_details room_detail
+                       ;
+
+       room_detail     : room_name
+                       | room_chance
+                       | room_door
+                       | monster_detail
+                       | object_detail
+                       | trap_detail
+                       | altar_detail
+                       | fountain_detail
+                       | sink_detail
+                       | pool_detail
+                       | gold_detail
+                       | engraving_detail
+                       | stair_detail
+                       ;
+
+       room_name       : NAME_ID ':' string
+                       ;
+
+       room_chance     : CHANCE_ID ':' INTEGER
+                       ;
+
+       room_door       : DOOR_ID ':' secret ',' door_state ',' door_wall ',' door_pos
+                       ;
+
+       secret          : BOOLEAN
+                       | RANDOM_TYPE
+                       ;
+
+       door_wall       : DIRECTION
+                       | RANDOM_TYPE
+                       ;
+
+       door_pos        : INTEGER
+                       | RANDOM_TYPE
+                       ;
+
+       maze_def        : MAZE_ID ':' string ',' filling
+                       ;
+
+       filling         : CHAR
+                       | RANDOM_TYPE
+                       ;
+
+       regions         : aregion
+                       | aregion regions
+                       ;
+
+       aregion         : map_definition reg_init map_details
+                       ;
+
+       map_definition  : NOMAP_ID
+                       | map_geometry MAP_ID
+                       ;
+
+       map_geometry    : GEOMETRY_ID ':' h_justif ',' v_justif
+                       ;
+
+       h_justif        : LEFT_OR_RIGHT
+                       | CENTER
+                       ;
+
+       v_justif        : TOP_OR_BOT
+                       | CENTER
+                       ;
+
+       reg_init        : /* nothing */
+                       | reg_init init_reg
+                       ;
+
+       init_reg        : RANDOM_OBJECTS_ID ':' object_list
+                       | RANDOM_PLACES_ID ':' place_list
+                       | RANDOM_MONSTERS_ID ':' monster_list
+                       ;
+
+       object_list     : object
+                       | object ',' object_list
+                       ;
+
+       monster_list    : monster
+                       | monster ',' monster_list
+                       ;
+
+       place_list      : place
+                       | place ',' place_list
+                       ;
+
+       map_details     : /* nothing */
+                       | map_details map_detail
+                       ;
+
+       map_detail      : monster_detail
+                       | object_detail
+                       | door_detail
+                       | trap_detail
+                       | drawbridge_detail
+                       | region_detail
+                       | stair_region
+                       | portal_region
+                       | teleprt_region
+                       | branch_region
+                       | altar_detail
+                       | fountain_detail
+                       | mazewalk_detail
+                       | wallify_detail
+                       | ladder_detail
+                       | stair_detail
+                       | gold_detail
+                       | engraving_detail
+                       | diggable_detail
+                       | passwall_detail
+                       ;
+
+       monster_detail  : MONSTER_ID chance ':' monster_c ',' m_name ',' coordinate
+                        monster_infos
+                       ;
 
-     trap_detail     : TRAP_ID chance ':' trap_name ',' coordinate
-                     ;
+       monster_infos   : /* nothing */
+                       | monster_infos monster_info
+                       ;
 
-     drawbridge_detail: DRAWBRIDGE_ID ':' coordinate ',' DIRECTION ',' door_state
-                     ;
+       monster_info    : ',' string
+                       | ',' MON_ATTITUDE
+                       | ',' MON_ALERTNESS
+                       | ',' alignment
+                       | ',' MON_APPEARANCE string
+                       ;
 
-     mazewalk_detail : MAZEWALK_ID ':' coordinate ',' DIRECTION
-                     ;
+       object_detail   : OBJECT_ID object_desc
+                       | COBJECT_ID object_desc
+                       ;
 
-     wallify_detail  : WALLIFY_ID
-                     ;
+       object_desc     : chance ':' object_c ',' o_name ',' object_where object_infos
+                       ;
 
+       object_where    : coordinate
+                       | CONTAINED
+                       ;
 
+       object_infos    : /* nothing */
+                       | ',' curse_state ',' monster_id ',' enchantment optional_name
+                       | ',' curse_state ',' enchantment optional_name
+                       | ',' monster_id ',' enchantment optional_name
+                       ;
+
+       curse_state     : RANDOM_TYPE
+                       | CURSE_TYPE
+                       ;
+
+       monster_id      : STRING
+                       ;
+
+       enchantment     : RANDOM_TYPE
+                       | INTEGER
+                       ;
+
+       optional_name   : /* nothing */
+                       | ',' NONE
+                       | ',' STRING
+                       ;
+
+       door_detail     : DOOR_ID ':' door_state ',' coordinate
+                       ;
+
+       trap_detail     : TRAP_ID chance ':' trap_name ',' coordinate
+                       ;
+
+       drawbridge_detail: DRAWBRIDGE_ID ':' coordinate ',' DIRECTION ',' door_state
+                       ;
+
+       mazewalk_detail : MAZEWALK_ID ':' coordinate ',' DIRECTION
+                       ;
+
+       wallify_detail  : WALLIFY_ID
+                       ;
+
+       ladder_detail   : LADDER_ID ':' coordinate ',' UP_OR_DOWN
+                       ;
+
+       stair_detail    : STAIR_ID ':' coordinate ',' UP_OR_DOWN
+                       ;
+
+       stair_region    : STAIR_ID ':' lev_region ',' lev_region ',' UP_OR_DOWN
+                       ;
+
+       portal_region   : PORTAL_ID ':' lev_region ',' lev_region ',' string
+                       ;
+
+       teleprt_region  : TELEPRT_ID ':' lev_region ',' lev_region teleprt_detail
+                       ;
 
+       branch_region   : BRANCH_ID ':' lev_region ',' lev_region
+                       ;
 
-May                      Last change: 16                        6
+       teleprt_detail  : /* empty */
+                       | ',' UP_OR_DOWN
+                       ;
 
+       lev_region      : region
+                       | LEV '(' INTEGER ',' INTEGER ',' INTEGER ',' INTEGER ')'
+                       ;
 
+       fountain_detail : FOUNTAIN_ID ':' coordinate
+                       ;
 
+       sink_detail : SINK_ID ':' coordinate
+                       ;
 
+       pool_detail : POOL_ID ':' coordinate
+                       ;
 
+       diggable_detail : NON_DIGGABLE_ID ':' region
+                       ;
 
-LEV_COMP(6)                   1996                    LEV_COMP(6)
+       passwall_detail : NON_PASSWALL_ID ':' region
+                       ;
 
+       region_detail   : REGION_ID ':' region ',' light_state ',' room_type prefilled
+                       ;
 
+       altar_detail    : ALTAR_ID ':' coordinate ',' alignment ',' altar_type
+                       ;
 
-     ladder_detail   : LADDER_ID ':' coordinate ',' UP_OR_DOWN
-                     ;
+       gold_detail     : GOLD_ID ':' amount ',' coordinate
+                       ;
 
-     stair_detail    : STAIR_ID ':' coordinate ',' UP_OR_DOWN
-                     ;
+       engraving_detail: ENGRAVING_ID ':' coordinate ',' engraving_type ',' string
+                       ;
 
-     stair_region    : STAIR_ID ':' lev_region ',' lev_region ',' UP_OR_DOWN
-                     ;
+       monster_c       : monster
+                       | RANDOM_TYPE
+                       | m_register
+                       ;
 
-     portal_region   : PORTAL_ID ':' lev_region ',' lev_region ',' string
-                     ;
+       object_c        : object
+                       | RANDOM_TYPE
+                       | o_register
+                       ;
 
-     teleprt_region  : TELEPRT_ID ':' lev_region ',' lev_region teleprt_detail
-                     ;
+       m_name          : string
+                       | RANDOM_TYPE
+                       ;
 
-     branch_region   : BRANCH_ID ':' lev_region ',' lev_region
-                     ;
+       o_name          : string
+                       | RANDOM_TYPE
+                       ;
 
-     teleprt_detail  : /* empty */
-                     | ',' UP_OR_DOWN
-                     ;
+       trap_name       : string
+                       | RANDOM_TYPE
+                       ;
 
-     lev_region      : region
-                     | LEV '(' INTEGER ',' INTEGER ',' INTEGER ',' INTEGER ')'
-                     ;
+       room_type       : string
+                       | RANDOM_TYPE
+                       ;
 
-     fountain_detail : FOUNTAIN_ID ':' coordinate
-                     ;
+       prefilled       : /* empty */
+                       | ',' FILLING
+                       | ',' FILLING ',' BOOLEAN
+                       ;
 
-     sink_detail : SINK_ID ':' coordinate
-                     ;
+       coordinate      : coord
+                       | p_register
+                       | RANDOM_TYPE
+                       ;
 
-     pool_detail : POOL_ID ':' coordinate
-                     ;
+       door_state      : DOOR_STATE
+                       | RANDOM_TYPE
+                       ;
 
-     diggable_detail : NON_DIGGABLE_ID ':' region
-                     ;
+       light_state     : LIGHT_STATE
+                       | RANDOM_TYPE
+                       ;
 
-     passwall_detail : NON_PASSWALL_ID ':' region
-                     ;
+       alignment       : ALIGNMENT
+                       | a_register
+                       | RANDOM_TYPE
+                       ;
 
-     region_detail   : REGION_ID ':' region ',' light_state ',' room_type prefilled
-                     ;
+       altar_type      : ALTAR_TYPE
+                       | RANDOM_TYPE
+                       ;
 
-     altar_detail    : ALTAR_ID ':' coordinate ',' alignment ',' altar_type
-                     ;
+       p_register      : P_REGISTER '[' INTEGER ']'
+                       ;
 
-     gold_detail     : GOLD_ID ':' amount ',' coordinate
-                     ;
+       o_register      : O_REGISTER '[' INTEGER ']'
+                       ;
 
-     engraving_detail: ENGRAVING_ID ':' coordinate ',' engraving_type ',' string
-                     ;
+       m_register      : M_REGISTER '[' INTEGER ']'
+                       ;
 
-
-
-May                      Last change: 16                        7
-
-
-
-
-
-
-LEV_COMP(6)                   1996                    LEV_COMP(6)
-
-
-
-     monster_c       : monster
-                     | RANDOM_TYPE
-                     | m_register
-                     ;
-
-     object_c        : object
-                     | RANDOM_TYPE
-                     | o_register
-                     ;
-
-     m_name          : string
-                     | RANDOM_TYPE
-                     ;
-
-     o_name          : string
-                     | RANDOM_TYPE
-                     ;
-
-     trap_name       : string
-                     | RANDOM_TYPE
-                     ;
-
-     room_type       : string
-                     | RANDOM_TYPE
-                     ;
-
-     prefilled       : /* empty */
-                     | ',' FILLING
-                     | ',' FILLING ',' BOOLEAN
-                     ;
-
-     coordinate      : coord
-                     | p_register
-                     | RANDOM_TYPE
-                     ;
-
-     door_state      : DOOR_STATE
-                     | RANDOM_TYPE
-                     ;
-
-     light_state     : LIGHT_STATE
-                     | RANDOM_TYPE
-                     ;
-
-     alignment       : ALIGNMENT
-                     | a_register
-                     | RANDOM_TYPE
-                     ;
-
-     altar_type      : ALTAR_TYPE
-                     | RANDOM_TYPE
-                     ;
-
-
-
-May                      Last change: 16                        8
-
-
-
-
-
-
-LEV_COMP(6)                   1996                    LEV_COMP(6)
-
-
-
-     p_register      : P_REGISTER '[' INTEGER ']'
-                     ;
-
-     o_register      : O_REGISTER '[' INTEGER ']'
-                     ;
-
-     m_register      : M_REGISTER '[' INTEGER ']'
-                     ;
-
-     a_register      : A_REGISTER '[' INTEGER ']'
-                     ;
-
-     place           : coord
-                     ;
-
-     monster         : CHAR
-                     ;
-
-     object          : CHAR
-                     ;
-
-     string          : STRING
-                     ;
-
-     amount          : INTEGER
-                     | RANDOM_TYPE
-                     ;
-
-     chance          : /* empty */
-                     | PERCENT
-                     ;
-
-     engraving_type  : ENGRAVING_TYPE
-                     | RANDOM_TYPE
-                     ;
-
-     coord           : '(' INTEGER ',' INTEGER ')'
-                     ;
-
-     region          : '(' INTEGER ',' INTEGER ',' INTEGER ',' INTEGER ')'
-                     ;
-
-     NOTE:
-     Lines beginning with '#' are considered comments.
-
-     The contents of a "MAP" description of a maze is a rectangle
-     showing  the  exact  level  map  that should be used for the
-     given part of a maze.  Each character in the map corresponds
-     to  a  location on the screen.  Different location types are
-     denoted using different  ASCII  characters.   The  following
-     characters are recognized.  To give an idea of how these are
-     used, see the EXAMPLE, below.  The maximum size of a map  is
-
-
-
-May                      Last change: 16                        9
-
-
-
-
-
-
-LEV_COMP(6)                   1996                    LEV_COMP(6)
-
-
-
-     normally 76 columns by 21 rows.
-
-     '-'     horizontal wall
-     '|'     vertical wall
-     '+'     a doorway (state is specified in a DOOR declaration)
-     'A'     open air
-     'B'     boundary room location (for bounding unwalled irregular regions)
-     'C'     cloudy air
-     'I'     ice
-     'S'     a secret door
-     'H'     a secret corridor
-     '{'     a fountain
-     '\'     a throne
-     'K'     a sink (if SINKS is defined, else a room location)
-     '}'     a part of a moat or other deep water
-     'P'     a pool
-     'L'     lava
-     'W'     water (yes, different from a pool)
-     'T'     a tree
-     'F'     iron bars
-     '#'     a corridor
-     '.'     a normal room location (unlit unless lit in a REGION declaration)
-     ' '     stone
+       a_register      : A_REGISTER '[' INTEGER ']'
+                       ;
+
+       place           : coord
+                       ;
+
+       monster         : CHAR
+                       ;
+
+       object          : CHAR
+                       ;
+
+       string          : STRING
+                       ;
+
+       amount          : INTEGER
+                       | RANDOM_TYPE
+                       ;
+
+       chance          : /* empty */
+                       | PERCENT
+                       ;
+
+       engraving_type  : ENGRAVING_TYPE
+                       | RANDOM_TYPE
+                       ;
+
+       coord           : '(' INTEGER ',' INTEGER ')'
+                       ;
+
+       region          : '(' INTEGER ',' INTEGER ',' INTEGER ',' INTEGER ')'
+                       ;
+
+       NOTE:
+       Lines beginning with '#' are considered comments.
+
+       The contents of a "MAP" description of a maze is  a  rectangle  showing
+       the  exact  level map that should be used for the given part of a maze.
+       Each character in the map corresponds to  a  location  on  the  screen.
+       Different  location types are denoted using different ASCII characters.
+       The following characters are recognized.  To give an idea of how  these
+       are  used,  see  the EXAMPLE, below.  The maximum size of a map is nor-
+       mally 76 columns by 21 rows.
+
+       '-'     horizontal wall
+       '|'     vertical wall
+       '+'     a doorway (state is specified in a DOOR declaration)
+       'A'     open air
+       'B'     boundary room location (for bounding unwalled irregular regions)
+       'C'     cloudy air
+       'I'     ice
+       'S'     a secret door
+       'H'     a secret corridor
+       '{'     a fountain
+       '\'     a throne
+       'K'     a sink
+       '}'     a part of a moat or other deep water
+       'P'     a pool
+       'L'     lava
+       'W'     water (yes, different from a pool)
+       'T'     a tree
+       'F'     iron bars
+       '#'     a corridor
+       '.'     a normal room location (unlit unless lit in a REGION declaration)
+       ' '     stone
 
 EXAMPLE
-     Here is an example of a  description  file  (a  very  simple
-     one):
-
-     MAZE : "fortress", random
-     GEOMETRY : center , center
-     MAP
-     }}}}}}}}}
-     }}}|-|}}}
-     }}|-.-|}}
-     }|-...-|}
-     }|.....|}
-     }|-...-|}
-     }}|-.-|}}
-     }}}|-|}}}
-     }}}}}}}}}
-     ENDMAP
-     MONSTER: '@', "Wizard of Yendor", (4,4)
-     OBJECT: '"', "Amulet of Yendor", (4,4)
-     # a hell hound flanking the Wiz on a random side
-     RANDOM_PLACES: (4,3), (4,5), (3,4), (5,4)
-     MONSTER: 'd', "hell hound", place[0]
-     # a chest on another random side
-     OBJECT: '(', "chest", place[1]
-     # a sack on a random side, with a diamond and maybe a ruby in it
-     CONTAINER: '(', "sack", place[2]
-     OBJECT: '*', "diamond", contained
-     OBJECT[50%]: '*', "ruby", contained
-
-
-
-May                      Last change: 16                       10
-
-
-
-
-
-
-LEV_COMP(6)                   1996                    LEV_COMP(6)
-
-
-
-     # a random dragon somewhere
-     MONSTER: 'D', random, random
-     # 3 out of 4 chance for a random trap in the EAST end
-     TRAP[75%]: random, (6,4)
-     # an electric eel below the SOUTH end
-     MONSTER: ';', "electric eel", (4,8)
-     # make the walls non-diggable
-     NON_DIGGABLE: (0,0,8,8)
-     TELEPORT_REGION: levregion(0,0,79,20), (0,0,8,8)
-
-     This example will produce a file named "fortress"  that  can
-     be integrated into one of the numerous mazes of the game.
-
-     Note especially the  final,  TELEPORT_REGION  specification.
-     This   says  that  level  teleports  or  other  non-stairway
-     arrivals on this level can land anywhere on the level except
-     the  area  of  the  map.  This shows the use of the ``levre-
-     gion'' prefix  allowed  in  certain  region  specifications.
-     Normally, regions apply only to the most recent MAP specifi-
-     cation, but when prefixed with ``levregion'', one can  refer
-     to any area of the level, regardless of the placement of the
-     current MAP in the level.
+       Here is an example of a description file (a very simple one):
+
+       MAZE : "fortress", random
+       GEOMETRY : center , center
+       MAP
+       }}}}}}}}}
+       }}}|-|}}}
+       }}|-.-|}}
+       }|-...-|}
+       }|.....|}
+       }|-...-|}
+       }}|-.-|}}
+       }}}|-|}}}
+       }}}}}}}}}
+       ENDMAP
+       MONSTER: '@', "Wizard of Yendor", (4,4)
+       OBJECT: '"', "Amulet of Yendor", (4,4)
+       # a hell hound flanking the Wiz on a random side
+       RANDOM_PLACES: (4,3), (4,5), (3,4), (5,4)
+       MONSTER: 'd', "hell hound", place[0]
+       # a chest on another random side
+       OBJECT: '(', "chest", place[1]
+       # a sack on a random side, with a diamond and maybe a ruby in it
+       CONTAINER: '(', "sack", place[2]
+       OBJECT: '*', "diamond", contained
+       OBJECT[50%]: '*', "ruby", contained
+       # a random dragon somewhere
+       MONSTER: 'D', random, random
+       # 3 out of 4 chance for a random trap in the EAST end
+       TRAP[75%]: random, (6,4)
+       # an electric eel below the SOUTH end
+       MONSTER: ';', "electric eel", (4,8)
+       # make the walls non-diggable
+       NON_DIGGABLE: (0,0,8,8)
+       TELEPORT_REGION: levregion(0,0,79,20), (0,0,8,8)
+
+       This example will produce a file named "fortress"  that  can  be  inte-
+       grated into one of the numerous mazes of the game.
+
+       Note  especially  the  final, TELEPORT_REGION specification.  This says
+       that level teleports or other non-stairway arrivals on this  level  can
+       land  anywhere on the level except the area of the map.  This shows the
+       use of the ``levregion'' prefix allowed in  certain  region  specifica-
+       tions.   Normally, regions apply only to the most recent MAP specifica-
+       tion, but when prefixed with ``levregion'', one can refer to  any  area
+       of  the  level,  regardless  of the placement of the current MAP in the
+       level.
 
 AUTHOR
-     Jean-Christophe Collet, David Cohrs.
+       Jean-Christophe Collet, David Cohrs.
 
 SEE ALSO
-     dgn_comp(6), nethack(6)
+       dgn_comp(6), nethack(6)
 
 BUGS
-     Probably infinite.  Most importantly, still needs additional
-     bounds checking.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+       Probably infinite.  Most importantly,  still  needs  additional  bounds
+       checking.
 
-May                      Last change: 16                       11
+COPYRIGHT
+       This  file  is  Copyright  (C)  Kenneth  Lorber  and  was last modified
+       2018/04/25 (version NetHack-3.6.0:1.7).  NetHack may be  freely  redis-
+       tributed.  See license for details.
 
 
 
+NETHACK                           25 May 2015                      LEV_COMP(6)