Go to the first, previous, next, last section, table of contents.
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.