The meta syntax uses the following conventions: `|' (bar) separates alternatives; `{' and `}' enclose optinal phrases; `{' and `}*' enclose phrases that may be repeated zero or more times; `{' and '}+' enclose phrases that must appear at least once and may be repeated; `<' and `>' enclose nonterminals.
<rcstext> ~~::=~~<admin> {<delta>}* <desc> {<deltatext>}* <admin> ~~::=~~head ~~{<num>}; ~~ ~~access ~~{<id>}*; ~~ ~~symbols ~~{<id> : <num>}*; ~~ ~~locks ~~{<id> : <num>}*; ~~ ~~comment ~~{<string>}; <delta> ~~::=~~<num> ~~ ~~date ~~<num>; ~~ ~~author ~~<id>; ~~ ~~state ~~{<id>}; ~~ ~~branches ~~{<num>}*; ~~ ~~next ~~{<num>}; <desc> ~~::=~~desc ~~<string> <deltatext>~~::=~~<num> ~~ ~~log ~~<string> ~~ ~~text ~~<string> <num> ~~::=~~{<digit>{.}}+ <digit> ~~::=~~0 | 1 | ... | 9 <id> ~~::=~~<letter>{<idchar>}* <letter> ~~::=~~A | B | ... | Z | a | b | ... | z <idchar> ~~::=~~Any printing ASCII character except space, ~~ ~~tab, carriage return, new line, and <special>. <special> ~~::=~~; | : | , | @ <string> ~~::=~~@{any ASCII character, with `@' doubled}*@
Identifiers are case sensitive. Keywords are in lower case only. The sets of keywords and identifiers may overlap.
The <delta> nodes form a tree. All nodes whose numbers consist of a single pair (e.g., 2.3, 2.1, 1.3, etc.) are on the "trunk", and are linked through the "next" field in order of decreasing numbers. The "head" field in the <admin> node points to the head of that sequence (i.e., contains the highest pair).
All <delta> nodes whose numbers consist of 2n fields (n>2) (e.g., 3.1.1.1, 2.1.2.2, etc.) are linked as follows. All nodes whose first (2n)-1 number fields are identical are linked through the "next" field in order of increasing numbers. For each such sequence, the <delta> node whose number is identical to the first 2(n-1) number fields of the deltas on that sequence is called the branchpoint. The "branches" field of a node contains a list of the numbers of the first nodes of all sequences for which it is a branchpoint. This list is ordered in increasing numbers.
Example:
Head | | v --------- / \ / \ | | / \ / \ / \ / \ | 2.1 | / \ / \ / \ / \ | | / \ / \ /1.2.1.3\ /1.3.1.1\ | | /1.2.2.2\ /1.2.2.1.1.1\ --------- --------- --------- --------- ------------- ^ ^ | ^ ^ | | | | | | | v | | / \ | --------- / \ | / \ | \ 1.3 / / \ | / \ ---------\ / / \----------- /1.2.1.1\ \ / /1.2.2.1\ --------- \ / --------- ^ | ^ | | | | v | | --------- | | \ 1.2 / | ----------------------\ /--------- \ / \ / | | v --------- \ 1.1 / \ / \ / \ /Fig. 1: A revision tree
Revision Number: 3.0 ; Release Date: 82/11/18 .
Copyright © 1982 by Walter F. Tichy.