![]() |
Lumiera 0.pre.04~rc.1
»edit your freedom«
|
#include "lib/diff/diff-language.hpp"
Definition frame for a language to describe differences in data structures.
We use a linearised representation as a sequence of DiffStep messages of constant size. The actual verbs of the diff language in use are defined through the operations of the Interpreter; each #VerbToken corresponds to a handler function on the Interpreter interface. In addition to the verb, each DiffStep also carries a content data element as argument, like e.g. "insert elm at next position".
| I | Interpreter interface of the actual language to use |
| E | type of the elementary data elements. |
Definition at line 147 of file diff-language.hpp.
Classes | |
| struct | DiffStep |
Public Types | |
| using | DiffVerb = VerbToken< I, void(E const &)> |
| using | DiffToken = std::tuple< DiffVerb, E > |
| using | Interpreter = I |
Static Public Attributes | |
| static const DiffStep | NIL = DiffStep(DiffVerb(), E()) |
| fixed "invalid" marker token | |
Definition at line 150 of file diff-language.hpp.
Definition at line 151 of file diff-language.hpp.
| using Interpreter = I |
Definition at line 152 of file diff-language.hpp.
|
static |
fixed "invalid" marker token
Definition at line 179 of file diff-language.hpp.
Referenced by DiffDetector< SEQ >::DiffFrame::checkPoint(), and DiffDetector< SEQ >::DiffFrame::establishNextState().
Inheritance diagram for DiffLanguage< I, E >:
Collaboration diagram for DiffLanguage< I, E >: