(TranslationUnit
    [(Module
        interface_01_mod
        (TriviaNode
            []
            [(EndOfLine)
            (EndOfLine)]
        )
        []
        [(ImplicitNone
            []
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )]
        [(Interface
            (InterfaceHeaderName
                a
            )
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
            [(InterfaceModuleProcedure
                [a1]
                [(SimpleAttribute
                    AttrModule
                )]
                ()
            )
            (InterfaceModuleProcedure
                [a2]
                [(SimpleAttribute
                    AttrModule
                )]
                ()
            )]
        )]
        []
        [(Subroutine
            a1
            [(a)]
            []
            ()
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
            []
            []
            []
            [(Declaration
                (AttrType
                    TypeInteger
                    []
                    ()
                    ()
                    None
                )
                [(AttrIntent
                    InOut
                )]
                [(a
                []
                []
                ()
                ()
                None
                ())]
                ()
            )]
            [(Assignment
                0
                a
                (+ a 1)
                ()
            )]
            []
            []
        )
        (Subroutine
            a2
            [(a)]
            []
            ()
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
            []
            []
            []
            [(Declaration
                (AttrType
                    TypeReal
                    []
                    ()
                    ()
                    None
                )
                [(AttrIntent
                    InOut
                )]
                [(a
                []
                []
                ()
                ()
                None
                ())]
                ()
            )]
            [(Assignment
                0
                a
                (+ a 1)
                ()
            )]
            []
            []
        )]
    )
    (Program
        interface_01
        ()
        [(Use
            []
            interface_01_mod
            [(UseSymbol
                a
                ()
            )]
            .true.
            ()
        )]
        [(ImplicitNone
            []
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )]
        [(Declaration
            (AttrType
                TypeInteger
                []
                ()
                ()
                None
            )
            []
            [(i
            []
            []
            ()
            ()
            None
            ())]
            ()
        )
        (Declaration
            (AttrType
                TypeReal
                []
                ()
                ()
                None
            )
            []
            [(r
            []
            []
            ()
            ()
            None
            ())]
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )]
        [(Assignment
            0
            i
            5
            ()
        )
        (SubroutineCall
            0
            a
            []
            [(()
            i
            ()
            0)]
            []
            []
            ()
        )
        (If
            0
            ()
            (/= i 6)
            [(ErrorStop
                0
                ()
                ()
                ()
            )]
            []
            ()
            ()
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )
        (Assignment
            0
            r
            6
            ()
        )
        (SubroutineCall
            0
            a
            []
            [(()
            r
            ()
            0)]
            []
            []
            ()
        )
        (If
            0
            ()
            (/= r 7)
            [(ErrorStop
                0
                ()
                ()
                ()
            )]
            []
            ()
            ()
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )
        (Assignment
            0
            i
            7
            ()
        )
        (SubroutineCall
            0
            a
            []
            [(()
            i
            ()
            0)]
            []
            []
            ()
        )
        (If
            0
            ()
            (/= i 8)
            [(ErrorStop
                0
                ()
                ()
                ()
            )]
            []
            ()
            ()
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )]
        []
    )]
)
