/3rd_party/llvm/lib/AsmParser/LLToken.h

https://code.google.com/p/softart/ · C Header · 188 lines · 147 code · 21 blank · 20 comment · 0 complexity · 3d1ecca2ccc124017ebc2302c047f2f3 MD5 · raw file

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