diff options
author | Lua Team <team@lua.org> | 1994-07-08 12:00:00 +0000 |
---|---|---|
committer | repogen <> | 1994-07-08 12:00:00 +0000 |
commit | 944fc7d7d95575f2b8023c1f3d4ac19e1369fc76 (patch) | |
tree | eabf0822f2058229cd0d49c7928683b8cf0ed88e /test/type.lua | |
parent | 8b5979a7e8b9732aa2883d2384f853d87b594770 (diff) | |
download | lua-github-1.1.tar.gz |
Lua 1.11.1
Diffstat (limited to 'test/type.lua')
-rw-r--r-- | test/type.lua | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/test/type.lua b/test/type.lua new file mode 100644 index 00000000..5078920b --- /dev/null +++ b/test/type.lua @@ -0,0 +1,37 @@ +$debug + +function check (object, class) + local v = next(object,nil); + while v ~= nil do + if class[v] = nil then + print("unknown field: " .. v) + elseif type(object[v]) ~= class[v].type then + print("wrong type for field " .. v) + end + v = next(object,v); + end + v = next(class,nil); + while v ~= nil do + if object[v] = nil then + if class[v].default ~= nil then + object[v] = class[v].default + else + print("field "..v.." not initialized") + end + end + v = next(class,v); + end +end + +typeblock = @{x = @{default = 0, type = "number"}, + y = @{default = 0, type = "number"}, + name = @{type = "string"} + } + +function block(t) check(t,typeblock) end + +@block{ x = 7, name = "3"} +@block{ x = "7", name = "3"} +@block{ x = 7, name = 3} +@block{ x = 7} +@block{ x = 7, name = "3", bogus=3.14} |