digraph parse {
        size="10,20";
        edge [ color="red"];
        subgraph cluster_0 {
		style=filled;
		color=grey;
		node [shape=oval,style=filled,color="gold"];Rules
		label="\nE - ekAdeSa\nA - asiddhavat\nR - Shatva\nW - tuk\nT - tripAdI\nO - other rules"

	}
	
	
        node [shape=circle,style=filled,color="gold"]; S0;S1;S2;S3;SS0;SS1
	S0 -> S0 [label= "O"][ color="green"];
	S0 -> S1 [label= "A, val"][ color="cyan"];
	S0 -> S2 [label= "E"][ color="blue"];
	S1 -> S0 [label= "O"][ color="green"];
	S1 -> S2 [label= "E"][ color="blue"];
	S2 -> S2 [label= "E"][ color="blue"];
	S2 -> S0 [label= "O-W"][color="darkgreen"];
	S2 -> S1 [label= "A, val"][ color="cyan"];
	S0 -> SS0 [label= "No Rule"][color="yellow"];
	S1 -> SS0 [label= "No Rule"][color="yellow"];
	S2 -> SS1 [label= "No Rule"][color="orange"];
	SS1 -> S3 [label= "T-R"][color="maroon"];
	SS0 -> S3 [label= "T"][ color="red"];



	
	subgraph cluster_1 {
		style=filled;
		color=pink;
		node [shape=oval,style=filled,color="gold"];"Parameters"
		label="\nval - Passing by value\nref - Passing by reference"

	}	
	}