Home | History | Annotate | Download | only in MCParser
      1 //===- AsmCond.h - Assembly file conditional assembly  ----------*- C++ -*-===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 
     10 #ifndef LLVM_MC_MCPARSER_ASMCOND_H
     11 #define LLVM_MC_MCPARSER_ASMCOND_H
     12 
     13 namespace llvm {
     14 
     15 /// AsmCond - Class to support conditional assembly
     16 ///
     17 /// The conditional assembly feature (.if, .else, .elseif and .endif) is
     18 /// implemented with AsmCond that tells us what we are in the middle of
     19 /// processing.  Ignore can be either true or false.  When true we are ignoring
     20 /// the block of code in the middle of a conditional.
     21 
     22 class AsmCond {
     23 public:
     24   enum ConditionalAssemblyType {
     25     NoCond,     // no conditional is being processed
     26     IfCond,     // inside if conditional
     27     ElseIfCond, // inside elseif conditional
     28     ElseCond    // inside else conditional
     29   };
     30 
     31   ConditionalAssemblyType TheCond;
     32   bool CondMet;
     33   bool Ignore;
     34 
     35   AsmCond() : TheCond(NoCond), CondMet(false), Ignore(false) {}
     36 };
     37 
     38 } // end namespace llvm
     39 
     40 #endif
     41