93ea989c153fe64f815a1c81d1431d4da37165d6
[freeside.git] / rt / docs / design_docs / rql_parser_machine.graphviz
1
2 /* GraphViz graph representing the state diagram of the RQL parser.
3 */
4
5 /* XXX: It's not up to date anymore, we should delete it or update.
6 */
7
8 digraph G {
9
10     PAREN -> PAREN;
11     PAREN -> KEYWORD;
12     PAREN -> AGGREG;
13
14     AGGREG -> KEYWORD;
15     AGGREG -> PAREN;
16
17     KEYWORD -> OP;
18
19     OP -> VALUE;
20
21     VALUE -> PAREN;
22     VALUE -> AGGREG;
23
24 /*
25     Blue lines represent added complexity of q[IN (x,y,z)] support.
26     The only place that the "blue tree" can be entered is at IN, and
27     exited at PAREN.
28 */
29     KEYWORD -> IN [color=blue];
30     IN -> PAREN [color=blue];
31     PAREN -> VALUE [color=blue];
32     VALUE -> COMMA [color=blue];
33     COMMA -> VALUE [color=blue]; 
34     VALUE -> PAREN [color=blue];
35 }