1//===- Successor.h - TableGen successor definitions -------------*- 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-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef MLIR_TABLEGEN_SUCCESSOR_H_
10#define MLIR_TABLEGEN_SUCCESSOR_H_
11
12#include "mlir/Support/LLVM.h"
13#include "mlir/TableGen/Constraint.h"
14
15namespace mlir {
16namespace tblgen {
17
18// Wrapper class providing helper methods for accessing Successor defined in
19// TableGen.
20class Successor : public Constraint {
21public:
22 using Constraint::Constraint;
23
24 static bool classof(const Constraint *c) {
25 return c->getKind() == CK_Successor;
26 }
27
28 // Returns true if this successor is variadic.
29 bool isVariadic() const;
30};
31
32// A struct bundling a successor's constraint and its name.
33struct NamedSuccessor {
34 // Returns true if this successor is variadic.
35 bool isVariadic() const { return constraint.isVariadic(); }
36
37 StringRef name;
38 Successor constraint;
39};
40
41} // namespace tblgen
42} // namespace mlir
43
44#endif // MLIR_TABLEGEN_SUCCESSOR_H_
45

source code of mlir/include/mlir/TableGen/Successor.h