Class: FFI::Clang::ExpansionLocation

Inherits:
SourceLocation show all
Defined in:
lib/ffi/clang/source_location.rb

Instance Attribute Summary collapse

Attributes inherited from SourceLocation

#location

Instance Method Summary collapse

Methods inherited from SourceLocation

#==, #from_main_file?, #in_system_header?, #null?, null_location

Constructor Details

#initialize(location) ⇒ ExpansionLocation

Returns a new instance of ExpansionLocation.



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/ffi/clang/source_location.rb', line 46

def initialize(location)
	super(location)

	cxfile = MemoryPointer.new :pointer
	line   = MemoryPointer.new :uint
	column = MemoryPointer.new :uint
	offset = MemoryPointer.new :uint

	Lib::get_expansion_location(@location, cxfile, line, column, offset)

	@file = Lib.extract_string Lib.get_file_name(cxfile.read_pointer)
	@line = line.get_uint(0)
	@column = column.get_uint(0)
	@offset = offset.get_uint(0)
end

Instance Attribute Details

#columnObject (readonly)

Returns the value of attribute column.



44
45
46
# File 'lib/ffi/clang/source_location.rb', line 44

def column
  @column
end

#fileObject (readonly)

Returns the value of attribute file.



44
45
46
# File 'lib/ffi/clang/source_location.rb', line 44

def file
  @file
end

#lineObject (readonly)

Returns the value of attribute line.



44
45
46
# File 'lib/ffi/clang/source_location.rb', line 44

def line
  @line
end

#offsetObject (readonly)

Returns the value of attribute offset.



44
45
46
# File 'lib/ffi/clang/source_location.rb', line 44

def offset
  @offset
end

Instance Method Details

#as_stringObject



62
63
64
# File 'lib/ffi/clang/source_location.rb', line 62

def as_string
	"#{@file}:#{@line}:#{@column}:#{@offset}"
end

#to_sObject



66
67
68
# File 'lib/ffi/clang/source_location.rb', line 66

def to_s
	"ExpansionLocation <#{self.as_string}>"
end