64 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| -- tolua: define class
 | |
| -- Written by Waldemar Celes
 | |
| -- TeCGraf/PUC-Rio
 | |
| -- Jul 1998
 | |
| -- $Id: define.lua 1004 2006-02-27 13:03:20Z lindquist $
 | |
| 
 | |
| -- This code is free software; you can redistribute it and/or modify it.
 | |
| -- The software provided hereunder is on an "as is" basis, and
 | |
| -- the author has no obligation to provide maintenance, support, updates,
 | |
| -- enhancements, or modifications.
 | |
| 
 | |
| 
 | |
| -- Define class
 | |
| -- Represents a numeric const definition
 | |
| -- The following filds are stored:
 | |
| --   name = constant name
 | |
| classDefine = {
 | |
|  name = '',
 | |
| }
 | |
| classDefine.__index = classDefine
 | |
| setmetatable(classDefine,classFeature)
 | |
| 
 | |
| -- register define
 | |
| function classDefine:register (pre)
 | |
| 	if not self:check_public_access() then
 | |
| 		return
 | |
| 	end
 | |
| 
 | |
|  pre = pre or ''
 | |
|  output(pre..'tolua_constant(tolua_S,(char*)"'..self.lname..'",'..self.name..');')
 | |
| end
 | |
| 
 | |
| -- Print method
 | |
| function classDefine:print (ident,close)
 | |
|  print(ident.."Define{")
 | |
|  print(ident.." name = '"..self.name.."',")
 | |
|  print(ident.." lname = '"..self.lname.."',")
 | |
|  print(ident.."}"..close)
 | |
| end
 | |
| 
 | |
| 
 | |
| -- Internal constructor
 | |
| function _Define (t)
 | |
|  setmetatable(t,classDefine)
 | |
|  t:buildnames()
 | |
| 
 | |
|  if t.name == '' then
 | |
|   error("#invalid define")
 | |
|  end
 | |
| 
 | |
|  append(t)
 | |
|  return t
 | |
| end
 | |
| 
 | |
| -- Constructor
 | |
| -- Expects a string representing the constant name
 | |
| function Define (n)
 | |
|  return _Define{
 | |
|   name = n
 | |
|  }
 | |
| end
 | |
| 
 | |
| 
 |