Go to the first, previous, next, last section, table of contents.


Data structures and Inheritance tree.

rules.h Interface definition to the data structures used in the rule based model system.

Inheritance tree... (See /pgm/h/00readme.txt for full tree of the library
classes.)

BaseObject
  |
  |--Operation (Private class of CodeStream)
  |
  |--CodeStream
  |
  |--VecInt
  |    |
  |    |--IdentHooks<T>
  |
  |--ShiftableDouble
  |
  |--Identifier
       |
       |--IdentCell <--VecInt
       |
       |--IdentDataStream <--InterpFunction
       |
       |--IdentDouble
       |
       |--IdentSpecieCell <--ShiftableDouble
       |
       |--IdentBaseSpecie
       |    |
       |    |--IdentEcowideSpecie <--ShiftableDouble
       |    |
       |    |--IdentSpecie 
       |   
       |
       |--IdentCellBasedDataStream
       |
       |--IdentLocal

  Descriptions of individual classes...

  Identifier : BaseObject
    Abstract class handling any identifier found by the lexical scanner.
    Also counts references.
    (Like a very dumb student, it knows its names and not much else...)
    Abstract object whose value can be got and set.
    pure virtual method double get() const must be overridden.

  IdentCell : Identifier, VecInt
    For lake cells. Holds list of links.
    Also knows its own number on the cell list.
   (int indexes into cellList)

  IdentDouble : Identifier
    Stores local variables and predefines.
    Implements +=, -=, *=, /=, get() and set()

  IdentDataStream : Identifier, InterpFunction
    Contains an input data stream.

  IdentCellBasedDataStream : Identifier
    Implements an input variable that is present for every cell.
    Basically provides a mapping from the variable name and cell number to
    actual input data stream.

  IdentBaseSpecie :  Identifier
    An abstract class for represent both flavours of species.
    Stores the starting and running rules code streams.
    
  IdentSpecie : IdentBaseSpecie
    Implements cell based flavour of specie. Stores current and previous
    values for all cells.

  IdentLocal : Identifier
    Stores local variables for cell based species.

  ShiftableDouble : BaseObject
    Stores current value and old value, can shift them. The set() method
    implements the range limiting feature.
    
  IdentEcowideSpecie : IdentBaseSpecie, ShiftableDouble
    Implements ecowide flavour of specie. 

  CodeStream : BaseObject
    Implements a stream of low level operations.

  Operation : BaseObject
    Implements a low level operation. Input ecosystem rules are translated
    into these elementary operations. Private class of CodeStream

  IdentHooks<T> : VecInt
    All identifiers are stuffed into the identList, a VecObjectPointer of
    Identifiers. This is to provide one central source for all identifier
    names. However identifiers refer to several semantically different
    objects. Ie. Cells, input data streams, species. To keep track of
    these different semantic groups, separate lists of each semantic group
    is maintained. These lists are merely indexes into the main idList.
    The IdentHooks template provides a type safe way of accessing
    the actual object from the list via the idList.

Main program for rule based model.

For full description see info file rule.inf FLEX based Lexical scanner for rule based model.


Go to the first, previous, next, last section, table of contents.