(TranslationUnit
    [(Program
        subroutines_03
        ()
        []
        [(ImplicitNone
            []
            ()
        )]
        [(Declaration
            (AttrType
                TypeInteger
                []
                ()
                ()
                None
            )
            []
            [(i
            []
            []
            ()
            ()
            None
            ())
            (j
            []
            []
            ()
            ()
            None
            ())
            (k
            []
            []
            ()
            ()
            None
            ())
            (l
            []
            []
            ()
            ()
            None
            ())]
            ()
        )]
        [(Assignment
            0
            i
            1
            ()
        )
        (Assignment
            0
            j
            1
            ()
        )
        (Assignment
            0
            k
            1
            ()
        )
        (Assignment
            0
            l
            1
            ()
        )
        (SubroutineCall
            0
            f
            []
            [(()
            i
            ()
            0)
            (()
            j
            ()
            0)
            (()
            k
            ()
            0)
            (()
            l
            ()
            0)]
            []
            []
            ()
        )
        (Print
            0
            ()
            [j]
            ()
        )
        (If
            0
            ()
            (/= j 4)
            [(ErrorStop
                0
                ()
                ()
                ()
            )]
            []
            ()
            ()
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )
        (SubroutineCall
            0
            f
            []
            [(()
            i
            ()
            0)
            (()
            j
            ()
            0)]
            [(d
            l)
            (c
            k)]
            []
            ()
        )
        (Print
            0
            ()
            [j]
            ()
        )
        (If
            0
            ()
            (/= j 4)
            [(ErrorStop
                0
                ()
                ()
                ()
            )]
            []
            ()
            ()
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )
        (SubroutineCall
            0
            f
            []
            []
            [(a
            i)
            (b
            j)
            (d
            l)
            (c
            k)]
            []
            ()
        )
        (Print
            0
            ()
            [j]
            ()
        )
        (If
            0
            ()
            (/= j 4)
            [(ErrorStop
                0
                ()
                ()
                ()
            )]
            []
            ()
            ()
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )
        (SubroutineCall
            0
            f
            []
            []
            [(b
            j)
            (a
            i)
            (c
            k)
            (d
            l)]
            []
            ()
        )
        (Print
            0
            ()
            [j]
            ()
        )
        (If
            0
            ()
            (/= j 4)
            [(ErrorStop
                0
                ()
                ()
                ()
            )]
            []
            ()
            ()
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )]
        [(Subroutine
            f
            [(a)
            (b)
            (c)
            (d)]
            []
            ()
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
            []
            []
            []
            [(Declaration
                (AttrType
                    TypeInteger
                    []
                    ()
                    ()
                    None
                )
                [(AttrIntent
                    In
                )]
                [(a
                []
                []
                ()
                ()
                None
                ())
                (c
                []
                []
                ()
                ()
                None
                ())
                (d
                []
                []
                ()
                ()
                None
                ())]
                ()
            )
            (Declaration
                (AttrType
                    TypeInteger
                    []
                    ()
                    ()
                    None
                )
                [(AttrIntent
                    Out
                )]
                [(b
                []
                []
                ()
                ()
                None
                ())]
                ()
            )]
            [(Assignment
                0
                b
                (+ (+ (+ a 1) c) d)
                ()
            )]
            []
            []
        )]
    )]
)
