The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Sample Code  0.1 20120518
animals.lua
Go to the documentation of this file.
1 ---- Copyright 2012 Simon Dales
2 --
3 -- This work may be distributed and/or modified under the
4 -- conditions of the LaTeX Project Public License, either version 1.3
5 -- of this license or (at your option) any later version.
6 -- The latest version of this license is in
7 -- http://www.latex-project.org/lppl.txt
8 --
9 -- This work has the LPPL maintenance status `maintained'.
10 --
11 -- The Current Maintainer of this work is Simon Dales.
12 --
13 
14 --[[!
15  \file
16  \brief test some classes
17 
18  ]]
19 
20 require 'class'
21 
22 --! \brief write to stdout
23 function TIO_write(Str)
24  if Str then
25  io.write(Str)
26  end
27 end
28 
29 --! \brief writeln to stdout
30 function TIO_writeln(Str)
31  if Str then
32  io.write(Str)
33  end
34  io.write('\n')
35 end
36 
37 --! \class Animal
38 --! \brief a base class
39 Animal = class()
40 
41 --! \brief constructor
42 function Animal.init(this)
43  this:setKind('animal')
44 end
45 
46 --! \brief set kind of object
47 function Animal.setKind(this,Kind)
48  this.kind = Kind
49 end
50 
51 --! \brief say the call of this animal
52 function Animal.call(this)
53  local speigel = this.speigel
54  if speigel then
55  speigel = ' says "' .. speigel .. '"'
56  else
57  speigel = ' <undefined call>'
58  end
59 
60  TIO_writeln(this.kind .. speigel)
61 end
62 
63 --! \brief an abstract bird
64 Bird = class(Animal)
65 
66 --! \brief constructor
67 function Bird.init(this)
68  Animal.init(this)
69  this:setKind('bird')
70 end
71 
72 --! \brief a subclassed bird
73 Pigeon = class(Bird)
74 
75 --! \brief constructor
76 function Pigeon.init(this)
77  Bird.init(this)
78  this:setKind('pigeon')
79  this.speigel = 'oh my poor toe Betty'
80 end
81 
82 --! \brief another subclassed bird
83 RedKite = class(Bird)
84 
85 --! \brief constructor
86 function RedKite.init(this)
87  Bird.init(this)
88  this:setKind('red kite')
89  this.speigel = 'weee-ooo ee oo ee oo ee oo'
90 end
91 
92 --! \brief a base mammal
93 Mammal = class(Animal)
94 
95 --! \brief constructor
96 function Mammal.init(this)
97  Animal.init(this)
98 end
99 
100 --! \brief a subclassed mammal
101 Cat = class(Mammal)
102 
103 --! \brief constructor
104 function Cat.init(this)
105  Mammal.init(this)
106  this:setKind('cat')
107  this.speigel = 'meow'
108 end
109 
110 --! \brief another subclassed mammal
111 Dog = class(Mammal)
112 
113 --! \brief constructor
114 function Dog.init(this)
115  Mammal.init(this)
116  this:setKind('dog')
117  this.speigel = 'woof'
118 end
119 
120 --eof

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.