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