Imported from ../lua-2.1.tar.gz.
[lua.git] / test / type.lua
blob3079391d12e2309d7b5d6b0b3810b1f4cd6e6a79
1 $debug
3 function check (object, class)
4 local v = next(object,nil);
5 while v ~= nil do
6 if class[v] == nil then
7 print("unknown field: " .. v)
8 elseif type(object[v]) ~= class[v].type then
9 print("wrong type for field " .. v)
10 end
11 v = next(object,v);
12 end
13 v = next(class,nil);
14 while v ~= nil do
15 if object[v] == nil then
16 if class[v].default ~= nil then
17 object[v] = class[v].default
18 else
19 print("field "..v.." not initialized")
20 end
21 end
22 v = next(class,v);
23 end
24 end
26 typeblock = {x = {default = 0, type = "number"},
27 y = {default = 0, type = "number"},
28 name = {type = "string"}
31 function block(t) check(t,typeblock) end
33 @block{ x = 7, name = "3"}
34 @block{ x = "7", name = "3"}
35 @block{ x = 7, name = 3}
36 @block{ x = 7}
37 @block{ x = 7, name = "3", bogus=3.14}