Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/gui/src/tolua/lua/namespace.lua @ 2030

Last change on this file since 2030 was 1650, checked in by rgrieder, 16 years ago

added preliminary automatic creation of tolua generator that creates the actual executable
(please don't ask about the egg-hen question…)

File size: 1.2 KB
Line 
1-- tolua: namespace class
2-- Written by Waldemar Celes
3-- TeCGraf/PUC-Rio
4-- Jul 2003
5-- $Id: $
6
7-- This code is free software; you can redistribute it and/or modify it.
8-- The software provided hereunder is on an "as is" basis, and
9-- the author has no obligation to provide maintenance, support, updates,
10-- enhancements, or modifications.
11
12
13-- Namespace class
14-- Represents a namesapce definition.
15-- Stores the following fields:
16--    name = class name
17--    {i}  = list of members
18classNamespace = {
19 classtype = 'namespace',
20 name = '',
21}
22classNamespace.__index = classNamespace
23setmetatable(classNamespace,classModule)
24
25-- Print method
26function classNamespace:print (ident,close)
27 print(ident.."Namespace{")
28 print(ident.." name = '"..self.name.."',")
29 local i=1
30 while self[i] do
31  self[i]:print(ident.." ",",")
32  i = i+1
33 end
34 print(ident.."}"..close)
35end
36
37-- Internal constructor
38function _Namespace (t)
39 setmetatable(t,classNamespace)
40 append(t)
41 return t
42end
43
44-- Constructor
45-- Expects the name and the body of the namespace.
46function Namespace (n,b)
47 local c = _Namespace(_Container{name=n})
48 push(c)
49 c:parse(strsub(b,2,strlen(b)-1)) -- eliminate braces
50 pop()
51end
52
Note: See TracBrowser for help on using the repository browser.