Module: FFI::Clang::Lib
- Extended by:
- Library
- Defined in:
- lib/ffi/clang/lib.rb,
lib/ffi/clang/lib/file.rb,
lib/ffi/clang/lib/type.rb,
lib/ffi/clang/lib/index.rb,
lib/ffi/clang/lib/token.rb,
lib/ffi/clang/lib/cursor.rb,
lib/ffi/clang/lib/string.rb,
lib/ffi/clang/lib/comment.rb,
lib/ffi/clang/lib/diagnostic.rb,
lib/ffi/clang/lib/inclusions.rb,
lib/ffi/clang/lib/source_range.rb,
lib/ffi/clang/lib/clang_version.rb,
lib/ffi/clang/lib/code_completion.rb,
lib/ffi/clang/lib/printing_policy.rb,
lib/ffi/clang/lib/source_location.rb,
lib/ffi/clang/lib/translation_unit.rb,
lib/ffi/clang/lib/compilation_database.rb
Defined Under Namespace
Classes: CXCodeCompleteResults, CXComment, CXCompletionResult, CXCursor, CXCursorAndRangeVisitor, CXFileUniqueID, CXIndexOptions, CXPlatformAvailability, CXSourceLocation, CXSourceRange, CXString, CXTUResourceUsage, CXTUResourceUsageEntry, CXToken, CXType, CXUnsavedFile, CXVersion, TokensPointer
Constant Summary collapse
- CUSOR_TRANSLATION_UNIT =
In Clang 15 the enum value changed from 300 to 350!
Clang.clang_version < Gem::Version.new("15.0.0") ? 300 : 350
- DiagnosticDisplayOptions =
enum [ :source_location, 0x01, :column, 0x02, :source_ranges, 0x04, :option, 0x08, :category_id, 0x10, :category_name , 0x20, ]
- CodeCompleteFlags =
enum :code_complete_flags, [ :include_macros, 0x01, :include_code_patterns, 0x02, :include_brief_comments, 0x04 ]
- CompletionContext =
enum :completion_context, [ :unexposed, 0, :any_type, 1 << 0, :any_value, 1 << 1, :objc_object_value, 1 << 2, :objc_selector_value, 1 << 3, :cxx_class_type_value, 1 << 4, :dot_member_access, 1 << 5, :arrow_member_access, 1 << 6, :objc_property_access, 1 << 7, :enum_tag, 1 << 8, :union_tag, 1 << 9, :struct_tag, 1 << 10, :class_tag, 1 << 11, :namespace, 1 << 12, :nested_name_specifier, 1 << 13, :objc_interface, 1 << 14, :objc_protocol, 1 << 15, :objc_category, 1 << 16, :objc_instance_message, 1 << 17, :objc_class_message, 1 << 18, :objc_selector_name, 1 << 19, :macro_name, 1 << 20, :natural_language, 1 << 21, :unknown, ((1 << 22) - 1), ]
- PrintingPolicyProperty =
enum [:printing_policy_indentation, :printing_policy_suppress_specifiers, :printing_policy_suppress_tag_keyword, :printing_policy_include_tag_definition, :printing_policy_suppress_scope, :printing_policy_suppress_unwritten_scope, :printing_policy_suppress_initializers, :printing_policy_constant_array_aize_as_written, :printing_policy_anonymous_tag_locations, :printing_policy_suppress_strong_lifetime, :printing_policy_suppress_lifetime_qualifiers, :printing_policy_suppress_template_args_in_cxx_constructors, :printing_policy_bool, :printing_policy_restrict, :printing_policy_alignof, :printing_policy_underscore_alignof, :printing_policy_use_void_for_zero_params, :printing_policy_terse_output, :printing_policy_polish_for_declaration, :printing_policy_half, :printing_policy_msw_char, :printing_policy_include_new_lines, :printing_policy_msvc_formatting, :printing_policy_constants_as_written, :printing_policy_suppress_implicit_base, :printing_policy_fully_qualified_name, :printing_policy_last_property]
- TranslationUnitFlags =
enum [ :none, 0x0, :detailed_preprocessing_record, 0x01, :incomplete, 0x02, :precompiled_preamble, 0x04, :cache_completion_results, 0x08, :for_serialization, 0x10, :cxx_chained_pch, 0x20, :skip_function_bodies, 0x40, :include_brief_comments_in_code_completion, 0x80, :create_preamble_on_first_parse, 0x100, :keep_going, 0x200, :single_file_parse, 0x400, :limit_skip_function_bodies_to_preamble, 0x800, :include_attributed_type, 0x1000, :visit_implicit_attributes, 0x2000, :ignore_non_errors_from_included_files, 0x4000, :retain_excluded_conditional_blocks, 0x8000, ]
- SaveTranslationUnitFlags =
enum [ :save_translation_unit_none, 0x0, ]
- SaveError =
enum [ :none, 0, :unknown, 1, :translation_errors, 2, :invalid_translation_unit, 3 ]
- ReparseFlags =
enum [ :none, 0x0, ]
- ErrorCodes =
enum [ :cx_error_success, 0, :cx_error_failure, 1, :cx_error_crashed, 2, :cx_error_invalid_arguments, 3, :cx_error_ast_read_error, 4, ]
- CompilationDatabaseError =
enum [ :no_error, 0, :can_not_load_database, 1, ]
Class Method Summary collapse
-
.bitmask_from(enum, opts) ⇒ Object
Convert an options hash to a bitmask for libclang enums.
-
.extract_string(cxstring) ⇒ Object
Extract a Ruby string from a CXString and dispose of the CXString.
-
.opts_from(enum, bitmask) ⇒ Object
Convert a bitmask to an array of option symbols.
Class Method Details
.bitmask_from(enum, opts) ⇒ Object
Convert an options hash to a bitmask for libclang enums.
82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/ffi/clang/lib.rb', line 82 def self.bitmask_from(enum, opts) bitmask = 0 opts.each do |symbol| if int = enum[symbol] bitmask |= int else raise Error, "unknown option: #{symbol}, expected one of #{enum.symbols}" end end bitmask end |
.extract_string(cxstring) ⇒ Object
Extract a Ruby string from a CXString and dispose of the CXString.
24 25 26 27 28 29 |
# File 'lib/ffi/clang/lib/string.rb', line 24 def self.extract_string(cxstring) result = get_string(cxstring) dispose_string cxstring return result end |
.opts_from(enum, bitmask) ⇒ Object
Convert a bitmask to an array of option symbols.
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/ffi/clang/lib.rb', line 101 def self.opts_from(enum, bitmask) bit = 1 result = [] while bitmask != 0 if bitmask & 1 if symbol = enum[bit] result << symbol else raise(Error, "unknown values: #{bit}, expected one of #{enum.symbols}") end end bitmask >>= 1 bit <<= 1 end result end |