Classes
	ABSTRACT_SPECIAL*
			-- Ancestor of SPECIAL to perform queries on SPECIAL without knowing its actual generic type.

	ACTIVE* [G]
			-- Active data structures, which at every stage have
			-- a possibly undefined current item.
			-- Basic access and modification operations apply to the current item.

	ADDRESS_APPLIED_TO_MELTED_FEATURE
			-- Exception raised when $ is applied to melted feature

	ALLOCATED_SOUND_T
			-- chocolate doom i_sdlsound.c

	AMMOTYPE_T
			-- ammotype_t enum from doomdef.h

	AM_MAP
			-- am_map.c
			-- the automap code

	ANGLE_T
			-- tables.h

	ANIM_T
			-- anim_t from wi_stuff.c
			-- 
			-- Animation.
			-- There is another anim_t used in p_spec.

	ANY
			-- Project-wide universal properties.
			-- This class is an ancestor to all developer-written classes.
			-- ANY may be customized for individual projects or teams.

	ARGUMENTS
			-- Access to command-line arguments. This class 
			-- may be used as ancestor by classes needing its facilities.

	ARGUMENTS_32
			-- Access to command-line arguments. This class 
			-- may be used as ancestor by classes needing its facilities.

	ARRAY [G]
			-- Sequences of values, all of the same type or of a conforming one,
			-- accessible through integer indices in a contiguous interval.

	ARRAYED_LIST [G]
			-- Lists implemented by resizable arrays

	ARRAYED_LIST_CURSOR
			-- Cursors for arrayed lists

	ARRAYED_LIST_ITERATION_CURSOR [G]
			-- External forward one-step iteration cursor for ARRAYED_LIST.

	ARRAYED_QUEUE [G]
			-- Unbounded queues, implemented by resizable arrays

	ARRAYED_QUEUE_ITERATION_CURSOR [G]
			-- External iteration cursor for ARRAYED_QUEUE.

	ARRAYED_STACK [G]
			-- Stacks implemented by resizable arrays

	ARRAY_ITERATION_CURSOR [G]
			-- External forward one-step iteration cursor for ARRAY.

	ASSERTION_VIOLATION*
			-- Exception represents an assertion violation.

	BAD_INSPECT_VALUE
			-- Exception raised by inspect value which is not one
			-- of the inspect constants, if there is no Else_part.

	BAG* [G]
			-- Collections of items, where each item may occur zero
			-- or more times, and the number of occurrences is meaningful.

	BILINEAR* [G]
			-- Structures that may be traversed forward and backward

	BOOLEAN
			-- Truth values, with the boolean operations

	BOOLEAN_REF
			-- References to objects containing a boolean value

	BOUNDED* [G]
			-- Bounded data structures, with a notion of capacity.

	BOX* [G]
			-- Data structures of the most general kind,
			-- having the potential ability to become full,
			-- and characterized by their implementation properties.

	BUTTON_T
			-- button_t from p_spec.h

	BYTE_ARRAY
			-- Reference for array of bytes (NATURAL_8)

	BYTE_SEQUENCE*
			-- General interface for a bound byte sequence

	CARD_T
			-- card_t from doomdef.h

	CEILING_E
			-- ceiling_e from p_spec.h

	CELL [G]
			-- Cells containing an item

	CHAIN* [G]
			-- Possibly circular sequences of items,
			-- without commitment to a particular representation

	CHANNEL_T
			-- s_sound.c

	CHARACTER_32
			-- Unicode characters, with comparison operations

	CHARACTER_32_REF
			-- References to objects containing a unicode character value

	CHARACTER_8
			-- Characters, with comparison operations and an ASCII code

	CHARACTER_8_REF
			-- References to objects containing a character value

	CHARACTER_PROPERTY
			-- Helper functions to provide property of a Unicode character of type CHARACTER_32.
			-- This includes finding out if a character is lower, upper, title case, or if it is a digit,
			-- a punctuation, a control or a space character.

	CHEAT_T
			-- cheat_t from d_player.h
			-- 
			-- Player internal flags, for cheats and debug

	CHECK_VIOLATION
			-- Exception raised by violated checks

	CLIPRANGE_T
			-- cliprange_t from r_bsp.c
			-- 
			-- ClipWallSegment
			-- Clips the given range of columns
			-- and includes it in the new clip list.

	COLLECTION* [G]
			-- General container data structures, 
			-- characterized by the membership properties of their items.

	COLUMN_T
			-- r_defs.h

	COMPARABLE*
			-- Objects that may be compared according to a total order relation
			-- 
			-- Note: The basic operation is < (less than); others are defined
			-- in terms of this operation and is_equal.

	COM_FAILURE
			-- Exception for a COM error

	CONSOLE
			-- Commonly used console input and output mechanisms. 
			-- This class may be used as ancestor by classes needing its facilities.

	CONTAINER* [G]
			-- Data structures of the most general kind,
			-- used to hold zero or more items.

	COUNTABLE* [G]
			-- Infinite containers whose items are in one-to-one 
			-- correspondence with the integers.

	COUNTABLE_SEQUENCE* [G]
			-- Infinite sequences, indexed by integers

	CREATE_ON_DEFERRED
			-- Exception raised when creating deferred classes

	CURSOR
			-- Cursors for remembering positions in arbitrary data structures

	CURSOR_STRUCTURE* [G]
			-- Active structures, which always have a current position
			-- accessible through a cursor.

	C_STRING
			-- A low-level string class to solve some garbage collector problems (mainly objects moving around) when interfacing with C APIs.

	DATA_EXCEPTION*
			-- Deffered class of data exception from the runtime

	DEBUG_OUTPUT*
			-- Objects that provide an output in debugger

	DEGENMOBJ_T
			-- degenmobj_t from r_defs.h
			-- 
			-- Each sector has a degenmobj_t in its center
			-- for sound origin purposes.
			-- 
			-- I suppose this does not handle sound from
			-- moving objects (doppler), because
			-- position is prolly just buffered, not updated

	DEMOLUMP_T
			-- Structure of demo lumps as in post-1.2 (namely 1.10)

	DEMOTICK_T
			-- Structure of a tick for DEMOLUMP_T

	DEVELOPER_EXCEPTION
			-- Ancestor of all developer exceptions

	DIRECTORY
			-- Directories, in the Unix sense, with creation and exploration features

	DISPENSER* [G]
			-- Dispensers: containers for which clients have no say
			-- as to what item they can access at a given time.
			-- Examples include stacks and queues.

	DISPOSABLE*
			-- Perform cleanup operations before current instance is reclaimed by garbage collection.

	DIVLINE_T
			-- divline_t from p_local.h

	DOOMCOM_T
			-- d_net.h

	DOOMDATA_H
			-- doomdata.h
			-- all external data is defined here
			-- most of the data is loaded into different structures at run time
			-- some internal structures shared by many modules are here

	DOOMDATA_T
			-- doomdata_t from d_net.h
			-- 
			-- Network packet data.

	DOOMDEF_H
			-- doomdef.h
			-- Internally used data structures for virtually everything,
			--  key definitions, lots of other stuff.

	DOOMKEYS_H
			-- chocolate doom doomkeys.h
			-- 
			-- Key definitions

	DOOMSTAT_H
			-- doomstat.h
			-- All the global variables that store the internal state.
			--  Theoretically speaking, the internal state of the engie
			--  should be found by looking at the variables collected
			--  here, and every relevant module will have to include
			--  this header file.
			-- In practice, things are a bit messy.

	DOOMTYPE_H
			-- doomtype.h
			-- Simple basic typedefs, isolated here to make it easier
			--  separating modules.

	DOUBLE_MATH
			-- Basic mathematical operations, double-precision.
			-- This class may be used as ancestor by classes needing its facilities.

	DRAWSEG_T
			-- drawseg_t from r_defs.h

	DYNAMIC_CHAIN* [G]
			-- Dynamically modifiable chains

	DYNAMIC_LIST* [G]
			-- Sequential, dynamically modifiable lists,
			-- without commitment to a particular representation

	D_DISPLAY
			-- Summary description for D_DISPLAY.

	D_ENGLSH
			-- d_englsh.h
			-- Printed strings for translation.
			-- English language support (default).

	D_EVENT
			-- d_event.h

	D_ITEMS
			-- d_items.c

	D_MAIN
			-- d_main.c
			-- DOOM main program (D_DoomMain) and game loop (D_DoomLoop),
			-- plus functions to determine game mode (shareware, registered),
			-- parse command line parameters, configure game parameters (turbo),
			-- and call the startup functions.

	D_NET
			-- d_net.c
			-- DOOM Network game communication and protocol,
			-- all OS independend parts.

	D_PLAYER
			-- d_player.h

	EIFFELSTUDIO_SPECIFIC_LANGUAGE_EXCEPTION*
			-- Deferred class representing EiffelStudio specific language exceptions.

	EIFFEL_RUNTIME_EXCEPTION*
			-- Eiffel runtime exception

	EIFFEL_RUNTIME_PANIC
			-- Eiffel runtime panic

	EIF_EXCEPTION*
			-- Deferred class for exceptions of Eiffel language, runtime and so on.

	EQA_ASSERTIONS
			-- Universal assertion mechanisms.

	EQA_ENVIRONMENT
			-- Objects that provide settings for executing an EQA_TEST_SET. A settings conists of an
			-- key-value pair of type {STRING}.
			-- The settings are once per thread, meaning that any EQA_ENVIRONMENT instances will have
			-- the same state if they are accessed in the same thread.

	EQA_EVALUATOR
			-- Core implementation for root class of test executor. The test evaluator is used by the
			-- testing tool to run tests and retrieve results. Any descendant of this class should be used as
			-- the root class of an interpreter. Descendants need to provide EQA_EVALUATOR information on
			-- what test classes/routines are available and be able to create instances of them.

	EQA_EXTERNALS
			-- Objects providing byte code support for testing facilities.

	EQA_FILE_SYSTEM
			-- Objects creating directories and files in a system test set environment.

	EQA_PARTIAL_RESULT
			-- Test result from an execution where setup was exceptional

	EQA_RESULT
			-- Responce produced from executing an Eiffel test
			-- 
			-- TEST_OUTCOME holds information about the tree stages each test execution consists of: setup, test
			-- and teardown. Based on that information it tries to determine whether the implementation passes
			-- or fails the test. If an unexpected error occurred during execution, it will blame the test by
			-- setting is_maintenance_required to True. Somethimes the error prevents to determine wheter the
			-- implementaion has passed or failed the test. In that case a outcome is said to be unresolved.

	EQA_SYSTEM_PATH
			-- Objects representing a relative path.

	EQA_TEST_EVALUATOR [G -> EQA_TEST_SET create default_create end]
			-- Objects that are able to run tests in a protected environment and provide information whether
			-- the test has failed or succeeded.
			-- 
			-- Note: Evaluator is not able to recover from all exceptions. Tests causing seg-faults or out-of-
			--       memory exceptions might put evaluator in an unstable state.

	EQA_TEST_INVOCATION_EXCEPTION
			-- Objects representing an exception raised while invoking a test class and/or feature.
			-- 
			-- Note: EQA_TEST_INVOCATION_EXCEPTION does not only contain the exception information, it also
			--       analyses the stack trace to determine whether the implementation or the test code is
			--       to blame.
			-- 
			-- TODO: Take stack frames of agent calls into account, meaning that even though {PROCEDURE}.fast_call
			--       causes a precondition violation, the stack frame calling the agent is to blame.

	EQA_TEST_INVOCATION_RESPONSE
			-- Represents the result from executing one of the stages in an Eiffel test.

	EQA_TEST_OUTPUT_BUFFER
			-- Objects that redirect file output into a buffer. If the output exceeds the size of the buffer,
			-- only the first and the last part of the output are kept in the buffer.

	EQA_TEST_SET*
			-- Sets of related testing operations.

	ERL_CONSTANTS
			-- Constants for interpreter

	EVENT_T
			-- d_event.h

	EXCEPTION
			-- Ancestor of all exception classes.

	EXCEPTIONS
			-- Facilities for adapting the exception handling mechanism.
			-- This class may be used as ancestor by classes needing its facilities.

	EXCEPTION_IN_SIGNAL_HANDLER_FAILURE
			-- Exception raised in signal handler

	EXCEPTION_MANAGER
			-- Common exception operations and management.

	EXCEPTION_MANAGER_FACTORY
			-- Exception manager factory.

	EXCEP_CONST
			-- Constants used for exception handling.
			-- This class may be used as ancestor by classes needing its facilities.

	EXECUTION_ENVIRONMENT
			-- The objects available from the environment at time of execution

	EXTERNAL_FAILURE
			-- Exception for operating system error
			-- which does not set the errno variable (Unix-specific)

	FILE*
			-- Sequential files, viewed as persistent sequences of characters

	FILELUMP_T
			-- w_wad.c

	FILE_INFO
			-- Internal file information

	FILE_ITERATION_CURSOR
			-- External iteration cursor for a file.

	FINITE* [G]
			-- Structures with a finite item count

	FIXED_T
			-- m_fixed.h

	FLOATING_POINT_FAILURE
			-- Floating point failure

	FLOOR_E
			-- floor_e from p_spec.h

	FUNCTION [OPEN_ARGS -> detachable TUPLE create default_create end, RESULT_TYPE]
			-- Objects representing delayed calls to a function,
			-- with some arguments possibly still open.
			-- 
			-- Note: Features are the same as those of ROUTINE,
			-- with apply made effective, and the addition
			-- of last_result and item.

	F_FINALE
			-- f_finale.c
			-- Game completion, final screen animation.

	F_WIPE
			-- f_wipe.c
			-- Mission begin melt/wipe screen special effect.

	GAME_MODE_T
			-- Enum from doomdef.h

	GC_INFO
			-- Garbage collector statistics.
			-- This class may be used as ancestor by classes needing its facilities.
			-- Time accounting is relevant only if enable_time_accounting 
			-- (from MEMORY) has been called.

	GENERAL_SPECIAL_ITERATION_CURSOR* [G, H -> READABLE_INDEXABLE [G]]
			-- External forward one-step iteration cursor for structures that use SPECIAL for storage.

	G_GAME
			-- g_game.c
			-- none

	HARDWARE_EXCEPTION*
			-- Deferred class for hardware exceptions

	HASHABLE*
			-- Values that may be hashed into an integer index, 
			-- for use as keys in hash tables

	HASH_TABLE [G, K -> detachable HASHABLE]
			-- Hash tables, used to store items identified by hashable keys

	HASH_TABLE_CURSOR
			-- Cursors for hash table traversal

	HASH_TABLE_ITERATION_CURSOR [G, K -> detachable HASHABLE]
			-- An external iteration cursor for HASH_TABLE.

	HEXADECIMAL_STRING_TO_INTEGER_CONVERTER
			-- Convertor to do hexadecimal string to integer/natural conversion

	HU_ITEXT_T
			-- hu_lib.h
			-- Input Text Line widget
			--  (child of Text Line widget)

	HU_LIB
			-- hu_lib.c
			-- heads-up text and input code

	HU_STEXT_T
			-- hu_lib.h
			-- Scrolling Text window widget
			--  (child of Text Line widget)

	HU_STUFF
			-- hu_stuff.c
			-- Heads-up displays

	HU_TEXTLINE_T
			-- hu_lib.h
			-- Text Line widget
			--  (parent of Scrolling Text and Input Text widgets)

	IMMUTABLE_STRING_32
			-- Sequences of immutable 32-bit characters, accessible through integer indices
			-- in a contiguous range.

	IMMUTABLE_STRING_8
			-- Sequences of immutable 8-bit characters, accessible through integer indices
			-- in a contiguous range.

	IMMUTABLE_STRING_GENERAL*
			-- Common ancestors to all immutable STRING classes.

	INDEXABLE* [G, H -> INTEGER_32]
			-- Tables whose keys are integers in a contiguous interval

	INDEXABLE_ITERATION_CURSOR* [G]
			-- External iteration cursor for READABLE_INDEXABLE.

	INDEX_IN_ARRAY [G]
			-- Utility class to represent pointers inside array

	INFINITE* [G]
			-- Infinite containers.

	INFO
			-- info.c
			-- Thing frame/state LUT,
			-- generated by multigen utility.
			-- This one is the original DOOM version, preserved.

	INTEGER_16
			-- Integer values coded on 16 bits

	INTEGER_16_REF
			-- References to objects containing an integer value coded on 16 bits

	INTEGER_32
			-- Integer values

	INTEGER_32_REF
			-- References to objects containing an integer value coded on 32 bits

	INTEGER_64
			-- Integer values coded on 64 bits

	INTEGER_64_REF
			-- References to objects containing an integer value coded on 64 bits

	INTEGER_8
			-- Integer values coded on 8 bits

	INTEGER_8_REF
			-- References to objects containing an integer value coded on 8 bits

	INTEGER_INTERVAL
			-- Contiguous integer intervals

	INTEGER_OVERFLOW_CHECKER
			-- String - Integer/Natural conversion overflow checker

	INTERCEPT_T
			-- intercept_t from p_local.h

	INTERNAL
			-- Access to internal object properties.
			-- This class may be used as ancestor by classes needing its facilities.

	INVARIANT_VIOLATION
			-- Exception representing an invariant violation

	IO_FAILURE
			-- IO failure

	IO_MEDIUM*
			-- Any medium that can perform input and/or output

	ISE_EXCEPTION_MANAGER
			-- Exception manager. 
			-- The manager handles all common operations of exception mechanism and interaction with the ISE runtime.

	ISE_RUNTIME
			-- Set of features to access ISE runtime functionality.
			-- To be used at your own risk.
			-- Interface may changed without notice.

	ITERABLE* [G]
			-- Structure that can be iterated over using across...loop...end.

	ITERATION_CURSOR* [G]
			-- External iteration cursor used by across...loop...end.

	ITP_CONSTANT
			-- Objects representing constants.

	ITP_EXPRESSION*
			-- Common ancestor for all Expressions supported by the interpreter.

	ITP_EXPRESSION_PROCESSOR*
			-- Processor for expressions (Visitor Pattern)

	ITP_INTERPRETER
			-- Interpreter for line based Eiffel like interpreter language.
			-- Depends on a generated Erl-G reflection library.

	ITP_SHARED_CONSTANTS
			-- Constants used by interpeter

	ITP_STORE
			-- Object store for interpreter

	ITP_VARIABLE
			-- Objects representing variables.

	I_INPUT
			-- chocolate doom doomkeys.h
			-- 
			-- Key definitions

	I_MAIN
			-- i_main.c
			-- Main program, simply calls D_DoomMain high level loop

	I_MIDIPIPE
			-- chocolate doom i_midipipe.c
			-- Client Interface to Midi Server

	I_MUSICPACK
			-- chocolate doom i_musicpack.c

	I_NET
			-- i_net.c

	I_SOUND
			-- i_sound.c
			-- System interface for sound.

	I_SYSTEM
			-- i_system.c

	I_TIMER
			-- i_timer.c
			-- from chocolate-doom/rum-and-raisin-doom
			-- 
			-- Timer functions.

	I_VIDEO
			-- i_video.c
			-- DOOM graphics stuff for SDL library

	LANGUAGE_EXCEPTION*
			-- Eiffel language exception

	LIGHTTABLE_T
			-- r_defs.h
			-- This could be wider for >8 bit display.
			-- Indeed, true color support is possible
			--  precalculating 24bpp lightmap/colormap LUT.
			--  from darkening PLAYPAL to all black.
			-- Could even us emore than 32 levels.

	LINEAR* [G]
			-- Structures whose items may be accessed sequentially, one-way

	LINE_T
			-- line_t from r_defs.h

	LINKABLE [G]
			-- Linkable cells containing a reference to their right neighbor

	LINKED_LIST [G]
			-- Sequential, one-way linked lists

	LINKED_LIST_CURSOR [G]
			-- Cursors for linked lists

	LINKED_LIST_ITERATION_CURSOR [G]
			-- Concrete of an external iteration cursor for LINKED_LIST. Reversed traversal has a (n (n + 1)) / 2 operations cost.

	LIST* [G]
			-- Sequential lists, without commitment to a particular representation

	LOOP_INVARIANT_VIOLATION
			-- Exception raised for violated loop invariant

	LUMPINFO_T
			-- w_wad.h

	MACHINE_EXCEPTION*
			-- Deferred class for machine exception, operation exceptions and hardware exceptions

	MANAGED_POINTER
			-- To easily manage allocation and release of allocated C memory, and
			-- to perform insertion of basic elements. Byte order is by default
			-- platform specific.
			-- Although memory allocation routines do not accept a zero sized pointer
			-- MANAGED_POINTER does by allocating in fact a 1 byte sized pointer for
			-- this particular case.

	MANAGED_POINTER_WITH_OFFSET
			-- Utility class to bundle a managed pointer with an offset

	MAPPATCH_T
			-- mappatch_t from r_data.c
			-- 
			-- Texture definition.
			-- Each texture is composed of one or more patches,
			-- with patches being lumps stored in the WAD.
			-- The lumps are referenced by number, and patched
			-- into the rectangular texture space using origin
			-- and possibly other attributes

	MAPTEXTURE_T
			-- maptexture_t from r_data.c
			-- A DOOM wall texture is a list of patches
			-- which are to be combined in a predefined order.

	MAPTHING_T
			-- mapthing_t from doomdata.h
			-- 
			-- Thing definition, position, orientation and type,
			-- plus skill/visibility flags and attributes.

	MATH_CONST
			-- Basic mathematical constants.
			-- This class may be used as ancestor by classes needing its facilities.

	MEMORY
			-- Facilities for tuning up the garbage collection mechanism.
			-- This class may be used as ancestor by classes needing its facilities.

	MEMORY_STRUCTURE*
			-- Representation of a memory structure.

	MEM_CONST
			-- Constants used by memory management.
			-- This class may be used as ancestor by classes needing its facilities.

	MEM_INFO
			-- Properties of the memory management mechanism.
			-- This class may be used as ancestor by classes needing its facilities.

	MENUITEM_T
			-- m_menu.c

	MENU_T
			-- m_menu.c

	MISMATCH_CORRECTOR
			-- Ancestor of all classes that need facility to retrieve an older version of an instance of current
			-- class through storable.
			-- Redefine correct_mismatch to get data from mismatch_information about found mismatch. A mismatch
			-- might be the addition or the removal of an attribute as well as an attribute type change.

	MISMATCH_FAILURE
			-- Exception for retrieval error, 
			-- may be raised by retrieved in IO_MEDIUM.

	MISMATCH_INFORMATION
			-- Original values of the attributes of a mismatched object.

	MIX
			-- Summary description for MIX.

	MIX_CHUNK

	MIX_CHUNK_STRUCT_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	MIX_ERROR
			-- Summary description for MIX_ERROR.

	MIX_INIT_FLAGS_ENUM_API

	MIX_MUSIC_STRUCT_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	MOBJFLAG_T
			-- mobjflag_t from p_mobj.h

	MOBJINFO_T
			-- mobjinfo_t from info.h

	MOBJTYPE_T
			-- mobjtype_t from info.h

	MOBJ_T
			-- p_mobj.h

	MUS2MID
			-- chocolate doom mus2mid, originally by Ben Ryves

	MUSHEADER
			-- chocolate doom mus2mid.c

	MUSICINFO_T
			-- chocolate doom i_sound.h

	MUSIC_MODULE_T*
			-- chocolate doom i_sound.h

	MUSIC_OPL_MODULE
			-- chocolate doom i_oplmusic.c

	MUSIC_SDL_MODULE
			-- chocolate doom i_sdlmusic.c
			-- System interface for music.

	M_ARGV
			-- m_argv.c

	M_BBOX
			-- m_bbox.c
			-- Main loop menu stuff.
			-- Random number LUT.
			-- Default Config File.
			-- PCX Screenshots.

	M_CONFIG
			-- chocolate doom m_config.c
			-- Configuration file interface.

	M_FIXED
			-- m_fixed.c
			-- Fixed point arithmetics, implementation

	M_MENU
			-- m_menu.c
			-- DOOM selection menu, options, episodes etc.
			-- Sliders and icons. Kinda widget stuff.

	M_MISC
			-- m_misc.c
			-- Main loop menu stuff.
			-- Default Config File.
			-- PCX Screenshots.

	M_RANDOM
			-- m_random.c
			-- Random number LUT.

	NATIVE_ARRAY [G]
			-- Fake abstraction of a .NET NATIVE_ARRAY in a non-.NET system

	NATIVE_STRING
			-- Platform specific encoding of Unicode strings. By default, UTF-8 on unix or UTF-16 on Windows.
			-- 
			-- Mixed-encoding consideration
			-- ============================
			-- 
			-- Most operating systems have conventions for strings that are incompatible with Unicode.
			-- On UNIX, a string is just a null-terminated byte sequence, it does not follow any
			-- specific encoding. Usually the locale setting enables you to see the string the way
			-- you expect.
			-- On Windows, the sequence of names is made of null-terminated UTF-16 code unit sequence. Windows
			-- does not guarantee that the sequence is actually a valid UTF-16 sequence.
			-- 
			-- In other words, when there is an invalid UTF-8 encoding on UNIX, or an invalid UTF-16 encoding
			-- on Windows, the string is not directly representable as a Unicode string. To make it possible
			-- to create and store strings in a textually representable form, the query string will create
			-- an encoded representation that can be then later used in make to create a NATIVE_STRING
			-- equivalent to the original string. The encoding is described in UTF_CONVERTER's note clause
			-- and is a fourth variant of the recommended practice for replacement characters in Unicode
			-- (see http://www.unicode.org/review/pr-121.html).
			-- 

	NATIVE_STRING_HANDLER
			-- Objects that can access low level features of {FILE_INFO} to access the underlying operating system encoding of file names.

	NATURAL_16
			-- Unsigned integer values coded on 16 bits

	NATURAL_16_REF
			-- References to objects containing an unsigned integer value coded on 16 bits.

	NATURAL_32
			-- Unsigned integer values coded on 32 bits.

	NATURAL_32_REF
			-- References to objects containing an unsigned integer value coded on 32 bits.

	NATURAL_64
			-- Unsigned integer values coded on 64 bits

	NATURAL_64_REF
			-- References to objects containing an unsigned integer value coded on 64 bits.

	NATURAL_8
			-- Integer values coded on 8 bits

	NATURAL_8_REF
			-- References to objects containing an unsigned integer value coded on 8 bits.

	NODE_T
			-- node_t from r_defs.h
			-- 
			-- BSP node.

	NOT_IMPLEMENTED
			-- Logging for not implemented yet features

	NO_MORE_MEMORY
			-- Exception raised when no more memory can be allocated.

	NUMERIC*
			-- Objects to which numerical operations are applicable
			-- Note: The model is that of a commutative ring.

	NUMERIC_INFORMATION
			-- Information about integer, natural and real type in Eiffel

	OBJECT_GRAPH_BREADTH_FIRST_TRAVERSABLE
			-- Objects that traverse object graphs starting at the root object in a breadth first manner.

	OBJECT_GRAPH_DEPTH_FIRST_TRAVERSABLE
			-- Objects that traverse object graphs starting at the root object in a depth first manner.

	OBJECT_GRAPH_MARKER
			-- Facility to mark objects once when traversing an object graph.

	OBJECT_GRAPH_TRAVERSABLE*
			-- Utility class to traverse object graphs starting at a root object.
			-- 
			-- 
			-- When traversing a graph the class distinguishes four different types of references:
			-- 
			-- (1) Normal references
			-- (2) References with copy-semantics, which are usually seen when attaching 
			-- an expanded object to an ANY reference
			-- (3) User-defined expanded objects, embedded inside another object. 
			-- Semantically this is a special case of a copy-semantics reference.
			-- (4) Language-defined expanded objects (INTEGER, POINTER etc) embedded inside another object. 
			-- Semantically, this is a special case of a copy-semantics reference.
			-- 
			-- This class will follow all reference types except (4). 
			-- 
			-- During traversal the agent on_processing_object_action will be called for each object
			-- and the agent on_processing_reference_action for each reference, if present. This includes
			-- references to objects that have already been processed.
			-- 
			-- The algorighm has two output values: visited_objects and visited_types:
			-- Any standard object without copy-semantics (i.e. reference type (1)) will be stored
			-- by aliasing inside visited_object. For references of type (2) and (3) a copy will be stored.
			-- The visited_types hash table contains the dynamic type id of all types encountered during 
			-- traversal. The key and value in the hashtable are the same.
			-- 
			-- Setting is_skip_copy_semantics_reference to true means that references of (2) and (3) will
			-- not be stored in visited_types. Note that this is the only effect of this setting - i.e.
			-- the traversal algorithm will still follow the references, the agents will be called, and the
			-- visited_types array will be extended anyway.
			-- 
			-- NOTE:
			-- 
			-- Due to a limitation in the reflection library, references of type (2) and (3) within TUPLE 
			-- and references of type (3) within SPECIAL cannot be handled without causing a copy. This is 
			-- problematic for agents, especially when they want to change the object. Therefore
			-- the algorithm will raise an exception when an agent is attached.
			-- In read-only situations it may be acceptable to use a copy of an object. Therefore to disable the
			-- exception behaviour you can set is_exception_on_copy_suppressed to True.
			-- 
			-- NOTE:
			-- 
			-- To maintain backwards compatibility the traversal algorithm will silently ignore any kind of 
			-- exception and just return normally, with traversed_objects set to whatever value it had before 
			-- invoking traverse. In order to get exceptions you need to set is_exception_propagated to True.

	OBSOLETE_EXCEPTION*
			-- Obsolete exception

	OLD_VIOLATION
			-- Exception raised when an old expression evaluation failure was recorded and the expression access is attempted in postcondition.

	OPERATING_ENVIRONMENT
			-- The objects available from the operating system

	OPERATING_SYSTEM_EXCEPTION*
			-- Operating system exception

	OPERATING_SYSTEM_FAILURE
			-- Operating system failure

	OPERATING_SYSTEM_SIGNAL_FAILURE
			-- Operating system signal failure

	PART_COMPARABLE*
			-- Objects that may be compared according to a partial order relation

	PATCH_T
			-- r_defs.h
			-- Patches.
			-- A patch holds one or more columns.
			-- Patches are used for sprites and all masked pictures,
			-- and we compose textures from the TEXTURE1/2 lists
			-- of patches

	PATH
			-- Objects representing a path, i.e. a way to identify a file or a directory for the
			-- current underlying platform. A path is made of two components:
			-- 1 - an optional root which can either be:
			-- a - a drive letter followed by colon on Windows, i.e. "C:" or "C:\"
			-- b - "/" for UNIX root directory.
			-- c - "\" for Windows root directory.
			-- d - "\\server\share" or "\\server\share\" for Microsoft UNC path.
			-- 2 - a sequence of zero or more names.
			-- 
			-- A path is absolute if it has a root, and on windows if the root is a drive, then it should
			-- be followed by "\". Otherwise a path is relative.
			-- 
			-- 
			-- Validity
			-- ========
			-- 
			-- The current class will not check the validity of filenames. Check your file
			-- system for your operating system manual for the list of invalid characters.
			-- 
			-- 
			-- Windows consideration
			-- =====================
			-- 
			-- When the root of a Windows path is a drive, be aware of the following behavior:
			-- 1 - "C:filename.txt" refers to the file name "filename.txt" in the current directory 
			--     on drive "C:".
			-- 2 - "C:sub\filename.txt" refers to the file name "filename.txt" in a subdirectory "sub"
			--     of the current directory on drive "C:".
			-- 3 - "C:\sub\filename.txt" refers to the file name "filename.txt" in a subdirectory "sub"
			--     located at the root of the drive "C:".
			-- 
			-- Both forward and backslashes are accepted, but forward slashes are internally converted
			-- to backward slashes whenever they are used to construct a path.
			-- 
			-- On Windows, there is a limit of 259 characters for a path. If you need to create a larger
			-- path, you can do so by using the following conventions which will let you have paths of
			-- about 32,767 characters:
			-- 1 - Use \\?\ for non-UNC path and let the rest unchanged.
			-- 2 - Use \\?\UNC\server\share for UNC path and let the rest unchanged.
			-- The above path cannot be used to specify a relative path.
			-- 
			-- To know more about Windows paths, read the "Naming Files, Paths, and Namespaces"
			-- document located at:
			--   http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx
			-- 
			-- 
			-- Unicode consideration
			-- =====================
			-- 
			-- The PATH class treats strings as sequence of Unicode characters, i.e. an instance of 
			-- a READABLE_STRING_8 or descendant will be treated as if characters in the range
			-- 128 .. 255 were Unicode code points.
			-- This contrasts to the FILE/DIRECTORY classes where to preserve backward compatibility, those
			-- characters are treated as is.
			-- 
			-- 
			-- Mixed-encoding consideration
			-- ============================
			-- 
			-- Most operating systems have conventions for paths that are incompatible with Unicode.
			-- On UNIX, in a sequence of names, each name is just a null-terminated byte sequence, it
			-- does not follow any specific encoding. Usually the locale setting enables you to see
			-- the filename the way you expect.
			-- On Windows, the sequence of names is made of null-terminated UTF-16 code unit sequence. Windows
			-- does not guarantee that the sequence is actually a valid UTF-16 sequence.
			-- 
			-- In other words, when there is an invalid UTF-8 encoding on UNIX, or an invalid UTF-16 encoding
			-- on Windows, the filename is not directly representable as a Unicode string. To make it possible
			-- to create and store paths in a textually representable form, the query name will create
			-- an encoded representation that can be then later used in make_from_string to create a PATH
			-- equivalent to the original path. The encoding is described in UTF_CONVERTER's note clause
			-- and is a fourth variant of the recommended practice for replacement characters in Unicode
			-- (see http://www.unicode.org/review/pr-121.html).
			-- 
			-- 
			-- Immutability
			-- ============
			-- 
			-- Instances of the current class are immutable.

	PERFFRAME_T
			-- perfframe_t from i_timer.c
			-- from chocolate-doom/rum-and-raisin-doom

	PIXEL_T_BUFFER
			-- Buffer of pixel_t pixels

	PLAIN_TEXT_FILE
			-- Files viewed as persistent sequences of ASCII characters

	PLATFORM
			-- Platform-dependent properties.

	PLATTYPE_E
			-- plattype_e from p_spec.h

	PLAYER_T
			-- d_player.h

	PNAMES
			-- Struct for PNAMES lump
			-- 
			-- From https://zdoom.org/wiki/PNAMES
			-- Bytes 0-3 is uint32 (number of entries)
			-- x+0 - x+8 is char[8] (patch name)

	POINTER
			-- References to objects meant to be exchanged with non-Eiffel software.

	POINTER_REF
			-- References to objects containing reference to object
			-- meant to be exchanged with non-Eiffel software.

	POINT_T
			-- point_t from wi_stuff.c

	POSTCONDITION_VIOLATION
			-- Exception representing a postcondition violation

	POST_T
			-- r_defs.h

	POWERTYPE_T
			-- powertype_t from doomdef.h

	PRECONDITION_VIOLATION
			-- Exception representing an precondition violation.

	PREDICATE [OPEN_ARGS -> detachable TUPLE create default_create end]
			-- Objects representing delayed calls to a boolean function,
			-- with some arguments possibly still open.

	PRIMES
			-- Prime number properties

	PROCEDURE [OPEN_ARGS -> detachable TUPLE create default_create end]
			-- Objects representing delayed calls to a procedure.
			-- with some operands possibly still open.
			-- 
			-- Note: Features are the same as those of ROUTINE,
			-- with apply made effective, and no further
			-- redefinition of is_equal and copy.

	PSPDEF_T
			-- pspdef_t from p_spr.h

	P_CEILNG
			-- p_ceilng.c
			-- 
			-- Ceiling aninmation (lowering, crushing, raising)

	P_DOORS
			-- p_doors.c
			-- 
			-- Door animation code (opening/closing)

	P_ENEMY
			-- p_enemy.c
			-- Enemy thinking, AI.
			-- Action Pointer Functions
			-- that are associated with states/frames

	P_FLOOR
			-- p_floor.c
			-- 
			-- Floor animation: raising stairs.

	P_INTER
			-- p_inter.c
			-- 
			-- Handling interactions (i.e., collisions)

	P_LIGHTS
			-- p_lights.c
			-- 
			-- Handle Sector base lighting effects.
			-- Muzzle flash?

	P_LOCAL
			-- p_local.h
			-- Play functions, animation, global header.

	P_MAP
			-- p_map.c
			-- 
			-- Movement, collision handling.
			-- Shooting and aiming

	P_MAPUTL
			-- p_maputl.c
			-- 
			-- Movement/collision utility functions,
			-- as used by function in p_map.c.
			-- BLOCKMAP Iterator functions,
			-- and some PIT_* functions to use for iteration

	P_MOBJ
			-- p_mobj.c
			-- Moving object handling. Spawn functions.

	P_PLATS
			-- p_plats.c
			-- 
			-- Plats (i.e. elevator platforms) code, raising/lowering

	P_PSPR
			-- p_pspr.c
			-- Weapon sprite animation, weapon objects.
			-- Action functions for weapons.

	P_SETUP
			-- p_setup.c
			-- Do all the WAD I/O, get map description,
			-- set up initial state and misc. LUTs.

	P_SIGHT
			-- p_sight.c
			-- 
			-- LineOfSight/Visibility checks, uses REJECT Lookup Table.

	P_SPEC
			-- p_spec.c
			-- Implements special effects:
			-- Texture animation, height or lighting changes
			--  according to adjacent sectors, respective
			--  utility functions, etc.
			-- Line Tag handling. Line and Sector triggers.

	P_SWITCH
			-- p_switch.c
			-- Switches, buttons. Two-state animation. Exits.

	P_TICK
			-- p_tick.c
			-- Archiving: SaveGame I/O.
			-- Thinker, Ticker.

	P_USER
			-- p_user.c
			-- 
			-- Player related stuff.
			-- Bobbing POV/weapon, movement.
			-- Pending weapon.

	QUEUE* [G]
			-- Queues (first-in, first-out dispensers), without commitment 
			-- to a particular representation

	RAW_FILE
			-- Files, viewed as persistent sequences of bytes

	READABLE_INDEXABLE* [G]
			-- Tables whose keys are integers in a contiguous interval

	READABLE_INDEXABLE_ITERATION_CURSOR [G]
			-- Concrete version of an external iteration cursor for READABLE_INDEXABLE.

	READABLE_STRING_32*
			-- Sequences of 32-bit characters, accessible through integer indices
			-- in a contiguous range. Read-only interface.

	READABLE_STRING_8*
			-- Sequences of 8-bit characters, accessible through integer indices
			-- in a contiguous range. Read-only interface.

	READABLE_STRING_GENERAL*
			-- Common ancestors to all STRING classes. Read-only interface.

	REAL_32
			-- Real values, single precision.

	REAL_32_REF
			-- References to objects containing a real value

	REAL_64
			-- Real values, double precision.

	REAL_64_REF
			-- References to objects containing a double-precision real number

	REFACTORING_HELPER
			-- Collection of features that are used to mark
			-- places in code that needs refactoring.

	REFLECTED_COPY_SEMANTICS_OBJECT
			-- Accessor to an object with copy semantics. Useful to manipulate fields of an object, or
			-- an expanded field of an object without causing any copying.

	REFLECTED_OBJECT*
			-- Common ancestor for object inspection.

	REFLECTED_REFERENCE_OBJECT
			-- Accessor to an object. Useful to manipulate fields of an object, or
			-- an expanded field of an object without causing any copying.
			-- If applied to an expanded type, a copy will be manipulated.

	REFLECTOR
			-- Access to internal object properties.
			-- This class may be used as ancestor by classes needing its facilities.

	REFLECTOR_CONSTANTS
			-- Constants to represent abstract types in {REFFLECTOR} and {OBJECT_PROXY}.

	REFLECTOR_HELPER
			-- Helper for routines in INTERNAL class.

	REF_ARRAY_CREATOR [G -> ANY create default_create end]
			-- Utils to make ref arrays

	RESCUE_FAILURE
			-- Exception raised in rescue clause

	RESIZABLE* [G]
			-- Finite structures whose item count is subject to change

	RESULT_E
			-- result_e from p_spec.h

	RESUMPTION_FAILURE
			-- Exception raised when retry did not succeed

	ROUTINE* [OPEN_ARGS -> detachable TUPLE create default_create end]
			-- Objects representing delayed calls to a routine,
			-- with some operands possibly still open

	ROUTINE_FAILURE
			-- Exception representing a routine failure.

	R_BSP
			-- r_bsp.c
			-- BSP traversal, handling of LineSegs for rendering

	R_DATA
			-- r_data.c
			-- Preparation for data rendering,
			-- generation of lookups, caching, retrieval by name.

	R_DEFS
			-- r_defs.h
			-- 
			-- Refresh/rendering module, shared data struct definitions.

	R_DRAW
			-- r_draw.c
			-- The actual span/column drawing functios.
			-- Here find the main potential for optimization
			--  e.g. inline assembly, different algorithms.

	R_MAIN
			-- r_main.c
			-- Rendering main loop and setup functions,
			--  utility functions (BSP, geometry, trigonometry).
			-- See tables.c, too

	R_PLANE
			-- r_plane.c
			-- Here is a core component: drawing the floors and ceilings
			--  while maintaining a per column clipping list only.
			-- Moreover, the sky areas have to be determined.

	R_SEGS
			-- r_segs.c
			-- All the clipping: columns, horizontal spans, sky columns.

	R_SKY
			-- r_sky.c
			-- Sky renderng. The DOOM sky is a texture map like any
			-- wall, wrapping around. A 1024 columns equal 360 degrees.
			-- The default sky map is 256 columns and repeats 4 times
			-- on a 320 screen?

	R_THINGS
			-- r_things.c
			-- Refresh of things, i.e. objects represented by sprites.

	SDL_AUDIO
			-- Summary description for SDL_AUDIO.

	SDL_AUDIO_CVT

	SDL_AUDIO_CVT_STRUCT_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_AUDIO_FUNCTIONS_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_AUDIO_SPEC_STRUCT_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_BLIT_MAP_STRUCT_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_COLOR_STRUCT_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_CONSTANT_API
			-- This file has been generated by EWG. Do not edit. Changes will be lost!

	SDL_ERROR
			-- Summary description for SDL_ERROR.

	SDL_ERROR_FUNCTIONS_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_EVENTS
			-- Summary description for {SQL_EVENTS}.

	SDL_EVENTS_FUNCTIONS_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_EVENT_UNION_API
			-- This file has been generated by EWG. Do not edit. Changes will be lost!

	SDL_FUNCTIONS_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_HINTS
			-- Summary description for SDL_HINTS.

	SDL_HINTS_FUNCTIONS_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_KEYBOARD_EVENT_STRUCT_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_KEYMOD_ENUM_API

	SDL_KEYSYM_STRUCT_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_MIXER_FUNCTIONS_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_MOUSE_BUTTON_EVENT_STRUCT_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_MOUSE_FUNCTIONS_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_MOUSE_WHEEL_EVENT_STRUCT_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_PALETTE_STRUCT_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_PIXELS_FUNCTIONS_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_PIXEL_FORMAT_STRUCT_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_POINT_STRUCT_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_RECT_STRUCT_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_RENDER
			-- Summary description for SDL_RENDER.

	SDL_RENDERER_FLAGS_ENUM_API

	SDL_RENDERER_INFO_STRUCT_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_RENDERER_STRUCT_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_RENDER_FUNCTIONS_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_RWOPS_STRUCT_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_SCANCODE_ENUM_API

	SDL_SURFACE
			-- Summary description for SDL_SURFACE.

	SDL_SURFACE_FUNCTIONS_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_SURFACE_STRUCT_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_TEXTURE_ACCESS_ENUM_API

	SDL_TEXTURE_STRUCT_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_TIMER
			-- Summary description for SDL_TIMER.

	SDL_TIMER_FUNCTIONS_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_VIDEO
			-- Summary description for SDL_VIDEO.

	SDL_VIDEO_FUNCTIONS_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_WINDOW_EVENT_ID_ENUM_API

	SDL_WINDOW_EVENT_STRUCT_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SDL_WINDOW_FLAGS_ENUM_API

	SDL_WINDOW_STRUCT_API
			-- This file has been generated by WrapC. Do not edit. Changes will be lost!

	SECTOR_T
			-- sector_t from r_defs.h
			-- 
			-- The SECTORS record, at runtime.
			-- Stores things/mobjs

	SED_ABSTRACT_OBJECTS_TABLE*
			-- Abstract equivalent of HASH_TABLE [NATURAL_32, ANY], since this type cannot be written
			-- as ANY does not inherit from HASHABLE

	SED_BASIC_DESERIALIZER
			-- Decoding of arbitrary objects graphs between sessions of a same program.

	SED_BASIC_SERIALIZER
			-- Encoding of arbitrary objects graphs between sessions of a same program.

	SED_BINARY_READER_WRITER*
			-- Ancestor to serialize/deserialize data using a buffer in binary format.

	SED_ERROR
			-- Simple representation of a SED error

	SED_ERROR_FACTORY
			-- Objects that provide instances of SED_ERROR.

	SED_MEDIUM_READER_WRITER
			-- Serialize/Deserialize data from a medium.

	SED_OBJECTS_TABLE
			-- Equivalent of HASH_TABLE [NATURAL_32, ANY], since this type cannot be written
			-- as ANY does not inherit from HASHABLE

	SED_READER_WRITER*
			-- Ancestor for reading/writing basic known entities from and to a particular location specified in concrete descendants of current.

	SED_RECOVERABLE_DESERIALIZER
			-- Decoding of arbitrary objects graphs between sessions of programs
			-- containing the same types or potentially different types (which can
			-- be mapped to the new type system via a correction mechanism,). It
			-- also basically takes care of potential reordering of attributes
			-- from one system to the other.

	SED_RECOVERABLE_SERIALIZER
			-- Encoding of arbitrary objects graphs between different version of
			-- programs containing types that might have changed and for which the
			-- retrieving system may know how to fix the mismatches.

	SED_SESSION_DESERIALIZER
			-- Decoding of arbitrary objects graphs within a session of a same program.

	SED_SESSION_SERIALIZER
			-- Encoding of arbitrary objects graphs within a session of a same program.
			-- 
			-- Some routines are explicitely frozen, not because we do not want them to be redefined
			-- but if they are frozen, it saves us having to look at all possible descendants whenever
			-- we do a change.

	SED_STORABLE_FACILITIES
			-- Serialize and deserialize objects to and from SED_READER_WRITER instances.

	SED_TYPE_MISMATCH
			-- Store all information about a mismatch in a type.

	SED_UTILITIES
			-- Utilities for serializing/deserializing objects

	SED_VERSIONS
			-- Summary description for {SED_STORABLE_VERSIONS}.

	SEG_T
			-- seg_t from r_defs.h
			-- 
			-- The LineSeg.

	SEQUENCE* [G]
			-- Finite sequences: structures where existing items are arranged
			-- and accessed sequentially, and new ones can be added at the end.

	SERIALIZATION_FAILURE
			-- Exception for retrieval error, 
			-- may be raised by retrieved in IO_MEDIUM.

	SET* [G]
			-- Collection, where each element must be unique.

	SFXENUM_T
			-- sfxenum_t from sounds.h

	SFXINFO_T
			-- sounds.h

	SIDE_T
			-- side_t from r_defs.h
			-- 
			-- The SideDef.

	SOUNDS_H
			-- sounds.h

	SOUND_MODULE_T*
			-- chocolate doom i_sound.h

	SOUND_PCSOUND_MODULE
			-- chocolate doom i_pcsound.c
			-- System interface for PC speaker sound.

	SOUND_SDL_MODULE
			-- chocolate doom i_sdlsound.c

	SPECIAL [T]
			-- Special objects: homogeneous sequences of values,
			-- used to represent arrays and strings

	SPECIAL_ITERATION_CURSOR [G]
			-- External forward one-step iteration cursor for SPECIAL.

	SPRITEDEF_T
			-- spritedef_t from r_defs.h
			-- 
			-- A sprite definition:
			-- a number of animation frames

	SPRITEFRAME_T
			-- spriteframe_t from r_defs.h
			-- 
			-- Sprites are patches with a special naming convention
			-- so they can be recognized by R_InitSprites.
			-- 
			-- The base name is NNNNFx or NNNNFxFx, with
			-- x indicating the rotation, x = 0, 1-7.
			-- The sprite and frame specified by a thing_t
			-- is range checked at run time.
			-- A sprite is a patch_t that is assumed to represent
			-- a three dimensional object and may have multiple
			-- rotations pre drawn.
			-- Horizontal flipping is used to save space,
			-- thus NNNNF2F5 defines a mirrored patch.
			-- Some sprites will only have one picture used
			-- for all views: NNNNF0

	SPRITENUM_T
			-- spritenum_t from info.h

	STACK* [G]
			-- Stacks (last-in, first-out dispensers), without commitment
			-- to a particular representation

	STAIR_E
			-- stair_e from p_spec.h

	STATENUM_T
			-- statenum_t from info.h

	STATE_T
			-- state_t from info.h

	STD_FILES
			-- Commonly used input and output mechanisms.
			-- This class may be used as either ancestor or supplier
			-- by classes needing its facilities.

	STRING_32
			-- Sequences of 32-bit characters, accessible through integer indices
			-- in a contiguous range.

	STRING_32_ITERATION_CURSOR
			-- External forward one-step iteration cursor for STRING_32.

	STRING_32_SEARCHER
			-- Helper to perform efficient search of a string in another one.
			-- Note: The algorithm used is the one described in Communications of the ACM,
			-- volume 33, number 8, August 1990, by Daniel M. Sunday. The fuzzy
			-- version was presented by Peter R. Sibbald in Communications of the
			-- ACM, volume 35, number 4, April 1992 (Technical Correspondance).

	STRING_8
			-- Sequences of 8-bit characters, accessible through integer indices
			-- in a contiguous range.

	STRING_8_ITERATION_CURSOR
			-- External forward one-step iteration cursor for STRING_8.

	STRING_8_SEARCHER
			-- Helper to perform efficient search of a string in another one.
			-- Note: The algorithm used is the one described in Communications of the ACM,
			-- volume 33, number 8, August 1990, by Daniel M. Sunday. The fuzzy
			-- version was presented by Peter R. Sibbald in Communications of the
			-- ACM, volume 35, number 4, April 1992 (Technical Correspondance).

	STRING_GENERAL*
			-- Common ancestors to all STRING classes.

	STRING_HANDLER
			-- Objects that can access set_count from STRING

	STRING_ITERATION_CURSOR
			-- External iteration cursor on READABLE_STRING_GENERAL based on CHARACTER_32 item.

	STRING_SEARCHER*
			-- Helper to perform efficient search of a string in another one.
			-- Note: The algorithm used is the one described in Communications of the ACM,
			-- volume 33, number 8, August 1990, by Daniel M. Sunday. The fuzzy
			-- version was presented by Peter R. Sibbald in Communications of the
			-- ACM, volume 35, number 4, April 1992 (Technical Correspondance).

	STRING_TABLE [G]
			-- Hash tables, used to store items identified by string keys that are compared with or without case sensitivity.

	STRING_TO_INTEGER_CONVERTOR
			-- Convertor to do string to integer/natural conversion

	STRING_TO_NUMERIC_CONVERTOR*
			-- Abstract convertor for string to number conversion

	STRING_TO_REAL_CONVERTOR
			-- String to real/double convertor

	ST_BIN_ICON
			-- st_binicon_t with it's functions from st_lib.c

	ST_LIB
			-- st_lib.c
			-- The status bar widget code.

	ST_MULT_ICON
			-- st_multicon_t with it's functions from st_lib.c

	ST_NUMBER
			-- st_number_t with it's functions from st_lib.c

	ST_PERCENT
			-- st_percent_t with it's functions from st_lib.c

	ST_STUFF
			-- st_stuff.c
			-- Status bar code.
			-- Does the face/direction indicator animation.
			-- Does palette indicators as well (red pain/berserk, bright pickup)

	SUBSECTOR_T
			-- subsector_t from r_defs.h
			-- 
			-- A SubSector.
			-- References a Sector.
			-- Basically, this is a list of LineSegs,
			-- indicating the visible walls that define
			-- (all or some) sides of a convex BSP leaf.

	SYSTEM_STRING
			-- Fake abstraction of a .NET SYSTEM_STRING in a non-.NET system

	SYSTEM_STRING_FACTORY
			-- Factory for creating SYSTEM_STRING instances.

	SYS_EXCEPTION*
			-- Deferred class of all systematic exceptions

	S_SOUND
			-- s_sound.c
			-- none

	TABLE* [G, H]
			-- Containers whose items are accessible through keys

	TABLES
			-- tables.c
			-- Lookup tables.
			-- Do not try to look them up :-)

	TABLE_ITERABLE* [G, K]
			-- Structure that can be iterated over using across...loop...end.
			-- using key and item.

	TABLE_ITERATION_CURSOR* [G, K]
			-- External iteration cursor used by across...loop...end 
			-- using key and item.

	TEST_ANGLE_T
			-- Eiffel tests that can be executed by testing tool.

	TEST_CLIPRANGE_T
			-- Summary description for TEST_CLIPRANGE_T.

	TEST_FIXED_T
			-- Eiffel tests that can be executed by testing tool.

	TEST_NUMBER_CONVERSIONS
			-- Summary description for TEST_NUMBER_CONVERSIONS.

	TEST_W_WAD
			-- Eiffel tests that can be executed by testing tool.

	TEXPATCH_T
			-- texpatch_t from r_data.c
			-- 
			-- A single patch from a texture definition,
			-- basically a rectangular area within
			-- the texture rectangle.

	TEXTUREX
			-- Struct for TEXTURE1 and TEXTURE2 lumps.
			-- 
			-- Definition: https://doomwiki.org/wiki/TEXTURE1_and_TEXTURE2

	TEXTURE_T
			-- texture_t from r_data.c
			-- 
			-- A maptexturedef_t describes a rectangular texture,
			-- which is composed of one or more mappatch_t structures
			-- that arrange graphic patches.

	THINKER_T
			-- thinker_t from d_think.h

	TICCMD_T
			-- d_ticcmd.h
			-- System specific interface stuff.
			-- 
			-- The data sampled per tick (single player)
			-- and transmitted to other players (multiplayer).
			-- Mainly movements/button commands per game tick,
			-- plus a checksum for internal state consistency.

	TO_SPECIAL [T]
			-- References to special objects, for direct access to arrays and strings

	TRAVERSABLE* [G]
			-- Structures for which there exists a traversal policy
			-- that will visit every element exactly once.

	TUPLE
			-- Implementation of TUPLE

	TYPE [G]
			-- Representation of an Eiffel type.

	TYPED_INDEXABLE_ITERATION_CURSOR* [G, H -> READABLE_INDEXABLE [G]]
			-- External iteration cursor for READABLE_INDEXABLE.

	TYPED_POINTER [G]
			-- References to objects containing reference to object
			-- meant to be exchanged with non-Eiffel software.

	UNBOUNDED* [G]
			-- Finite structures whose item count is not bounded

	UNIX_FILE_INFO
			-- Obsolete internal file information, use FILE_INFO directly.

	UTF_CONVERTER
			-- Converter from/to UTF-8, UTF-16 and UTF-32 encodings.
			-- 
			-- Handling of invalid encodings
			-- =============================
			-- 
			-- Whenever a UTF-8 or UTF-16 sequence is decoded, the decoding routines also check
			-- that the sequence is valid. If it is not, it will replace the invalid unit (e.g. a byte
			-- for UTF-8 and a 2-byte for UTF-16 by the replacement character U+FFFD as described by
			-- variant #3 of the recommended practice for replacement character in Unicode (see
			-- http://www.unicode.org/review/pr-121.html for more details).
			-- 
			-- However it means that you cannot roundtrip incorrectly encoded sequence back and forth
			-- between the encoded version and the decoded STRING_32 version. To allow roundtrip, an
			-- escaped representation of a bad encoded sequence has been introduced. It is adding a
			-- a fourth variant (which is a slight modification of variant #3) to the recommended
			-- practice where the replacement character is followed by the printed hexadecimal value
			-- of the invalid byte or the invalid 2-byte sequence.
			-- 
			-- To provide an example (assuming that the Unicode character U+FFFD is represented as
			-- ? textually):
			-- 1 - on UNIX, any invalid UTF-8 byte sequence such as 0x8F 0x8F is encoded as the
			-- following Unicode sequence: U+FFFD U+0038 U+0046 U+FFFF U+0038 U+0046, and textually
			-- it looks like "?8F?8F".
			-- 2 - on Windows, any invalid UTF-16 2-byte sequence such as 0xD800 0x0054 is encoded as the
			-- following Unicode sequence: U+FFFD U+0075 U+0044 U+0038 U+0030 U+0030 U+FFFD U+0035 U+0033,
			-- and textually it looks like "?uD800?54". The rule is that if the 2-byte sequence does not fit
			-- into 1 byte, it uses the letter u followed by the hexadecimal value of the 2-byte sequence,
			-- otherwise it simply uses the 1-byte hexadecimal representation.

	UTILS [G]
			-- Just utils

	VARIANT_VIOLATION
			-- Loop variant violation

	VERSIONABLE*
			-- Lightweight tracker of modifications made to instances of this class.
			-- Any modification causes version to get a new value that can be used
			-- by the clients to see if there were any changes since last access.

	VERTEX_T
			-- vertex_t from r_defs.h
			-- 
			-- Your plain vanilla vertex.
			-- Note: transformed values not buffered locally,
			-- like some DOOM-alikes ("wt", "WebView") did.

	VISPLANE_T
			-- visplane_t from r_defs.h

	VISSPRITE_T
			-- vissprite_t from r_defs.h
			-- 
			-- A vissprite_t is a thing
			-- that will be drawn during a refresh.
			-- I.e. a sprite object that is partly visible.

	VLDOOR_E
			-- vldoor_e from p_spec.h

	VLDOOR_T
			-- vldoor_t from p_spec.h

	VOID_ASSIGNED_TO_EXPANDED
			-- Exception for assignment of void value to expanded entity

	VOID_TARGET
			-- Exception for feature applied to void reference

	V_VIDEO
			-- v_video.c
			-- Gamma correction LUT stuff.
			-- Functions to draw patches (by post) directly to screen.
			-- Functions to blit a block to the screen

	WADINFO_T
			-- w_wad.h

	WAD_READER
			-- Utility class to read WAD contents

	WBPLAYERSTRUCT_T
			-- wbplayerstruct_t from d_player.h

	WBSTARTSTRUCT_T
			-- wbstartstruct_t from d_player.h

	WEAPONINFO_T
			-- weaponinfo_t from d_items.h

	WEAPONTYPE_T
			-- weapontype_t enum from doomdef.h

	WITH_THINKER*
			-- Interface for classes having thinker

	WI_STUFF
			-- wi_stuff.c
			-- Intermission screens.

	W_WAD
			-- w_wad.c
			-- Handles WAD file header, directory, lump I/O.


Generated by ISE EiffelStudio