(TranslationUnit
    [(Program
        expr_05
        (TriviaNode
            [(EndOfLine)
            (Comment
                "! Test parantheses in expressions"
            )]
            []
        )
        []
        [(ImplicitNone
            []
            ()
        )]
        [(Declaration
            (AttrType
                TypeInteger
                []
                ()
                ()
                None
            )
            []
            [(x
            []
            []
            ()
            ()
            None
            ())
            (a
            []
            []
            ()
            ()
            None
            ())
            (b
            []
            []
            ()
            ()
            None
            ())
            (c
            []
            []
            ()
            ()
            None
            ())]
            ()
        )
        (Declaration
            (AttrType
                TypeLogical
                []
                ()
                ()
                None
            )
            []
            [(l
            []
            []
            ()
            ()
            None
            ())]
            ()
        )]
        [(Assignment
            0
            a
            3
            ()
        )
        (Assignment
            0
            b
            4
            ()
        )
        (Assignment
            0
            c
            5
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )
        (Assignment
            0
            x
            (* 2 3)
            ()
        )
        (Assignment
            0
            x
            (* (u- 2) 3)
            ()
        )
        (Assignment
            0
            x
            (* 2 (u- 3))
            ()
        )
        (Assignment
            0
            x
            (* (u- 2) (u- 3))
            ()
        )
        (Assignment
            0
            x
            (* (u- 2) (u- 3))
            ()
        )
        (Assignment
            0
            x
            (u- (** 2 3))
            ()
        )
        (Assignment
            0
            x
            (u- (** 2 3))
            ()
        )
        (Assignment
            0
            x
            (u- (* 2 3))
            ()
        )
        (Assignment
            0
            x
            (** 2 (u- 3))
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )
        (Assignment
            0
            x
            a
            ()
        )
        (Assignment
            0
            x
            (Parenthesis
                a
            )
            ()
        )
        (Assignment
            0
            x
            (* a b)
            ()
        )
        (Assignment
            0
            x
            (* (u- a) b)
            ()
        )
        (Assignment
            0
            x
            (u- (* a b))
            ()
        )
        (Assignment
            0
            x
            (* a (u- b))
            ()
        )
        (Assignment
            0
            x
            (* (u- a) (u- b))
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )
        (Assignment
            0
            x
            (* (* a b) c)
            ()
        )
        (Assignment
            0
            x
            (* (* (u- a) b) c)
            ()
        )
        (Assignment
            0
            x
            (* (* a (u- b)) c)
            ()
        )
        (Assignment
            0
            x
            (* (* a b) (u- c))
            ()
        )
        (Assignment
            0
            x
            (* (* (u- a) (u- b)) (u- c))
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )
        (Assignment
            0
            x
            (+ 3 (* 4 5))
            ()
        )
        (Assignment
            0
            x
            (* (+ 3 4) 5)
            ()
        )
        (Assignment
            0
            x
            (* a (+ b (* 5 (- c b))))
            ()
        )
        (Assignment
            0
            x
            (* (- 3 (* (* 2 a) b)) 5)
            ()
        )
        (Assignment
            0
            x
            (* (+ (* (* (u- 2) a) b) 3) 5)
            ()
        )
        (Assignment
            0
            x
            (* (+ (* (* (u- 2) a) b) (* (* 3 b) a)) 5)
            ()
        )
        (Assignment
            0
            x
            (* (+ (* (u- 2) (/ a b)) (** (+ a (u- b)) 2)) 5)
            ()
        )
        (Assignment
            0
            x
            (* (+ (* (* (u+ 2) a) b) 3) 5)
            ()
        )
        (Assignment
            0
            x
            (+ (+ (** a 2) (* (* 2 a) b)) (** b 2))
            ()
        )
        (Assignment
            0
            x
            (* (+ a b) (- a b))
            ()
        )
        (Assignment
            0
            x
            (** (+ a b) 2)
            ()
        )
        (Assignment
            0
            x
            (* (+ a b) (+ (- (** a 2) (* a b)) (** b 2)))
            ()
        )
        (Assignment
            0
            x
            (* (* (- a b) (+ a b)) (+ (** a 2) (** b 2)))
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )
        (Assignment
            0
            x
            (/ 1 (* a b))
            ()
        )
        (Assignment
            0
            x
            (* (/ 1 a) b)
            ()
        )
        (Assignment
            0
            x
            (* (/ 1 a) b)
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )
        (Assignment
            0
            x
            (/ 1 (+ (* a b) 1))
            ()
        )
        (Assignment
            0
            x
            (+ (* (/ 1 a) b) 1)
            ()
        )
        (Assignment
            0
            x
            (+ (* (/ 1 a) b) 1)
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )
        (Assignment
            0
            x
            (- 2 (u- 2))
            ()
        )
        (Assignment
            0
            x
            (- a (- (u- b) c))
            ()
        )
        (Assignment
            0
            x
            (- a (* (u- 2) b))
            ()
        )
        (Assignment
            0
            x
            (- c (/ (u- 2) b))
            ()
        )
        (Assignment
            0
            x
            (- a (+ (+ 2 3) 4))
            ()
        )
        (Assignment
            0
            x
            (+ a (+ (+ 2 3) 4))
            ()
        )
        (Assignment
            0
            x
            (- (+ (* 2 a) (* a b)) (+ (* a b) (* 2 a)))
            ()
        )
        (Assignment
            0
            x
            (- (+ (* 2 a) (* a b)) (- (* a b) (* 2 a)))
            ()
        )
        (Assignment
            0
            x
            (- a (- b (- c 1)))
            ()
        )
        (Assignment
            0
            x
            (- a b)
            ()
        )
        (Assignment
            0
            x
            (- a (- b c))
            ()
        )
        (Assignment
            0
            x
            (- (- a b) c)
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )
        (Assignment
            0
            x
            (u- (- a (+ (u- b) (- (u- b) (* (u- b) b)))))
            ()
        )
        (Assignment
            0
            x
            (u- (+ 3 5))
            ()
        )
        (Assignment
            0
            x
            (u- (+ a 5))
            (TriviaNode
                []
                [(EndOfLine)
                (EndOfLine)]
            )
        )
        (Assignment
            0
            l
            (BoolOp
                (BoolOp
                    (<= (+ (* (** x 3) 4) a) 4)
                    Or
                    (BoolOp
                        (< x 5)
                        And
                        (< x 6)
                    )
                )
                Eqv
                (BoolOp
                    (Logical .true. ())
                    Or
                    (BoolOp
                        (not (Logical .false. ()))
                        And
                        (Logical .true. ())
                    )
                )
            )
            ()
        )
        (Assignment
            0
            l
            (BoolOp
                l
                Or
                (BoolOp
                    l
                    And
                    l
                )
            )
            ()
        )
        (Assignment
            0
            l
            (BoolOp
                (BoolOp
                    l
                    Or
                    l
                )
                And
                l
            )
            ()
        )
        (Assignment
            0
            l
            (BoolOp
                (BoolOp
                    l
                    And
                    l
                )
                Or
                l
            )
            ()
        )
        (Assignment
            0
            l
            (BoolOp
                l
                And
                (BoolOp
                    l
                    Or
                    l
                )
            )
            ()
        )
        (Assignment
            0
            l
            (BoolOp
                l
                Or
                (BoolOp
                    (not l)
                    And
                    l
                )
            )
            ()
        )
        (Assignment
            0
            l
            (BoolOp
                l
                Or
                (BoolOp
                    l
                    And
                    (not l)
                )
            )
            ()
        )
        (Assignment
            0
            l
            (BoolOp
                (BoolOp
                    l
                    And
                    l
                )
                Or
                (not l)
            )
            ()
        )
        (Assignment
            0
            l
            (BoolOp
                (BoolOp
                    l
                    And
                    (not l)
                )
                Or
                l
            )
            ()
        )
        (Assignment
            0
            l
            (BoolOp
                l
                And
                (not (BoolOp
                    l
                    Or
                    l
                ))
            )
            ()
        )]
        []
    )]
)
