]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/llvm/include/llvm/MC/MCParser/AsmCond.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / llvm / include / llvm / MC / MCParser / AsmCond.h
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