
/* GraphViz graph representing the state diagram of the RQL parser.
*/

digraph G {

    PAREN -> PAREN;
    PAREN -> KEYWORD;
    PAREN -> AGGREG;

    AGGREG -> KEYWORD;
    AGGREG -> PAREN;

    KEYWORD -> OP;

    OP -> VALUE;

    VALUE -> PAREN;
    VALUE -> AGGREG;

/*
    Blue lines represent added complexity of q[IN (x,y,z)] support.
    The only place that the "blue tree" can be entered is at IN, and
    exited at PAREN.
*/
    KEYWORD -> IN [color=blue];
    IN -> PAREN [color=blue];
    PAREN -> VALUE [color=blue];
    VALUE -> COMMA [color=blue];
    COMMA -> VALUE [color=blue]; 
    VALUE -> PAREN [color=blue];
}
