//===- 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