Index

Datatype Classes.

Many of the CBI datatypes are derived from the following general datatype classes. All datatypes of a given class understand the same syntax and expressions, but they differ in the range of values that they allow.
File and directory path names.

Files and directories are specified using absolute path names. These are entered as strings, optionally enclosed in quotes. Path names start with one of the following prefixes: Note that the relevant file access permissions are those of the owner of the control program.

Set datatypes.

Set datatypes allow the user to simultaneously select one or more set members. With one exception, the member names are different for each datatype. The exception is the all keyword, which denotes the set of all the other members.

Set Expressions:
The following operators are supported:
  • a + b           This adds set b to set a.
    
  • a - b           This removes b from set a.
    
Examples:
The first example shows a set composed of receivers rx1, rx2 and rx10. It demonstrates the use of the '+' operator to include values in a set.
 print $Receivers(rx2+rx10+rx1)
 -> rx2+rx10
The second example shows a set composed of all receivers except rx3, rx4 and rx6. It demonstrates the use of the all option, and the use of the '-' operator to remove members from a set.
 print $Receivers(all-rx3-rx4-rx6)
 -> rx0+rx1+rx2+rx5+rx7+rx8+rx9+rx10+rx11+rx12
The final example shows that set expressions can contain variables and parentheses.
 Receivers foo = rx6+rx7+rx8
 Receivers bar = rx3+rx6
 print $Receivers($foo - ($bar + rx7))
 -> rx8

Option datatypes.

Option datatypes allow the user to specify one of a set of mutually exclusive options. Each option datatype supports a different set of options, according to its use. Options are represented and entered as one-word names.

Floating Point Datatypes.

Each floating point datatype has a different range of values that it supports, according to its use. The following are examples of how floating point numbers can be entered:
 14    14.0    1.4e1     1.4e+1   0.000234     2.34e-4  -3.4
Note that for scientific notation 'e' is used as the indicator of an exponent. This is the C convention for entering double precision numbers. The FORTRAN 'D' equivalent isn't supported.

Unsigned Integer Datatypes.

Unsigned integer datatypes don't allow negative values. By default an unsigned integer is interpretted as a decimal number, however the following prefixes can be used to specify other bases: Note that you should be careful not to add a leading zero unless you want your number to be interpretted as octal.

Examples:
 print $Mask(0b1110)   # Binary
 -> 14
 print $Mask(0xff)     # Hexadecimal
 -> 255
 print $Mask(013)      # Octal
 -> 11
 print $mask(13)       # Decimal
 -> 13

Sexagesimal Datatypes.

Sexagesimal datatypes are used for entering angle and time related parameters. For example, the following sexagesimal numbers all represent the number 23.5075.
  23.5075    23:30.45   23:30:27   23:30:27.00
The integral part of the number comes first. Its fractional part can then either be expressed as a decimal fraction after a decimal point, or it can be expressed as a base 60 fraction. In the latter case each base 60 digit of the fraction is introduced with a colon and denoted by a decimal integer between 0 and 59. The optional fractional part of the final component is expressed as a decimal fraction after a decimal point.

Martin Shepherd (9-Oct-1997)