(foo} bar)is((foo) bar)(foo {bar)is(foo (bar))«T»denotes a type template
.creates a key-value pair -they can be used to create alists- single token
}{denotes a tree root. only 1 may appear in a group of(...)- any combination resulting in
{...}without a tree root present in the same(...)is ambiguous and not allowed- to the left of tree root,
{is closed by}but}is closed by( - to the right of tree root,
}is closed by{but{is closed by)
- to the left of tree root,
- any combination resulting in
- single token
)(is the same as) (- except that the
(has the same quotation as whatever)closes
- except that the
- postfix
^is Pascal's deref - prefix
*is C's deref - prefix
&is address of, but has lowest precedance - prefix
$is pass-by-reference
- prefix
`is quote one level - prefix
'is quote recursively - m4 quotes are
‘foo’ - metavariables are
<foo> #includedirectives may be used
¶foois a goto label
[...]is bytewise address arithmatic (without deref)%[...]is bitwise address arithmatic (without deref)foo.baris a record or object memberfoo.;baris an object method -not used for C++
next paragraph is not used for C++
- tables and classes are namespaces
- namespaces are like directories
:foois in the current namespace::foois in the master namespace:foo;baris a namespace tree path
- postfix
foo=nis set result into nth field.- default
foo=is 0th (car)
- default
- prefix
?is logic identity - prefix
!is logic negation - prefix
~is bitwise negation - prefix
@is octal literal - prefix
%is binary literal - prefix
0xis hex literal
definedefines a pointer. implicit is void*defvardefines a variable. implicit is intclassdefines a class typestructdefines a bitpacked structrecorddefines a recorddefundefines a function. implicit is intdefsubdefines a function returning void- templates and blackboxes use metavariables.
bitwise ops are written in lowercase
LOGICAL OPS ARE WRITTEN IN CAPS
icon-style comparisons use 2-letter lowercase abbriviations
TRADITIONAL COMPARISONS USE 2-LETTER CAPS ABBRIVIATIONS
unsigned is assumed unless otherwise specifyed. ± specifys signed bitfields.
(atan2 y x) syntax is used, other syntax may change
C style comments
(define name name name)
(defvar (name name name))
(defvar «T» (name name name))
(defsub (name . args) {...)
(defun (name . args) {...)
(defun «T» (name . args) {...)
(defun «Template» (name . args) {...)
(struct «allocT» name {
(name . bitsize)
(name . bitsize))
(record name {
(name . «T»)
(name . «T»))
(class name {
(defvar...)
(defun...)
(defsub...)
)