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 13namespace 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 22class AsmCond { 23public: 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