(TranslationUnit
    [(Program
        __xx_main
        ()
        []
        []
        [(Declaration
            (AttrType
                TypeInteger
                []
                ()
                ()
                None
            )
            [(SimpleAttribute
                AttrAllocatable
            )]
            [(a
            [(()
            ()
            DimensionExpr)]
            []
            ()
            ()
            None
            ())]
            ()
        )
        (Declaration
            (AttrType
                TypeInteger
                []
                ()
                ()
                None
            )
            [(SimpleAttribute
                AttrPointer
            )]
            [(p
            []
            []
            ()
            ()
            None
            ())]
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )]
        [(Allocate
            0
            [(()
            (FuncCallOrArray
                a
                []
                [(()
                10
                ()
                0)]
                []
                []
                []
            )
            ()
            0)]
            []
            ()
        )
        (Deallocate
            0
            [(()
            a
            ()
            0)]
            []
            ()
        )
        (Open
            0
            []
            [(unit
            10)
            (file
            (String "test.txt" ()))
            (status
            (String "old" ()))]
            ()
        )
        (Flush
            0
            [10]
            []
            ()
        )
        (Close
            0
            []
            [(unit
            10)]
            ()
        )
        (Nullify
            0
            [p]
            []
            ()
        )
        (Exit
            0
            exit
            ()
        )
        (Cycle
            0
            cycle
            ()
        )
        (Return
            0
            ()
            ()
        )
        (Continue
            0
            ()
        )
        (Print
            0
            ()
            [exit]
            ()
        )
        (Print
            0
            ()
            [cycle]
            ()
        )
        (Print
            0
            ()
            [return]
            ()
        )
        (Print
            0
            ()
            [continue]
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )
        (SubroutineCall
            0
            exit
            []
            []
            []
            []
            ()
        )
        (SubroutineCall
            0
            cycle
            []
            []
            []
            []
            ()
        )
        (SubroutineCall
            0
            return
            []
            []
            []
            []
            ()
        )
        (SubroutineCall
            0
            continue
            []
            []
            []
            []
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )]
        [(Subroutine
            sub
            []
            []
            ()
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
            []
            []
            []
            [(Declaration
                (AttrType
                    TypeInteger
                    []
                    ()
                    ()
                    None
                )
                []
                [(i
                []
                []
                ()
                ()
                None
                ())]
                (TriviaNode
                    []
                    [(EndOfLine)
                    (EndOfLine)]
                )
            )]
            [(DoLoop
                0
                ()
                0
                i
                1
                10
                ()
                [(Print
                    0
                    ()
                    [i]
                    ()
                )
                (If
                    0
                    ()
                    (== i 5)
                    [(Exit
                        0
                        ()
                        ()
                    )]
                    []
                    ()
                    ()
                    ()
                )
                (If
                    0
                    ()
                    (== i 7)
                    [(Cycle
                        0
                        ()
                        ()
                    )]
                    []
                    ()
                    ()
                    ()
                )
                (If
                    0
                    ()
                    (== i 9)
                    [(Return
                        0
                        ()
                        ()
                    )]
                    []
                    ()
                    ()
                    ()
                )
                (If
                    0
                    ()
                    (== i 2)
                    [(Continue
                        0
                        ()
                    )]
                    []
                    ()
                    ()
                    ()
                )]
                ()
                (TriviaNode
                    []
                    [(EndOfLine)
                    (EndOfLine)]
                )
            )]
            []
            []
        )]
    )]
)
