- Program - FieldDecl name=t type=int size=1 - MethodDecl name=gcd type=int params={b:int, a:int} - Block - WhileLoop cond=(b>0) - Block - Assignment loc=t expr=b - Assignment loc=b expr=(a%b) - Assignment loc=a expr=t - Return - Expr [loc] - Location name=a - MethodDecl name=main type=void params={} - Block - Assignment loc=t expr=gcd(24, 196) - MethodCall name="printf" [callout] - Literal type=string value="%d\n" - Expr [loc] - Location name=t