1*f4a2713aSLionel Sambuc //===- LLToken.h - Token Codes for LLVM Assembly Files ----------*- C++ -*-===// 2*f4a2713aSLionel Sambuc // 3*f4a2713aSLionel Sambuc // The LLVM Compiler Infrastructure 4*f4a2713aSLionel Sambuc // 5*f4a2713aSLionel Sambuc // This file is distributed under the University of Illinois Open Source 6*f4a2713aSLionel Sambuc // License. See LICENSE.TXT for details. 7*f4a2713aSLionel Sambuc // 8*f4a2713aSLionel Sambuc //===----------------------------------------------------------------------===// 9*f4a2713aSLionel Sambuc // 10*f4a2713aSLionel Sambuc // This file defines the enums for the .ll lexer. 11*f4a2713aSLionel Sambuc // 12*f4a2713aSLionel Sambuc //===----------------------------------------------------------------------===// 13*f4a2713aSLionel Sambuc 14*f4a2713aSLionel Sambuc #ifndef LIBS_ASMPARSER_LLTOKEN_H 15*f4a2713aSLionel Sambuc #define LIBS_ASMPARSER_LLTOKEN_H 16*f4a2713aSLionel Sambuc 17*f4a2713aSLionel Sambuc namespace llvm { 18*f4a2713aSLionel Sambuc namespace lltok { 19*f4a2713aSLionel Sambuc enum Kind { 20*f4a2713aSLionel Sambuc // Markers 21*f4a2713aSLionel Sambuc Eof, Error, 22*f4a2713aSLionel Sambuc 23*f4a2713aSLionel Sambuc // Tokens with no info. 24*f4a2713aSLionel Sambuc dotdotdot, // ... 25*f4a2713aSLionel Sambuc equal, comma, // = , 26*f4a2713aSLionel Sambuc star, // * 27*f4a2713aSLionel Sambuc lsquare, rsquare, // [ ] 28*f4a2713aSLionel Sambuc lbrace, rbrace, // { } 29*f4a2713aSLionel Sambuc less, greater, // < > 30*f4a2713aSLionel Sambuc lparen, rparen, // ( ) 31*f4a2713aSLionel Sambuc backslash, // \ (not /) 32*f4a2713aSLionel Sambuc exclaim, // ! 33*f4a2713aSLionel Sambuc hash, // # 34*f4a2713aSLionel Sambuc 35*f4a2713aSLionel Sambuc kw_x, 36*f4a2713aSLionel Sambuc kw_true, kw_false, 37*f4a2713aSLionel Sambuc kw_declare, kw_define, 38*f4a2713aSLionel Sambuc kw_global, kw_constant, 39*f4a2713aSLionel Sambuc 40*f4a2713aSLionel Sambuc kw_private, kw_linker_private, kw_linker_private_weak, 41*f4a2713aSLionel Sambuc kw_internal, 42*f4a2713aSLionel Sambuc kw_linkonce, kw_linkonce_odr, 43*f4a2713aSLionel Sambuc kw_weak, kw_weak_odr, kw_appending, 44*f4a2713aSLionel Sambuc kw_dllimport, kw_dllexport, kw_common, kw_available_externally, 45*f4a2713aSLionel Sambuc kw_default, kw_hidden, kw_protected, 46*f4a2713aSLionel Sambuc kw_unnamed_addr, 47*f4a2713aSLionel Sambuc kw_externally_initialized, 48*f4a2713aSLionel Sambuc kw_extern_weak, 49*f4a2713aSLionel Sambuc kw_external, kw_thread_local, 50*f4a2713aSLionel Sambuc kw_localdynamic, kw_initialexec, kw_localexec, 51*f4a2713aSLionel Sambuc kw_zeroinitializer, 52*f4a2713aSLionel Sambuc kw_undef, kw_null, 53*f4a2713aSLionel Sambuc kw_to, 54*f4a2713aSLionel Sambuc kw_tail, 55*f4a2713aSLionel Sambuc kw_target, 56*f4a2713aSLionel Sambuc kw_triple, 57*f4a2713aSLionel Sambuc kw_unwind, 58*f4a2713aSLionel Sambuc kw_deplibs, // FIXME: Remove in 4.0 59*f4a2713aSLionel Sambuc kw_datalayout, 60*f4a2713aSLionel Sambuc kw_volatile, 61*f4a2713aSLionel Sambuc kw_atomic, 62*f4a2713aSLionel Sambuc kw_unordered, kw_monotonic, kw_acquire, kw_release, kw_acq_rel, kw_seq_cst, 63*f4a2713aSLionel Sambuc kw_singlethread, 64*f4a2713aSLionel Sambuc kw_nnan, 65*f4a2713aSLionel Sambuc kw_ninf, 66*f4a2713aSLionel Sambuc kw_nsz, 67*f4a2713aSLionel Sambuc kw_arcp, 68*f4a2713aSLionel Sambuc kw_fast, 69*f4a2713aSLionel Sambuc kw_nuw, 70*f4a2713aSLionel Sambuc kw_nsw, 71*f4a2713aSLionel Sambuc kw_exact, 72*f4a2713aSLionel Sambuc kw_inbounds, 73*f4a2713aSLionel Sambuc kw_align, 74*f4a2713aSLionel Sambuc kw_addrspace, 75*f4a2713aSLionel Sambuc kw_section, 76*f4a2713aSLionel Sambuc kw_alias, 77*f4a2713aSLionel Sambuc kw_module, 78*f4a2713aSLionel Sambuc kw_asm, 79*f4a2713aSLionel Sambuc kw_sideeffect, 80*f4a2713aSLionel Sambuc kw_alignstack, 81*f4a2713aSLionel Sambuc kw_inteldialect, 82*f4a2713aSLionel Sambuc kw_gc, 83*f4a2713aSLionel Sambuc kw_prefix, 84*f4a2713aSLionel Sambuc kw_c, 85*f4a2713aSLionel Sambuc 86*f4a2713aSLionel Sambuc kw_cc, kw_ccc, kw_fastcc, kw_coldcc, 87*f4a2713aSLionel Sambuc kw_intel_ocl_bicc, 88*f4a2713aSLionel Sambuc kw_x86_stdcallcc, kw_x86_fastcallcc, kw_x86_thiscallcc, 89*f4a2713aSLionel Sambuc kw_arm_apcscc, kw_arm_aapcscc, kw_arm_aapcs_vfpcc, 90*f4a2713aSLionel Sambuc kw_msp430_intrcc, 91*f4a2713aSLionel Sambuc kw_ptx_kernel, kw_ptx_device, 92*f4a2713aSLionel Sambuc kw_spir_kernel, kw_spir_func, 93*f4a2713aSLionel Sambuc kw_x86_64_sysvcc, kw_x86_64_win64cc, 94*f4a2713aSLionel Sambuc kw_webkit_jscc, kw_anyregcc, 95*f4a2713aSLionel Sambuc 96*f4a2713aSLionel Sambuc // Attributes: 97*f4a2713aSLionel Sambuc kw_attributes, 98*f4a2713aSLionel Sambuc kw_alwaysinline, 99*f4a2713aSLionel Sambuc kw_sanitize_address, 100*f4a2713aSLionel Sambuc kw_builtin, 101*f4a2713aSLionel Sambuc kw_byval, 102*f4a2713aSLionel Sambuc kw_cold, 103*f4a2713aSLionel Sambuc kw_inlinehint, 104*f4a2713aSLionel Sambuc kw_inreg, 105*f4a2713aSLionel Sambuc kw_minsize, 106*f4a2713aSLionel Sambuc kw_naked, 107*f4a2713aSLionel Sambuc kw_nest, 108*f4a2713aSLionel Sambuc kw_noalias, 109*f4a2713aSLionel Sambuc kw_nobuiltin, 110*f4a2713aSLionel Sambuc kw_nocapture, 111*f4a2713aSLionel Sambuc kw_noduplicate, 112*f4a2713aSLionel Sambuc kw_noimplicitfloat, 113*f4a2713aSLionel Sambuc kw_noinline, 114*f4a2713aSLionel Sambuc kw_nonlazybind, 115*f4a2713aSLionel Sambuc kw_noredzone, 116*f4a2713aSLionel Sambuc kw_noreturn, 117*f4a2713aSLionel Sambuc kw_nounwind, 118*f4a2713aSLionel Sambuc kw_optnone, 119*f4a2713aSLionel Sambuc kw_optsize, 120*f4a2713aSLionel Sambuc kw_readnone, 121*f4a2713aSLionel Sambuc kw_readonly, 122*f4a2713aSLionel Sambuc kw_returned, 123*f4a2713aSLionel Sambuc kw_returns_twice, 124*f4a2713aSLionel Sambuc kw_signext, 125*f4a2713aSLionel Sambuc kw_ssp, 126*f4a2713aSLionel Sambuc kw_sspreq, 127*f4a2713aSLionel Sambuc kw_sspstrong, 128*f4a2713aSLionel Sambuc kw_sret, 129*f4a2713aSLionel Sambuc kw_sanitize_thread, 130*f4a2713aSLionel Sambuc kw_sanitize_memory, 131*f4a2713aSLionel Sambuc kw_uwtable, 132*f4a2713aSLionel Sambuc kw_zeroext, 133*f4a2713aSLionel Sambuc 134*f4a2713aSLionel Sambuc kw_type, 135*f4a2713aSLionel Sambuc kw_opaque, 136*f4a2713aSLionel Sambuc 137*f4a2713aSLionel Sambuc kw_eq, kw_ne, kw_slt, kw_sgt, kw_sle, kw_sge, kw_ult, kw_ugt, kw_ule, 138*f4a2713aSLionel Sambuc kw_uge, kw_oeq, kw_one, kw_olt, kw_ogt, kw_ole, kw_oge, kw_ord, kw_uno, 139*f4a2713aSLionel Sambuc kw_ueq, kw_une, 140*f4a2713aSLionel Sambuc 141*f4a2713aSLionel Sambuc // atomicrmw operations that aren't also instruction keywords. 142*f4a2713aSLionel Sambuc kw_xchg, kw_nand, kw_max, kw_min, kw_umax, kw_umin, 143*f4a2713aSLionel Sambuc 144*f4a2713aSLionel Sambuc // Instruction Opcodes (Opcode in UIntVal). 145*f4a2713aSLionel Sambuc kw_add, kw_fadd, kw_sub, kw_fsub, kw_mul, kw_fmul, 146*f4a2713aSLionel Sambuc kw_udiv, kw_sdiv, kw_fdiv, 147*f4a2713aSLionel Sambuc kw_urem, kw_srem, kw_frem, kw_shl, kw_lshr, kw_ashr, 148*f4a2713aSLionel Sambuc kw_and, kw_or, kw_xor, kw_icmp, kw_fcmp, 149*f4a2713aSLionel Sambuc 150*f4a2713aSLionel Sambuc kw_phi, kw_call, 151*f4a2713aSLionel Sambuc kw_trunc, kw_zext, kw_sext, kw_fptrunc, kw_fpext, kw_uitofp, kw_sitofp, 152*f4a2713aSLionel Sambuc kw_fptoui, kw_fptosi, kw_inttoptr, kw_ptrtoint, kw_bitcast, 153*f4a2713aSLionel Sambuc kw_addrspacecast, 154*f4a2713aSLionel Sambuc kw_select, kw_va_arg, 155*f4a2713aSLionel Sambuc 156*f4a2713aSLionel Sambuc kw_landingpad, kw_personality, kw_cleanup, kw_catch, kw_filter, 157*f4a2713aSLionel Sambuc 158*f4a2713aSLionel Sambuc kw_ret, kw_br, kw_switch, kw_indirectbr, kw_invoke, kw_resume, 159*f4a2713aSLionel Sambuc kw_unreachable, 160*f4a2713aSLionel Sambuc 161*f4a2713aSLionel Sambuc kw_alloca, kw_load, kw_store, kw_fence, kw_cmpxchg, kw_atomicrmw, 162*f4a2713aSLionel Sambuc kw_getelementptr, 163*f4a2713aSLionel Sambuc 164*f4a2713aSLionel Sambuc kw_extractelement, kw_insertelement, kw_shufflevector, 165*f4a2713aSLionel Sambuc kw_extractvalue, kw_insertvalue, kw_blockaddress, 166*f4a2713aSLionel Sambuc 167*f4a2713aSLionel Sambuc // Unsigned Valued tokens (UIntVal). 168*f4a2713aSLionel Sambuc GlobalID, // @42 169*f4a2713aSLionel Sambuc LocalVarID, // %42 170*f4a2713aSLionel Sambuc AttrGrpID, // #42 171*f4a2713aSLionel Sambuc 172*f4a2713aSLionel Sambuc // String valued tokens (StrVal). 173*f4a2713aSLionel Sambuc LabelStr, // foo: 174*f4a2713aSLionel Sambuc GlobalVar, // @foo @"foo" 175*f4a2713aSLionel Sambuc LocalVar, // %foo %"foo" 176*f4a2713aSLionel Sambuc MetadataVar, // !foo 177*f4a2713aSLionel Sambuc StringConstant, // "foo" 178*f4a2713aSLionel Sambuc 179*f4a2713aSLionel Sambuc // Type valued tokens (TyVal). 180*f4a2713aSLionel Sambuc Type, 181*f4a2713aSLionel Sambuc 182*f4a2713aSLionel Sambuc APFloat, // APFloatVal 183*f4a2713aSLionel Sambuc APSInt // APSInt 184*f4a2713aSLionel Sambuc }; 185*f4a2713aSLionel Sambuc } // end namespace lltok 186*f4a2713aSLionel Sambuc } // end namespace llvm 187*f4a2713aSLionel Sambuc 188*f4a2713aSLionel Sambuc #endif 189