9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/BOAST/Language/Index.rb', line 9
def method_missing(m, *a, &b)
var = to_var
if var.type.kind_of?(CStruct) and var.type.members[m.to_s] then
return struct_reference(type.members[m.to_s])
elsif var.vector? and m.to_s[0] == 's' and lang != CUDA then
required_set = m.to_s[1..-1].chars.to_a
existing_set = [*('0'..'9'),*('a'..'z')].first(var.type.vector_length)
if required_set.length == required_set.uniq.length and (required_set - existing_set).empty? then
return var.copy(var.name+"."+m.to_s, :vector_length => m.to_s[1..-1].length) if lang == CL
@vector_index = existing_set.index(required_set[0])
return self
else
return super
end
else
return super
end
end
|