digraph language { 

// pattern [label=""];
n0[label="grammars: 2E PER 1E"];
n1[ label="seq"];
n0 -> n1;
n2[ label="1-8"];
n1 -> n2;
n3[ label="charClass"];
n2 -> n3;
n4[ label="any_of"];
n3 -> n4;
n5[ label="'a' - 'z'"];
n4 -> n5;
n6[ label="'A' - 'Z'"];
n4 -> n6;
n7[ label="0-*"];
n1 -> n7;
n8[ label="re"];
n7 -> n8;
n9[ label="seq"];
n8 -> n9;
n10[ label="1-1"];
n9 -> n10;
n11[ label="'-'"];
n10 -> n11;
n12[ label="1-1"];
n9 -> n12;
n13[ label="charClass"];
n12 -> n13;
n14[ label="any_of"];
n13 -> n14;
n15[ label="'a' - 'z'"];
n14 -> n15;
n16[ label="'A' - 'Z'"];
n14 -> n16;
n17[ label="'0' - '9'"];
n14 -> n17;
n18[ label="1-1"];
n9 -> n18;
n19[ label="'{'"];
n18 -> n19;
n20[ label="1-1"];
n9 -> n20;
n21[ label="'1'"];
n20 -> n21;
n22[ label="1-1"];
n9 -> n22;
n23[ label="','"];
n22 -> n23;
n24[ label="1-1"];
n9 -> n24;
n25[ label="'8'"];
n24 -> n25;
n26[ label="1-1"];
n9 -> n26;
n27[ label="'}'"];
n26 -> n27;
 }