Overview of HAL Language

e.g. This code creates a Class named "myclass". This Class has 2 properties called NAME and CUSTN respectively. This Class has only 1 method called add_name() which takes 1 parameter called mname. This method returns a logical value of true. The "return logical" defines what callers of this method should expect as a return variable but this could have been eliminated because the default return type is logical. After this Class is created and the method is automatically compiled. An Object called demo would be created of length 36 bytes. The “add_name” function could be called by any other Object by referring to it by “demo.add_name(mvariable)”. Class, Object and variable names are not case sensitive so the capitals on NAME and CUSTN are for readability and "name" and "custn" would be treated the same.

class myclass {
	char NAME(30)
	char CUSTN(6)
add_name(char mname) return logical{ return _TRUE } } demo

The following is a list of the data types.
Type Length in Bytes Example
Misc Atoms:
Logical
1
logical mflag
Bit
1/8
bit bitstring[100,100]
Numeric types: All 6 numeric data types are automatically converted. Any overflow problems are up to the programmer to catch.
Byte
1
byte i
Integer
2
int i
Long
4
long i
Float
4
float i
Double
8
double i
Number
12
number i(10,2) // length 10 with 2 decimal places
Date/Time types:
Date
8
date mdate
Time
4
time mtime
Character types:
Char
fixed size
char mstring(20) // variable length but fixed maximum size
Varchar
4
char mstring // variable length and auto sizing
Blob
4
blob mjpeg // stores data of variable length in binary format
Special Objects:
Class
4
class mclass(name) - # of properties or methods is not limited
Object
4
object mobj(mclass) - size limit is available memory
Index
4
index mindex(mclass, nkeys) - size limit is disk space
Table
4
table mtable(mclass, cluster) - size limit is disk space
List
4

list mlist(myclass) - list can be auto sorted

Tree
4

tree mlist(myclass) - tree uses parent field to create tree

Stack
4
stack mystack(myclass) - list is last in - first out
Queue
4
queue myqueue(myclass) - list is first in - first out
Misc Referenced:
Vector
4
size is memory limited - all of vector/matrix must be in memory
Other classes:
Port
4
encapsulates serial port operations
Socket
4
encapsulates socket operations
Event
4
encapsulates data for spawning and communicating with other events

The above list is the smallest list I thought would still be useful. Any other kind of object can be made with the object data type.
Notes:

HAL Environment Structure