text: //===- AsmCond.h - Assembly file conditional assembly  ----------*- C++ -*-===//
  //
  // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  // See https://llvm.org/LICENSE.txt for license information.
  // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  //
  //===----------------------------------------------------------------------===//
  
  #ifndef LLVM_MC_MCPARSER_ASMCOND_H
  #define LLVM_MC_MCPARSER_ASMCOND_H
  
  namespace llvm {
  
  /// AsmCond - Class to support conditional assembly
  ///
  /// The conditional assembly feature (.if, .else, .elseif and .endif) is
  /// implemented with AsmCond that tells us what we are in the middle of
  /// processing.  Ignore can be either true or false.  When true we are ignoring
  /// the block of code in the middle of a conditional.
  
  class AsmCond {
  public:
    enum ConditionalAssemblyType {
      NoCond,     // no conditional is being processed
      IfCond,     // inside if conditional
      ElseIfCond, // inside elseif conditional
      ElseCond    // inside else conditional
    };
  
    ConditionalAssemblyType TheCond = NoCond;
    bool CondMet = false;
    bool Ignore = false;
  };
  
  } // end namespace llvm
  
  #endif // LLVM_MC_MCPARSER_ASMCOND_H
  