1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
local demo_list = {}
local function load_demo(name)
local record = require('demos/' .. name)
local group, info = record[1], record[2]
local section = demo_list[group]
if not section then
section = {}
demo_list[group] = section
end
local i = #section
for k, v in ipairs(info) do
section[i+k] = v
end
end
local demo_files = {
'fft', 'bspline', 'wave-particle', 'plot', 'fractals', 'ode', 'nlinfit', 'integ', 'anim', 'linfit', 'contour', 'svg', 'graphics', 'sf', 'vegas', 'gdt-lm'}
for i, name in ipairs(demo_files) do
load_demo(name)
end
local function print_demos_list()
for group, t in pairs(demo_list) do
io.write('*** ', group, '\n')
for k, v in ipairs(t) do
print(v.name .. ' - ' .. v.description)
end
print ''
print("***************************************************")
end
print("Type demo(<name>) to execute the demo.")
print("For example type demo(\"wave\") for wave particle demo.")
print ''
end
local function load_demo(name)
for group, t in pairs(demo_list) do
for k, entry in ipairs(t) do
if entry.name == name then
return entry
end
end
end
end
return {
list = print_demos_list,
load = load_demo,
}
|