RFC 83 (rfc83) - Page 2 of 13
Language-machine for data reconfiguration
Alternative Format: Original Text Document
RFC 83 Language Machine For Data 18 December 1970
Step 1: R1 is made the current rule.
Step 2: The current rule is applied to the input data.
Step3: a) If the rule fails, the rule of priority one lower is
made current.
b) If the rule succeeds, the rule of highest priority is
made current
c) When the rule of lowest priority fails, the form fails
and application of the form to the input data
terminates.
Step 4: Continue at Step 2.
In addition, during Step 2, if the remainder of the input string is
insufficient to satisfy a rule, then that rule fails and partial
results are not emitted. If a rule fills the output string,
application of the form is terminated.
II. Rules
A rule is a replacement operation of the form:
left-hand-side -> right-hand-side
Both sides of a rule consists of a series of zero or more _terms_
(see below) separated by commas.
The left-hand-side of the rule is applied to the input string at the
current position as a pattern-match operation. If it exactly
describes the input, 1) the current input position pointer is
advanced over the matched input, 2) the right-hand-side emits data at
the current position in the output string, and 3) the current output
position pointer is advanced over the emitted data.
III. Terms
A term is a variable that describes the input string to be matched or
the output string to be emitted. A term has three formats.
Anderson, et. al.