(TranslationUnit
    [(DoLoop
        0
        ()
        0
        i
        1
        5
        ()
        [(Assignment
            0
            a
            (+ a i)
            ()
        )]
        ()
        (TriviaNode
            []
            [(EndOfLine)
            (EndOfLine)]
        )
    )
    (DoLoop
        0
        ()
        0
        i
        1
        5
        ()
        []
        ()
        (TriviaNode
            []
            [(EndOfLine)
            (EndOfLine)]
        )
    )
    (DoLoop
        0
        ()
        0
        i
        1
        5
        2
        [(Assignment
            0
            a
            (+ a i)
            ()
        )]
        ()
        (TriviaNode
            []
            [(EndOfLine)
            (EndOfLine)]
        )
    )
    (DoLoop
        0
        ()
        0
        ()
        ()
        ()
        ()
        [(Assignment
            0
            a
            (+ a i)
            ()
        )
        (Assignment
            0
            b
            3
            ()
        )]
        ()
        (TriviaNode
            []
            [(EndOfLine)
            (EndOfLine)]
        )
    )
    (Subroutine
        g
        []
        []
        ()
        ()
        []
        []
        []
        []
        [(DoLoop
            0
            ()
            0
            ()
            ()
            ()
            ()
            [(Assignment
                0
                a
                (+ a i)
                ()
            )
            (Assignment
                0
                b
                3
                ()
            )]
            ()
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )
        (DoLoop
            0
            ()
            0
            i
            1
            5
            ()
            [(Assignment
                0
                a
                (+ a i)
                ()
            )]
            ()
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )
        (Assignment
            0
            n
            0
            ()
        )
        (DoLoop
            0
            ()
            50
            i
            1
            10
            ()
            [(Assignment
                0
                j
                i
                ()
            )
            (DoLoop
                0
                ()
                0
                k
                1
                5
                ()
                [(Assignment
                    0
                    l
                    k
                    ()
                )
                (Assignment
                    0
                    n
                    (+ n 1)
                    (TriviaNode
                        []
                        [(EOLComment
                            "! this statement executes 50 times"
                        )]
                    )
                )]
                ()
                (TriviaNode
                    []
                    [(EOLComment
                        "! nonlabeled do inside a labeled do"
                    )]
                )
            )]
            ()
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )]
        []
        []
    )]
)
