The compiler insists on the following size limitations.  Some of the less
restrictive ones are probably not checked correctly.  Thus violations of
these constraints may result in strange behaviour.

1) Floating point "constants" are limited to 4 digits before, and 4 digits
   following the decimal point.  (This is an unfortunate consequence of
   the fact that they are treated as an application of a `.` operation
   to Short values.  This should be checked correctly.)  The limit is 9
   digits for non-Vax implementations.

2) Strings are limited to slightly less than 1000 characters.  They are
   likely to get compiled very inefficiently if they are longer than 150.

3) Identifiers are limited to about 500 characters.

4) File names are limited to slightly less than 100 characters.

5) The number of separately compiled Russell programs included in any
   one program is limited to 100.

6) Enumerations, products, records, and unions are limited to 32767
   components or fields.

7) The number of array elements for the built-in array type is limited
   to at most 32767, since the index type is taken to be Short.  (Applies
   only to the Vax implementation.)

8) Character string values (produced at runtime) are limited to 32766
   characters.

10) The number of identifiers declared in a single function is limited
    to about 500.
