lib/ffi/clang/lib/translation_unit.rb in ffi-clang-0.2.0 vs lib/ffi/clang/lib/translation_unit.rb in ffi-clang-0.2.1
- old
+ new
@@ -1,7 +1,8 @@
# Copyright, 2010-2012 by Jari Bakken.
# Copyright, 2013, by Samuel G. D. Williams. <http://www.codeotaku.com>
+# Copyright, 2014, by Masahiro Sano.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
@@ -24,13 +25,82 @@
module FFI
module Clang
module Lib
typedef :pointer, :CXTranslationUnit
- TranslationUnitFlags = enum [:none, :detailed_preprocessing_record, :incomplete, :precompiled_preamble, :cache_completion_results]
+ 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,
+ ]
+ SaveTranslationUnitFlags = enum [
+ :save_translation_unit_none, 0x0,
+ ]
+
+ SaveError = enum [
+ :none, 0,
+ :unknown, 1,
+ :translation_errors, 2,
+ :invalid_tu, 3
+ ]
+
+ ReparseFlags = enum [
+ :none, 0x0,
+ ]
+
+ enum :resource_usage_kind, [
+ :ast, 1,
+ :identifiers, 2,
+ :selectors, 3,
+ :global_completion_results, 4,
+ :source_manager_content_cache, 5,
+ :ast_side_tables, 6,
+ :source_manager_membuffer_malloc, 7,
+ :source_manager_membuffer_mmap, 8,
+ :external_ast_source_membuffer_malloc, 9,
+ :external_ast_source_membuffer_mmap, 10,
+ :preprocessor, 11,
+ :preprocessing_record, 12,
+ :sourcemanager_data_structures, 13,
+ :preprocessor_header_search, 14,
+ ]
+
+ class CXTUResourceUsage < FFI::Struct
+ layout(
+ :data, :pointer,
+ :numEntries, :uint,
+ :entries, :pointer
+ )
+ end
+
+ class CXTUResourceUsageEntry < FFI::Struct
+ layout(
+ :kind, :resource_usage_kind,
+ :amount, :ulong,
+ )
+ end
+
# Source code translation units:
attach_function :parse_translation_unit, :clang_parseTranslationUnit, [:CXIndex, :string, :pointer, :int, :pointer, :uint, :uint], :CXTranslationUnit
+ attach_function :create_translation_unit, :clang_createTranslationUnit, [:CXIndex, :string], :CXTranslationUnit
attach_function :dispose_translation_unit, :clang_disposeTranslationUnit, [:CXTranslationUnit], :void
+ attach_function :get_translation_unit_spelling, :clang_getTranslationUnitSpelling, [:CXTranslationUnit], :string
+
+ attach_function :default_editing_translation_unit_options, :clang_defaultEditingTranslationUnitOptions, [], :uint
+ attach_function :default_save_options, :clang_defaultSaveOptions, [:CXTranslationUnit], :uint
+ attach_function :save_translation_unit, :clang_saveTranslationUnit, [:CXTranslationUnit, :string, :uint], :int
+ attach_function :default_reparse_options, :clang_defaultReparseOptions, [:CXTranslationUnit], :uint
+ attach_function :reparse_translation_unit, :clang_reparseTranslationUnit, [:CXTranslationUnit, :uint, :pointer, :uint], :int
+
+ attach_function :resource_usage, :clang_getCXTUResourceUsage, [:CXTranslationUnit], CXTUResourceUsage.by_value
+ attach_function :dispose_resource_usage, :clang_disposeCXTUResourceUsage, [CXTUResourceUsage.by_value], :void
+ attach_function :resource_usage_name, :clang_getTUResourceUsageName, [:resource_usage_kind], :string
end
end
end