dotfiles from arch
This commit is contained in:
@@ -0,0 +1,128 @@
|
||||
local cat
|
||||
|
||||
cat.rule.default = function (self)
|
||||
self.isTruly = true
|
||||
self.truly = self
|
||||
self.falsy = cat.class 'never'
|
||||
self.view = self.name
|
||||
end
|
||||
|
||||
cat.rule.never = function (self)
|
||||
self.isTruly = nil
|
||||
end
|
||||
|
||||
cat.rule.any = function (self)
|
||||
self.isTruly = nil
|
||||
self.truly = cat.class 'truly'
|
||||
self.falsy = cat.boolean(false) | cat.class 'nil'
|
||||
end
|
||||
|
||||
cat.rule['nil'] = function (self)
|
||||
self.isTruly = false
|
||||
self.truly = cat.class 'never'
|
||||
self.falsy = self
|
||||
end
|
||||
|
||||
cat.rule.boolean = function (self)
|
||||
if self.value == true then
|
||||
self.isTruly = true
|
||||
self.truly = self
|
||||
self.falsy = cat.class 'never'
|
||||
elseif self.value == false then
|
||||
self.isTruly = false
|
||||
self.truly = cat.class 'never'
|
||||
self.falsy = self
|
||||
else
|
||||
self.isTruly = nil
|
||||
self.truly = cat.boolean(true)
|
||||
self.falsy = cat.boolean(false)
|
||||
end
|
||||
end
|
||||
|
||||
cat.rule.number = function (self)
|
||||
self.isTruly = true
|
||||
self.truly = self
|
||||
self.falsy = cat.class 'never'
|
||||
self.view = tostring(self.value)
|
||||
end
|
||||
|
||||
cat.rule.integer = function (self)
|
||||
self.isTruly = true
|
||||
self.truly = self
|
||||
self.falsy = cat.class 'never'
|
||||
self.view = tostring(self.value)
|
||||
end
|
||||
|
||||
cat.rule.string = function (self)
|
||||
self.isTruly = true
|
||||
self.truly = self
|
||||
self.falsy = cat.class 'never'
|
||||
self.view = cat.util.viewString(self.value, self.quotation)
|
||||
end
|
||||
|
||||
cat.rule.union = function (self)
|
||||
self.isTruly = function (union)
|
||||
local isTruly = union.subs[1].isTruly
|
||||
if isTruly == nil then
|
||||
return nil
|
||||
end
|
||||
if isTruly == true then
|
||||
for i = 2, #union.subs do
|
||||
if union.subs[i].isTruly ~= true then
|
||||
return nil
|
||||
end
|
||||
end
|
||||
return true
|
||||
else
|
||||
for i = 2, #union.subs do
|
||||
if union.subs[i].isTruly ~= false then
|
||||
return nil
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
return nil
|
||||
end
|
||||
self.truly = function (union)
|
||||
local new = cat.union()
|
||||
for i = 1, #union.subs do
|
||||
new:add(union.subs[i].truly)
|
||||
end
|
||||
if new:len() == 0 then
|
||||
return cat.class 'never'
|
||||
end
|
||||
if new:len() == 1 then
|
||||
return new[1]
|
||||
end
|
||||
return new
|
||||
end
|
||||
self.falsy = function (union)
|
||||
local new = cat.union()
|
||||
for i = 1, #union.subs do
|
||||
new:add(union.subs[i].falsy)
|
||||
end
|
||||
if new:len() == 0 then
|
||||
return cat.class 'never'
|
||||
end
|
||||
if new:len() == 1 then
|
||||
return new[1]
|
||||
end
|
||||
return new
|
||||
end
|
||||
self.view = function (union)
|
||||
local views = {}
|
||||
for i = 1, #union.subs do
|
||||
views[i] = union.subs[i].view
|
||||
end
|
||||
if #views == 0 then
|
||||
return 'never'
|
||||
end
|
||||
return table.concat(views, '|')
|
||||
end
|
||||
end
|
||||
|
||||
cat.custom.dofile.onReturn = function (context)
|
||||
local filename = context.args[1].asString
|
||||
local file = cat.files[filename]
|
||||
return file.returns[1]
|
||||
end
|
||||
Reference in New Issue
Block a user