The input data is a collection of file lines. Upto 80 characters in a line is read in. (This limitation can be easily changed by modifying the parameter statement in the main program.)
If a character ``!'' is encountered, the whole text after it to the end of the file line is considered as a comment , unless the ``!'' is in a pair of apostrophes. apostrophe pairs must close within a line except for comment parts. Apart from the above two points, the concept of `file line' is irrelevant. Therefore, for example, continuing the two file lines will give the same results, and the end of a command must explicitly said (by semicolon ``;'') without relying on the end-of-line.
The whole text, after comment part is eliminated, is divided into `command blocks'. The end of a command block is indicated by a semicolon ``;''. If ``;'' is inside a pair of apostrophes, it is not considered to be a command terminator .
Each command block has the following structure:
20mm command_name operand, operand, operand ;
After the command_name before the first operand, there must be at least one blanck character (unless there is no operand). Operands are separated by a comma ``,'' and the number of blancks before and after ``,'' is arbitrary. (In some commands, ``,'' can be replaced by one or more blancks). Unless stated in each command description in the next section, the order of operands is arbitrary.
An operand is either a single keyword or of the form
20mm keyword relational_operator right_hand_side
A keyword is an alphanumerical string predefined for each command. The relational operator is either one of =, '74, '76, '74=, '76=, ='74, ='76, '74, '76. The right_hand_side is just a number or an `expression' (to be explained later) or of the form
20mm ( expression, expression, expression)
The parenthesis ( ) may be replaced by [ ] or '173 '175.