Home | History | Annotate | Line # | Download | only in MCParser
      1 //===- AsmCond.h - Assembly file conditional assembly  ----------*- 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 LLVM_MC_MCPARSER_ASMCOND_H
     10 #define LLVM_MC_MCPARSER_ASMCOND_H
     11 
     12 namespace llvm {
     13 
     14 /// AsmCond - Class to support conditional assembly
     15 ///
     16 /// The conditional assembly feature (.if, .else, .elseif and .endif) is
     17 /// implemented with AsmCond that tells us what we are in the middle of
     18 /// processing.  Ignore can be either true or false.  When true we are ignoring
     19 /// the block of code in the middle of a conditional.
     20 
     21 class AsmCond {
     22 public:
     23   enum ConditionalAssemblyType {
     24     NoCond,     // no conditional is being processed
     25     IfCond,     // inside if conditional
     26     ElseIfCond, // inside elseif conditional
     27     ElseCond    // inside else conditional
     28   };
     29 
     30   ConditionalAssemblyType TheCond = NoCond;
     31   bool CondMet = false;
     32   bool Ignore = false;
     33 };
     34 
     35 } // end namespace llvm
     36 
     37 #endif // LLVM_MC_MCPARSER_ASMCOND_H
     38