                              RabbitScript Syntax
                              ===================
Ideally it shouldn't be necessary to have had any experience with C to
understand this document and when it is complete it won't be, however until
then here are the main differences between RabbitScript and C:

- The *only* data types are "int", "float" and "string", there are no pointers,
  although arrays of the above types are possible.

- strings are unlimited length and not terminated, so that can contain
  combination of 8 bit characters including control characters.

- "float" simply stands for "floating point" and does not specify precision.
  In this case it's the equivalent of "double" in C.

- parameters in a function header are separated by ';' rather than ','. e.g.

    void fred(int wibble; string wobble)

  rather than:

    void fred(int wibble, string wobble)

- however this is not the case for function *calls*:

  fred(42, "boing!") ; /* this is the correct syntax*/

- only /*...*/ comments are supported, //...<newline> is not. Comments *can* be
  nested.

- there are no operators like ++, -- or +=

- '=' is used both for assignments and comparisons:

    int a ;
  
    a=42 ; /* initialisations like in C aren't possible */
  
    if (a=42)
    {
      a=0 ;
    }

- for loops:

    for (n=0; n < 100; n=n+1 ; )
                             ^ this ';' must be present

  meaning things like this:

    for (n=0; n < 100; { n=n+1; b = -n })

  are also possible.

- local functions are possible and can be placed anywhere within the parent
  function.

- global variables must be declared before any functions.
