mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			26 lines
		
	
	
		
			429 B
		
	
	
	
		
			Perl
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			429 B
		
	
	
	
		
			Perl
		
	
	
	
	
	
struct Vec { data : float[3] }
 | 
						|
 | 
						|
 | 
						|
local get = {}
 | 
						|
get.x = terra(self : &Vec)
 | 
						|
    return self.data[0]
 | 
						|
end
 | 
						|
get.y = macro(function(self)
 | 
						|
    return `self.data[1]
 | 
						|
end)
 | 
						|
    
 | 
						|
Vec.metamethods.__entrymissing = macro(function(name,self)
 | 
						|
    return `[get[name]](&self) 
 | 
						|
end)
 | 
						|
 | 
						|
terra bar()
 | 
						|
    var a = Vec { array(1.f,2.f,3.f) }
 | 
						|
    a.y = a.y + 1
 | 
						|
    var pa = &a
 | 
						|
    return a.x + a.y + pa.x
 | 
						|
end
 | 
						|
 | 
						|
local test = require("test")
 | 
						|
test.eq(bar(),5)
 | 
						|
 |