The AffineTwo applet is an extension of the
Affine applet, which uses two custom classes,
the GridArea class and the Lexer class to implement a simple rule-based text
translation system. Text entered in the GridArea text component is
translated forwards or backwards using two sets of mirror-image
For example if the forward set contained the rule a
--> Ab, then the reverse set would contain the rule Ab --> a. This
allows for "infinite undo" without caching intermediate states.
The AffineTwo applet differs from the Affine applet in the rule sets
used by the lexers.
Enter text in the GridArea, or use the default text. Select expand or
revert, then press the apply button. Note: If the text is expanded past the bottom of the GridArea, it will over-write the top line, resulting in a loss of information.