diff options
Diffstat (limited to 'tolua++-1.0.93/src/bin/lua/feature.lua')
-rw-r--r-- | tolua++-1.0.93/src/bin/lua/feature.lua | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/tolua++-1.0.93/src/bin/lua/feature.lua b/tolua++-1.0.93/src/bin/lua/feature.lua deleted file mode 100644 index 042b5d28e..000000000 --- a/tolua++-1.0.93/src/bin/lua/feature.lua +++ /dev/null @@ -1,139 +0,0 @@ --- tolua: abstract feature class --- Written by Waldemar Celes --- TeCGraf/PUC-Rio --- Jul 1998 --- $Id: $ - --- This code is free software; you can redistribute it and/or modify it. --- The software provided hereunder is on an "as is" basis, and --- the author has no obligation to provide maintenance, support, updates, --- enhancements, or modifications. - - --- Feature class --- Represents the base class of all mapped feature. -classFeature = { -} -classFeature.__index = classFeature - --- write support code -function classFeature:supcode () -end - --- output tag -function classFeature:decltype () -end - --- register feature -function classFeature:register (pre) -end - --- translate verbatim -function classFeature:preamble () -end - --- check if it is a variable -function classFeature:isvariable () - return false -end - --- check if it requires collection -function classFeature:requirecollection (t) - return false -end - --- build names -function classFeature:buildnames () - if self.name and self.name~='' then - local n = split(self.name,'@') - self.name = n[1] - self.name = string.gsub(self.name, ":%d*$", "") - if not n[2] then - n[2] = applyrenaming(n[1]) - end - self.lname = n[2] or gsub(n[1],"%[.-%]","") - self.lname = string.gsub(self.lname, ":%d*$", "") - self.original_name = self.name - self.lname = clean_template(self.lname) - end - if not self.is_parameter then - self.name = getonlynamespace() .. self.name - end - - local parent = classContainer.curr - if parent then - self.access = parent.curr_member_access - self.global_access = self:check_public_access() - else - end -end - -function classFeature:check_public_access() - - if type(self.global_access) == "boolean" then - return self.global_access - end - - if self.access and self.access ~= 0 then - return false - end - - local parent = classContainer.curr - while parent do - if parent.access and parent.access ~= 0 then - return false - end - parent = parent.prox - end - return true -end - -function clean_template(t) - - return string.gsub(t, "[<>:, %*]", "_") -end - --- check if feature is inside a container definition --- it returns the container class name or nil. -function classFeature:incontainer (which) - if self.parent then - local parent = self.parent - while parent do - if parent.classtype == which then - return parent.name - end - parent = parent.parent - end - end - return nil -end - -function classFeature:inclass () - return self:incontainer('class') -end - -function classFeature:inmodule () - return self:incontainer('module') -end - -function classFeature:innamespace () - return self:incontainer('namespace') -end - --- return C binding function name based on name --- the client specifies a prefix -function classFeature:cfuncname (n) - - if self.parent then - n = self.parent:cfuncname(n) - end - - local fname = self.lname - if not fname or fname == '' then - fname = self.name - end - n = string.gsub(n..'_'.. (fname), "[<>:, \.%*&]", "_") - - return n -end - |