test/chimaera.sod: Fix the example so that it compiles.
[sod] / test / chimaera.sod
CommitLineData
a07d8d00
MW
1/* -*-sod-*-
2 *
3 * A simple SOD module for testing.
4 */
5
6code c : includes {
7#include <stdio.h>
8#include "chimaera.h"
9}
10
11code h : includes {
12#include "sod.h"
13}
14
a07d8d00
MW
15[nick = nml, link = SodObject]
16class Animal : SodObject {
17 int tickles = 0;
18
19 void tickle(void) { }
20
21 [role = before]
22 void nml.tickle(void) { me->nml.tickles++; }
23}
24
25class Lion : Animal {
26 void bite(void) { puts("Munch!"); }
0bc67e51 27 void nml.tickle(void) { me->_vt->lion.bite(me); }
a07d8d00
MW
28}
29
30class Goat : Animal {
31 void butt(void) { puts("Bonk!"); }
0bc67e51 32 void nml.tickle(void) { me->_vt->goat.butt(me); }
a07d8d00
MW
33}
34
35class Serpent : Animal {
36 void hiss(void) { puts("Sssss!"); }
37 void bite(void) { puts("Nom!"); }
38 void nml.tickle(void) {
0bc67e51
MW
39 if (SERPENT__CONV_NML(me)->nml.tickles > 2) me->_vt->serpent.bite(me);
40 else me->_vt->serpent.hiss(me);
a07d8d00
MW
41 }
42}
43
44[nick = sir, link = Animal]
45class Chimaera : Lion, Goat, Serpent {
46}
47