(TranslationUnit
    [(Program
        critical1
        ()
        []
        [(ImplicitNone
            []
            ()
        )]
        [(Declaration
            (AttrType
                TypeInteger
                []
                ()
                ()
                None
            )
            []
            [(joblist
            []
            [(()
            ()
            CodimensionStar)]
            ()
            ()
            None
            ())
            (job
            []
            []
            ()
            ()
            None
            ())]
            ()
        )
        (Declaration
            (AttrType
                TypeInteger
                []
                ()
                ()
                None
            )
            []
            [(a
            []
            []
            ()
            ()
            None
            ())
            (b
            []
            []
            ()
            ()
            None
            ())]
            ()
        )
        (Declaration
            (AttrType
                TypeInteger
                []
                ()
                ()
                None
            )
            []
            [(IntegerSample
            []
            []
            ()
            ()
            None
            ())]
            ()
        )
        (Declaration
            (AttrType
                TypeCharacter
                [(()
                50
                Value)]
                ()
                ()
                None
            )
            []
            [(Sample
            []
            []
            ()
            ()
            None
            ())]
            ()
        )]
        [(If
            0
            ()
            (== (FuncCallOrArray
                this_image
                []
                []
                []
                []
                []
            ) 1)
            [(Read
                0
                ()
                [(())
                (())]
                []
                [joblist]
                ()
            )]
            []
            ()
            ()
            ()
        )
        (SyncAll
            0
            []
            ()
        )
        (DoLoop
            0
            ()
            0
            ()
            ()
            ()
            ()
            [(Critical
                0
                ()
                []
                [(Assignment
                    0
                    job
                    (CoarrayRef
                        joblist
                        []
                        []
                        []
                        [(()
                        1
                        ()
                        CodimensionExpr)]
                        []
                    )
                    ()
                )
                (Assignment
                    0
                    (CoarrayRef
                        joblist
                        []
                        []
                        []
                        [(()
                        1
                        ()
                        CodimensionExpr)]
                        []
                    )
                    (- job 1)
                    ()
                )]
                ()
                (TriviaNode
                    []
                    [(EndOfLine)
                    (EndOfLine)
                    (Comment
                        "! >>>>>>>> Syntax check(AST) >>>>>>>>"
                    )]
                )
            )
            (Critical
                0
                ()
                []
                [(Assignment
                    0
                    IntegerSample
                    0
                    ()
                )]
                ()
                ()
            )
            (Critical
                0
                ()
                [(AttrStat
                    IntegerSample
                )]
                [(Assignment
                    0
                    Sample
                    (String "Error message")
                    ()
                )]
                ()
                ()
            )
            (Critical
                0
                ()
                [(AttrErrmsg
                    Sample
                )]
                [(Assignment
                    0
                    Sample
                    (String "Error message")
                    ()
                )]
                ()
                (TriviaNode
                    []
                    [(EndOfLine)
                    (Comment
                        "! <<<<<<<< Syntax check(AST) <<<<<<<<"
                    )
                    (EndOfLine)]
                )
            )
            (If
                0
                ()
                (> job 0)
                [(Assignment
                    0
                    b
                    (+ (** a 2) (** b 2))
                    ()
                )]
                [(Exit
                    0
                    ()
                    ()
                )]
                ()
                ()
                ()
            )]
            ()
            ()
        )
        (SyncAll
            0
            []
            ()
        )]
        []
    )]
)
