mplisp

miniPicoLisp with FFI and modules for Buddy BDD library, OpenGL, Gtk and GMP
git clone https://logand.com/git/mplisp.git/
Log | Files | Refs

structures (2680B)


      1 
      2       Primary data types:
      3          num      xxxxxx10
      4          sym      xxxxx100
      5          cell     xxxxx000
      6 
      7       Raw data:
      8          bin      xxxxxxxx
      9          txt      xxxxxxx1
     10 
     11 
     12       num
     13 
     14          (30 bit)  -536,870,912  ..  +536,870,911
     15 
     16          (62 bit)  -2,305,843,009,213,693,952  ..  +2,305,843,009,213,693,951
     17                                                     |   |   |   |   |   |
     18                                                     |   |   |   |   |   Kilo
     19                                                     |   |   |   |   Mega
     20                                                     |   |   |   Giga
     21                                                     |   |   Tera
     22                                                     |   Peta
     23                                                     Exa
     24 
     25 
     26       cell
     27       |
     28       V
     29       +-----+-----+
     30       | car | cdr |
     31       +-----+-----+
     32 
     33 
     34 
     35             sym                                          sym
     36             |                                            |
     37             V                                            V
     38       +-----+-----+                                +-----+-----+
     39       |  |  | val |                                | txt | val |
     40       +--+--+-----+                                +-----+-----+
     41          | tail
     42          V
     43          +-----+-----+     +-----+-----+
     44          |  |  |  ---+---> | val | key |
     45          +--+--+-----+     +-----+-----+
     46             |
     47             V
     48             +-----+-----+
     49             |  |  | key |
     50             +--+--+-----+
     51                |
     52                V
     53                +-----+-----+     +-----+-----+
     54                |  |  |  ---+---> | val | key |
     55                +--+--+-----+     +-----+-----+
     56                   | name
     57                   V
     58             +-----+-----+
     59             | bin |  |  |
     60             +-----+--+--+
     61                      |
     62                      V
     63                +-----+-----+
     64                | bin |  |  |
     65                +-----+--+--+
     66                         |
     67                         V
     68                   +-----+-----+
     69                   | bin | num |
     70                   +-----+-----+
     71 
     72 
     73 
     74       NIL:  /
     75             |
     76             V
     77       +-----+-----+-----+-----+
     78       |'NIL'|  /  |  /  |  /  |
     79       +-----+-----+-----+-----+
     80 
     81 
     82       ASCII-6/7 -> 96 characters:
     83           xxxxx0     NUL sp ./<> a-z
     84          xxxxxx1     !"#$%&'()*+,- 0-9 :;=?@ A-Z [\]^_`{|}~
     85 
     86 
     87       Assumptions:
     88 
     89       - 8 bits per byte
     90       - word: sizeof(void*) == sizeof(unsigned long)
     91       - gcc
     92          Functions aligned to 4-byte boundaries
     93          Conditionals with Omitted Operands
     94          Zero- or variable-length arrays
     95          Unused argument attributes
     96          Noreturn attributes