' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Begin BI-component.
' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Hard arrays to store actual data:
'
REDIM SHARED IntegerData(0) AS INTEGER
REDIM SHARED TextData(0) AS STRING
REDIM SHARED DoubleData(0) AS DOUBLE

' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Temp variable(s):
'

DIM ktmpsa AS INTEGER

' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Nodes:
'

' Node structure
TYPE Node
    Identity AS LONG '   Address in identity register
    Species AS STRING '  Data type
    Reference AS LONG '  Pointer to hard array index
    North AS LONG '
    South AS LONG '
    East AS LONG '
    West AS LONG '       Orientation
END TYPE

DIM MaxNodes AS INTEGER
MaxNodes = 10000

' Node identity register
DIM SHARED IdentityRegister(MaxNodes) AS LONG
FOR ktmpsa = 1 TO UBOUND(IdentityRegister)
    IdentityRegister(ktmpsa) = -1
NEXT

' Node storage
DIM SHARED Nodes(MaxNodes) AS Node

' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Soft arrays:
'

' Soft array structure
TYPE SoftArrayStructure
    Label AS STRING
    HeadNode AS LONG
END TYPE

DIM MaxSoftArrays AS INTEGER
MaxSoftArrays = MaxNodes / 2

' Soft array register
DIM SHARED SoftArrayRegister(MaxSoftArrays) AS INTEGER
FOR ktmpsa = 1 TO UBOUND(SoftArrayRegister)
    SoftArrayRegister(ktmpsa) = -1
NEXT

' Soft array storage
DIM SHARED SoftArray(MaxSoftArrays) AS SoftArrayStructure

' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Processing
'
DIM SHARED LambdaMatrix(99, 9) AS LONG
DIM SHARED LambdaIndex AS INTEGER
DIM SHARED LambdaArgCount(9) AS LONG
LambdaIndex = 0

DIM SHARED IdentityStack(MaxNodes, 5) AS LONG
DIM SHARED IdentityStackSize AS INTEGER


' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' End BI-component.
' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
