(TranslationUnit
    (SymbolTable
        1
        {
            allocate_05:
                (Program
                    (SymbolTable
                        2
                        {
                            num:
                                (Variable
                                    2
                                    num
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (String 1 3 () PointerString)
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                ),
                            string:
                                (Variable
                                    2
                                    string
                                    []
                                    Local
                                    ()
                                    ()
                                    Default
                                    (Allocatable
                                        (String 1 -2 () DescriptorString)
                                    )
                                    ()
                                    Source
                                    Public
                                    Required
                                    .false.
                                    .false.
                                )
                        })
                    allocate_05
                    []
                    [(Allocate
                        [((Var 2 string)
                        []
                        (IntegerConstant 3 (Integer 4) Decimal)
                        ())]
                        ()
                        ()
                        ()
                    )
                    (Assignment
                        (Var 2 num)
                        (StringConstant
                            "abc"
                            (String 1 3 () PointerString)
                        )
                        ()
                    )
                    (Assignment
                        (Var 2 string)
                        (StringPhysicalCast
                            (Var 2 num)
                            PointerString
                            DescriptorString
                            (Allocatable
                                (String 1 3 () DescriptorString)
                            )
                            ()
                        )
                        ()
                    )
                    (If
                        (StringCompare
                            (StringPhysicalCast
                                (Var 2 string)
                                DescriptorString
                                PointerString
                                (Allocatable
                                    (String 1 -2 () PointerString)
                                )
                                ()
                            )
                            NotEq
                            (StringConstant
                                "abc"
                                (String 1 3 () PointerString)
                            )
                            (Logical 4)
                            ()
                        )
                        [(ErrorStop
                            ()
                        )]
                        []
                    )
                    (Assignment
                        (StringSection
                            (Var 2 string)
                            ()
                            ()
                            (IntegerConstant 1 (Integer 4) Decimal)
                            (String 1 -1 () DescriptorString)
                            ()
                        )
                        (StringPhysicalCast
                            (Var 2 num)
                            PointerString
                            DescriptorString
                            (Allocatable
                                (String 1 3 () DescriptorString)
                            )
                            ()
                        )
                        ()
                    )
                    (If
                        (StringCompare
                            (StringPhysicalCast
                                (Var 2 string)
                                DescriptorString
                                PointerString
                                (Allocatable
                                    (String 1 -2 () PointerString)
                                )
                                ()
                            )
                            NotEq
                            (StringConstant
                                "abc"
                                (String 1 3 () PointerString)
                            )
                            (Logical 4)
                            ()
                        )
                        [(ErrorStop
                            ()
                        )]
                        []
                    )]
                )
        })
    []
)
