brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 51de47f Raw
47 lines · c
1//===-- lib/Semantics/check-coarray.h ---------------------------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef FORTRAN_SEMANTICS_CHECK_COARRAY_H_10#define FORTRAN_SEMANTICS_CHECK_COARRAY_H_11 12#include "flang/Semantics/semantics.h"13#include <list>14 15namespace Fortran::semantics {16 17class CoarrayChecker : public virtual BaseChecker {18public:19  CoarrayChecker(SemanticsContext &context) : context_{context} {}20  void Leave(const parser::ChangeTeamStmt &);21  void Leave(const parser::EndChangeTeamStmt &);22  void Leave(const parser::SyncAllStmt &);23  void Leave(const parser::SyncImagesStmt &);24  void Leave(const parser::SyncMemoryStmt &);25  void Leave(const parser::SyncTeamStmt &);26  void Leave(const parser::NotifyWaitStmt &);27  void Leave(const parser::EventPostStmt &);28  void Leave(const parser::EventWaitStmt &);29  void Leave(const parser::LockStmt &);30  void Leave(const parser::UnlockStmt &);31  void Leave(const parser::CriticalStmt &);32  void Leave(const parser::ImageSelector &);33  void Leave(const parser::FormTeamStmt &);34 35  void Enter(const parser::CriticalConstruct &);36  void Enter(const parser::ChangeTeamConstruct &);37 38private:39  SemanticsContext &context_;40 41  void CheckNamesAreDistinct(const std::list<parser::CoarrayAssociation> &);42  void Say2(const parser::CharBlock &, parser::MessageFixedText &&,43      const parser::CharBlock &, parser::MessageFixedText &&);44};45} // namespace Fortran::semantics46#endif // FORTRAN_SEMANTICS_CHECK_COARRAY_H_47