mirror of
https://github.com/Reuh/anselme.git
synced 2025-10-27 16:49:31 +00:00
Prefix type checkers with "is", stdlib cleanup
This commit is contained in:
parent
98917c2ca4
commit
7f71569e07
25 changed files with 163 additions and 160 deletions
|
|
@ -5,58 +5,58 @@ return {
|
|||
{ "pi", Number:new(math.pi) },
|
||||
|
||||
{
|
||||
"_<_", "(a::number, b::number)",
|
||||
"_<_", "(a::is number, b::is number)",
|
||||
function(state, a, b)
|
||||
if a.number < b.number then return b
|
||||
else return Boolean:new(false)
|
||||
end
|
||||
end
|
||||
},
|
||||
{ "_<_", "(a::equal(false), b::number)", function(state, a, b) return Boolean:new(false) end },
|
||||
{ "_<_", "(a::equal(false), b::is number)", function(state, a, b) return Boolean:new(false) end },
|
||||
{
|
||||
"_<=_", "(a::number, b::number)",
|
||||
"_<=_", "(a::is number, b::is number)",
|
||||
function(state, a, b)
|
||||
if a.number <= b.number then return b
|
||||
else return Boolean:new(false)
|
||||
end
|
||||
end
|
||||
},
|
||||
{ "_<=_", "(a::equal(false), b::number)", function(state, a, b) return Boolean:new(false) end },
|
||||
{ "_<=_", "(a::equal(false), b::is number)", function(state, a, b) return Boolean:new(false) end },
|
||||
{
|
||||
"_>_", "(a::number, b::number)",
|
||||
"_>_", "(a::is number, b::is number)",
|
||||
function(state, a, b)
|
||||
if a.number > b.number then return b
|
||||
else return Boolean:new(false)
|
||||
end
|
||||
end
|
||||
},
|
||||
{ "_>_", "(a::equal(false), b::number)", function(state, a, b) return Boolean:new(false) end },
|
||||
{ "_>_", "(a::equal(false), b::is number)", function(state, a, b) return Boolean:new(false) end },
|
||||
{
|
||||
"_>=_", "(a::number, b::number)",
|
||||
"_>=_", "(a::is number, b::is number)",
|
||||
function(state, a, b)
|
||||
if a.number >= b.number then return b
|
||||
else return Boolean:new(false)
|
||||
end
|
||||
end
|
||||
},
|
||||
{ "_>=_", "(a::equal(false), b::number)", function(state, a, b) return Boolean:new(false) end },
|
||||
{ "_+_", "(a::number, b::number)", function(state, a, b) return Number:new(a.number + b.number) end },
|
||||
{ "_-_", "(a::number, b::number)", function(state, a, b) return Number:new(a.number - b.number) end },
|
||||
{ "_*_", "(a::number, b::number)", function(state, a, b) return Number:new(a.number * b.number) end },
|
||||
{ "_/_", "(a::number, b::number)", function(state, a, b) return Number:new(a.number / b.number) end },
|
||||
{ "_//_", "(a::number, b::number)", function(state, a, b) return Number:new(math.floor(a.number / b.number)) end },
|
||||
{ "_%_", "(a::number, b::number)", function(state, a, b) return Number:new(a.number % b.number) end },
|
||||
{ "_^_", "(a::number, b::number)", function(state, a, b) return Number:new(a.number ^ b.number) end },
|
||||
{ "-_", "(a::number)", function(state, a) return Number:new(-a.number) end },
|
||||
{ "_>=_", "(a::equal(false), b::is number)", function(state, a, b) return Boolean:new(false) end },
|
||||
{ "_+_", "(a::is number, b::is number)", function(state, a, b) return Number:new(a.number + b.number) end },
|
||||
{ "_-_", "(a::is number, b::is number)", function(state, a, b) return Number:new(a.number - b.number) end },
|
||||
{ "_*_", "(a::is number, b::is number)", function(state, a, b) return Number:new(a.number * b.number) end },
|
||||
{ "_/_", "(a::is number, b::is number)", function(state, a, b) return Number:new(a.number / b.number) end },
|
||||
{ "_//_", "(a::is number, b::is number)", function(state, a, b) return Number:new(math.floor(a.number / b.number)) end },
|
||||
{ "_%_", "(a::is number, b::is number)", function(state, a, b) return Number:new(a.number % b.number) end },
|
||||
{ "_^_", "(a::is number, b::is number)", function(state, a, b) return Number:new(a.number ^ b.number) end },
|
||||
{ "-_", "(a::is number)", function(state, a) return Number:new(-a.number) end },
|
||||
|
||||
{ "rand", "(min::number, max::number)", function(state, min, max) return Number:new(math.random(min.number, max.number)) end },
|
||||
{ "rand", "(max::number)", function(state, max) return Number:new(math.random(max.number)) end },
|
||||
{ "rand", "(min::is number, max::is number)", function(state, min, max) return Number:new(math.random(min.number, max.number)) end },
|
||||
{ "rand", "(max::is number)", function(state, max) return Number:new(math.random(max.number)) end },
|
||||
{ "rand", "()", function(state) return Number:new(math.random()) end },
|
||||
|
||||
{ "floor", "(x::number)", function(state, x) return Number:new(math.floor(x.number)) end },
|
||||
{ "ceil", "(x::number)", function(state, x) return Number:new(math.ceil(x.number)) end },
|
||||
{ "floor", "(x::is number)", function(state, x) return Number:new(math.floor(x.number)) end },
|
||||
{ "ceil", "(x::is number)", function(state, x) return Number:new(math.ceil(x.number)) end },
|
||||
{
|
||||
"round", "(x::number, increment=1)",
|
||||
"round", "(x::is number, increment=1)",
|
||||
function(state, x, increment)
|
||||
local n = x.number / increment.number
|
||||
if n >= 0 then
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue