aboutsummaryrefslogtreecommitdiff
path: root/docs/parser-states.dot
blob: 16d714f6b574fa7fcee5cad3c8d159347f55bca4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
digraph ParserStates {
label="Parser states";

init [label="Init"];
disabled [label="Parser disabled"];
error [label="Error"];

init -> disabled [label="If _EVAEN is not empty"];
init -> Parser [label="If _EVAEN is empty"];
Parser -> disabled [label="_EVADI located"];
disabled -> Parser [label="_EVAEN located"];

Parser {
nomacro [label="No macro"];
macro_start [label="Macro/command start"];
macro [label="Macro/command located"];
args [label="Arguments"];
expansion [label="Macro/command expansion (Secondary parser)"];

Parser -> nomacro [style="dotted"];
expansion -> Parser [style="dotted"];
nomacro -> macro_start [label="_INIT located"];
macro_start -> macro [label="_MACR matches text after _INIT"];
macro_start -> error [label="else"];
macro -> args [label="_ARGST matches after _MACR"];
args -> args [label="_ARGSE localted"];
args -> macro_start [label="_INIT located"];
args -> expansion [label="_ARGEN located"];
macro -> expansion [label="else"];
expansion -> args [label="If some macro arguments are still opened"];
expansion -> nomacro [label="If last opened macro argument was closed"];

}

}