mACCESS CLASSES
==============

Apart from the basic function or variable declarations, there are some
extra declarations that can be used. This document describes them. For
information about so-called 'pragma's, especially strict_types, read the
manual "man pragmas".

FUNCTIONS
=========

A function can be any of the variable types or it can be void, which means
that it does not return a value. Apart from that type declaration, the
follow declarations can be used:

private - If a function is declared private it cannot be called by
	  inheriting files, shadows or call_others.

static  - If a function is declared static it cannot be called by shadows
	  or call_others. It can be called from inheriting files.

public  - If a function is declared public it may be called by shadows,
	  inheriting files or call_others. All functions are public by
	  default unless they are declared private or static.

nomask  - If a function is declared nomask it cannot be redifined by an
	  inheriting file or a shadow.

varargs - If a function is declared varargs this means that one or more of
	  the arguments are optional and may be omitted, starting with the
	  last argument. A default value can be assigned for the case that
	  the argument is omitted, following the example below. When all
	  arguments are optional, the declaration varargs may be left out.

	  varargs void
	  multiply(int x, int y = 3)
	  {
	    /* Multiplies x and y, if called like multiply(x) then x
	       will be multiplied by 3.
	     */
	  }

The declarations private, static and public are mutually exclusive. The
declarations nomask and varargs are independant of those.

VARIABLES
=========

Variables can be of the types int, string, object, function, mapping, mixed
and of arrays of those types, int *, string *, object *, function *. In
addition to the type, the following declarations can be used.

private - A private variable can not be manipulated by inheriting files.
	  As far as the inheriting files, it does not exist.

static  - A static variable will not be saved to file by a save_object()
	  function call. Neither will it be restored by a restore_object().

Both declarations can be used independant of eachother or omitted.

SPECIAL CONSIDERATIONS
======================

Value by function call (VBFC) is always considered to be a call_other in
the string-implementation. The function-implementation may access static
and private functions if it is called internally.

An explicit call_other to this_object() is considered to be a true
call_other.

Function parameters to the efuns filter and map are call_other unless the
object parameter to the filter/map function is this_object(), in which
case they are internal calls.

Input_to and alarms are internal calls, so they can access private and
static functions.
