| digraph vpg |
| { |
| Program -> Declaration; |
| |
| Declaration -> Type; |
| integer [shape=box,fontname="Courier"]; |
| Type -> integer; |
| |
| Declaration -> Variable; |
| i_decl [shape=box,label="i",fontname="Courier"]; |
| Variable -> i_decl; |
| Declaration -> InitExpression; |
| InitExpression -> IntegerLiteral; |
| 3 [shape=box,fontname="Courier"]; |
| IntegerLiteral -> 3; |
| |
| Program -> StatementList; |
| StatementList -> Statement; |
| Statement -> PrintStmt; |
| PrintStmt -> Expression; |
| Expression -> Concatenation; |
| i_ref [shape=box,label="i",fontname="Courier"]; |
| Concatenation -> VariableReference; |
| VariableReference -> i_ref; |
| |
| Concatenation -> StringLiteral; |
| string [shape=box,fontname="Courier",label="is the value of i"]; |
| StringLiteral -> string; |
| |
| VariableReference -> Declaration [label="Binding",fontname="Times-Italic",fontsize=10,style=dotted,constraint=false]; |
| |
| Declaration -> Program [label="Scope of Declaration",fontname="Times-Italic",fontsize=10,style=dotted,constraint=false];} |