(TranslationUnit
    (SymbolTable
        1
        {
            case_01:
                (Program
                    (SymbolTable
                        2
                        {
                            i:
                                (Variable
                                    2
                                    i
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Integer 8)
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                    .false.
                                    ()
                                    .false.
                                    .false.
                                    NotMethod
                                    ()
                                    []
                                ),
                            out:
                                (Variable
                                    2
                                    out
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Integer 8)
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                    .false.
                                    ()
                                    .false.
                                    .false.
                                    NotMethod
                                    ()
                                    []
                                )
                        })
                    case_01
                    []
                    [(Assignment
                        (Var 2 i)
                        (Cast
                            (IntegerConstant 4 (Integer 4) Decimal)
                            IntegerToInteger
                            (Integer 8)
                            (IntegerConstant 4 (Integer 8) Decimal)
                            ()
                        )
                        ()
                        .false.
                        .false.
                    )
                    (Select
                        ()
                        (Var 2 i)
                        [(CaseStmt
                            [(IntegerConstant 1 (Integer 4) Decimal)]
                            [(Assignment
                                (Var 2 out)
                                (Cast
                                    (IntegerConstant 10 (Integer 4) Decimal)
                                    IntegerToInteger
                                    (Integer 8)
                                    (IntegerConstant 10 (Integer 8) Decimal)
                                    ()
                                )
                                ()
                                .false.
                                .false.
                            )
                            (Print
                                (StringConstant
                                    "1"
                                    (String 1 (IntegerConstant 1 (Integer 4) Decimal) ExpressionLength DescriptorString)
                                )
                            )]
                            .false.
                        )
                        (CaseStmt
                            [(IntegerConstant 2 (Integer 4) Decimal)]
                            [(Assignment
                                (Var 2 out)
                                (Cast
                                    (IntegerConstant 20 (Integer 4) Decimal)
                                    IntegerToInteger
                                    (Integer 8)
                                    (IntegerConstant 20 (Integer 8) Decimal)
                                    ()
                                )
                                ()
                                .false.
                                .false.
                            )
                            (Print
                                (StringConstant
                                    "2"
                                    (String 1 (IntegerConstant 1 (Integer 4) Decimal) ExpressionLength DescriptorString)
                                )
                            )]
                            .false.
                        )
                        (CaseStmt
                            [(IntegerConstant 3 (Integer 4) Decimal)]
                            [(Assignment
                                (Var 2 out)
                                (Cast
                                    (IntegerConstant 30 (Integer 4) Decimal)
                                    IntegerToInteger
                                    (Integer 8)
                                    (IntegerConstant 30 (Integer 8) Decimal)
                                    ()
                                )
                                ()
                                .false.
                                .false.
                            )
                            (Print
                                (StringConstant
                                    "3"
                                    (String 1 (IntegerConstant 1 (Integer 4) Decimal) ExpressionLength DescriptorString)
                                )
                            )]
                            .false.
                        )
                        (CaseStmt
                            [(IntegerConstant 4 (Integer 4) Decimal)]
                            [(Assignment
                                (Var 2 out)
                                (Cast
                                    (IntegerConstant 40 (Integer 4) Decimal)
                                    IntegerToInteger
                                    (Integer 8)
                                    (IntegerConstant 40 (Integer 8) Decimal)
                                    ()
                                )
                                ()
                                .false.
                                .false.
                            )
                            (Print
                                (StringConstant
                                    "4"
                                    (String 1 (IntegerConstant 1 (Integer 4) Decimal) ExpressionLength DescriptorString)
                                )
                            )]
                            .false.
                        )]
                        []
                        .false.
                    )
                    (If
                        ()
                        (IntegerCompare
                            (Var 2 out)
                            NotEq
                            (Cast
                                (IntegerConstant 40 (Integer 4) Decimal)
                                IntegerToInteger
                                (Integer 8)
                                (IntegerConstant 40 (Integer 8) Decimal)
                                ()
                            )
                            (Logical 4)
                            ()
                        )
                        [(ErrorStop
                            ()
                        )]
                        []
                    )
                    (Select
                        ()
                        (Var 2 i)
                        [(CaseStmt
                            [(IntegerConstant 1 (Integer 4) Decimal)]
                            [(Assignment
                                (Var 2 out)
                                (Cast
                                    (IntegerConstant 11 (Integer 4) Decimal)
                                    IntegerToInteger
                                    (Integer 8)
                                    (IntegerConstant 11 (Integer 8) Decimal)
                                    ()
                                )
                                ()
                                .false.
                                .false.
                            )
                            (Print
                                (StringConstant
                                    "1"
                                    (String 1 (IntegerConstant 1 (Integer 4) Decimal) ExpressionLength DescriptorString)
                                )
                            )]
                            .false.
                        )
                        (CaseStmt
                            [(IntegerConstant 2 (Integer 4) Decimal)
                            (IntegerConstant 3 (Integer 4) Decimal)
                            (IntegerConstant 4 (Integer 4) Decimal)]
                            [(Assignment
                                (Var 2 out)
                                (Cast
                                    (IntegerConstant 22 (Integer 4) Decimal)
                                    IntegerToInteger
                                    (Integer 8)
                                    (IntegerConstant 22 (Integer 8) Decimal)
                                    ()
                                )
                                ()
                                .false.
                                .false.
                            )
                            (Print
                                (StringConstant
                                    "2,3,4"
                                    (String 1 (IntegerConstant 5 (Integer 4) Decimal) ExpressionLength DescriptorString)
                                )
                            )]
                            .false.
                        )]
                        []
                        .false.
                    )
                    (If
                        ()
                        (IntegerCompare
                            (Var 2 out)
                            NotEq
                            (Cast
                                (IntegerConstant 22 (Integer 4) Decimal)
                                IntegerToInteger
                                (Integer 8)
                                (IntegerConstant 22 (Integer 8) Decimal)
                                ()
                            )
                            (Logical 4)
                            ()
                        )
                        [(ErrorStop
                            ()
                        )]
                        []
                    )]
                )
        })
    []
)
