Armbob Syntax follows that of C, with some extensions and some omissions.
Every statement returns a value, including assignment statements.
This is one of the features of C that gives it its particular flavour.
Comments
--------
Armbob has two kinds of comment: single- and multi-line. They have
the same syntax as comments in C++.
Single-line comments are introduced by // and are terminated by the
end of the line or file.
Multi-line comments start with /* and end with the next */. They are
not nestable.
Names
-----
Blank spaces, tab characters and newlines are ignored in Armbob, except in so far as they mark the end of a name. Names must begin
with a letter of the alphabet, and subsequently must consist of letters of the alphabet ('A'-'Z', 'a'-'z'), digits ('0'-'9'), or the underscore character '_'. ArmBob also permits '@', '$', '£' and '`' in names.
It may be useful, but it is not mandatory, to use these extra characters
as prefixes or suffixes on names, to indicate the type of object they
denote, in the following way
@ for addresses of buffers in memory,
$ for strings,
£ for integers or 4-byte words,
` for bytes or characters.
This mnemonic convention fits the names for the storage functions
needed for low-level access. Thus, if s is a string, @(s) denotes
the integer address at which the contents of s are held. If a is
an address, $(a) denotes the string at a, terminated by a control
character, £(a) denotes the word stored at a, and `(a) denotes the
byte stored at a.
Names may be up to 50 characters long. Program lines may be up to
200 characters long.
Grammar
-------
The grammar is very similar to that of C.
Syntactic classes (non-terminal symbols) are written in angle
brackets. Square brackets denote optional items, while '[' and
']' denote actual square brackets (terminal symbols). A solidus