The language is made up of mainly single-character commands, but also contains a few control structures.
The language was created for CLUVM, a Virtual Machine that uses CLM to store data.
Clml commands are centered around modifying data of elements, as thats all there is to do.
In order to achieve this, data can be moved around between the current element, the active element of the storage layer ("accumulator"), the active element of the pointer layer ("active pointer"), and the cell pointed to by the active pointer ("target element").
|move to next element of the current layer
|move to the previous element of the current layer
|if current element is a layer, enter that layer
|if there is an above layer, exit current layer
|set current path to the value of the accumulator
|increment current cell
|decrement current cell
|add the value of the accumulator layer to the current cell
|insert new cell after current element
|insert new layer after current element
|store the current path in the accumulator
|store the value of the active pointer in the accumulator
|store the value of the current element in the accumulator
|store the value of the target element in the accumulator