AST= \
[CAST_TRANSLATION_UNIT, {},
  [CAST_FUN_DEFINITION, {'id': "main"},
    [CAST_PAR_TYPE_LIST, {}],
    [CAST_COMP_STMT, {},
      [CAST_DECL_LIST, {},
        [CAST_VAR_DECLARATION, {'id': "g1"}],
        [CAST_VAR_DECLARATION, {'id': "g2"}],
      ],
      [CAST_STMT_LIST, {},
        [CAST_EXPR_STMT, {'id': "g1"},
          [CAST_CALL_EXPR, {'fname': "gcd"},
            [CAST_INT_CONST_EXPR, {'value': 81}],
            [CAST_INT_CONST_EXPR, {'value': 625}],
          ],
        ],
        [CAST_EXPR_STMT, {'id': "g2"},
          [CAST_CALL_EXPR, {'fname': "rgcd"},
            [CAST_INT_CONST_EXPR, {'value': 815}],
            [CAST_INT_CONST_EXPR, {'value': 625}],
          ],
        ],
        [CAST_RETURN_STMT, {},
          [CAST_EQ_EXPR, {},
            [CAST_VAR_EXPR, {'id': "g1"}],
            [CAST_VAR_EXPR, {'id': "g2"}],
          ],
        ],
      ],
    ],
  ],
  [CAST_FUN_DEFINITION, {'id': "gcd"},
    [CAST_PAR_TYPE_LIST, {},
      [CAST_PAR_TYPE, {'id': "a"}],
      [CAST_PAR_TYPE, {'id': "b"}],
    ],
    [CAST_COMP_STMT, {},
      [CAST_DECL_LIST, {}],
      [CAST_STMT_LIST, {},
        [CAST_WHILE_STMT, {},
          [CAST_NOT_EQ_EXPR, {},
            [CAST_VAR_EXPR, {'id': "a"}],
            [CAST_VAR_EXPR, {'id': "b"}],
          ],
          [CAST_COMP_STMT, {},
            [CAST_DECL_LIST, {}],
            [CAST_STMT_LIST, {},
              [CAST_IF_STMT, {},
                [CAST_GREATER_EXPR, {},
                  [CAST_VAR_EXPR, {'id': "a"}],
                  [CAST_VAR_EXPR, {'id': "b"}],
                ],
                [CAST_EXPR_STMT, {'id': "a"},
                  [CAST_MINUS_EXPR, {},
                    [CAST_VAR_EXPR, {'id': "a"}],
                    [CAST_VAR_EXPR, {'id': "b"}],
                  ],
                ],
                [CAST_EXPR_STMT, {'id': "b"},
                  [CAST_MINUS_EXPR, {},
                    [CAST_VAR_EXPR, {'id': "b"}],
                    [CAST_VAR_EXPR, {'id': "a"}],
                  ],
                ],
              ],
            ],
          ],
        ],
        [CAST_RETURN_STMT, {},
          [CAST_VAR_EXPR, {'id': "a"}],
        ],
      ],
    ],
  ],
  [CAST_FUN_DEFINITION, {'id': "rgcd"},
    [CAST_PAR_TYPE_LIST, {},
      [CAST_PAR_TYPE, {'id': "a"}],
      [CAST_PAR_TYPE, {'id': "b"}],
    ],
    [CAST_COMP_STMT, {},
      [CAST_DECL_LIST, {}],
      [CAST_STMT_LIST, {},
        [CAST_IF_STMT, {},
          [CAST_EQ_EXPR, {},
            [CAST_VAR_EXPR, {'id': "a"}],
            [CAST_VAR_EXPR, {'id': "b"}],
          ],
          [CAST_COMP_STMT, {},
            [CAST_DECL_LIST, {}],
            [CAST_STMT_LIST, {},
              [CAST_RETURN_STMT, {},
                [CAST_VAR_EXPR, {'id': "a"}],
              ],
            ],
          ],
          [CAST_IF_STMT, {},
            [CAST_GREATER_EXPR, {},
              [CAST_VAR_EXPR, {'id': "a"}],
              [CAST_VAR_EXPR, {'id': "b"}],
            ],
            [CAST_COMP_STMT, {},
              [CAST_DECL_LIST, {}],
              [CAST_STMT_LIST, {},
                [CAST_RETURN_STMT, {},
                  [CAST_CALL_EXPR, {'fname': "rgcd"},
                    [CAST_MINUS_EXPR, {},
                      [CAST_VAR_EXPR, {'id': "a"}],
                      [CAST_VAR_EXPR, {'id': "b"}],
                    ],
                    [CAST_VAR_EXPR, {'id': "b"}],
                  ],
                ],
              ],
            ],
            [CAST_COMP_STMT, {},
              [CAST_DECL_LIST, {}],
              [CAST_STMT_LIST, {},
                [CAST_RETURN_STMT, {},
                  [CAST_CALL_EXPR, {'fname': "rgcd"},
                    [CAST_VAR_EXPR, {'id': "a"}],
                    [CAST_MINUS_EXPR, {},
                      [CAST_VAR_EXPR, {'id': "b"}],
                      [CAST_VAR_EXPR, {'id': "a"}],
                    ],
                  ],
                ],
              ],
            ],
          ],
        ],
      ],
    ],
  ],
]
