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