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 
AsmCond()35   AsmCond() : TheCond(NoCond), CondMet(false), Ignore(false) {}
36 };
37 
38 } // end namespace llvm
39 
40 #endif
41