summaryrefslogtreecommitdiff
path: root/src/lua/feature.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua/feature.lua')
-rw-r--r--src/lua/feature.lua72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/lua/feature.lua b/src/lua/feature.lua
new file mode 100644
index 00000000..4a4379e1
--- /dev/null
+++ b/src/lua/feature.lua
@@ -0,0 +1,72 @@
+-- tolua: abstract feature class
+-- Written by Waldemar Celes
+-- TeCGraf/PUC-Rio
+-- Jul 1998
+-- $Id: feature.lua,v 1.2 2001/11/26 23:00:23 darkgod Exp $
+
+-- 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 = {
+}
+
+-- write support code
+function classFeature:supcode ()
+end
+
+-- output tag
+function classFeature:decltag ()
+end
+
+-- register feature
+function classFeature:register ()
+end
+
+-- unregister feature
+function classFeature:unregister ()
+end
+
+-- translate verbatim
+function classFeature:preamble ()
+end
+
+-- check if feature is inside a class definition
+-- it returns the feature class name or nil.
+function classFeature:inclass ()
+ if self.parent and self.parent.type == 'class' then
+ return self.parent.name
+ else
+ return nil
+ end
+end
+
+-- check if feature is inside a module
+-- it returns the feature module name or nil.
+function classFeature:inmodule ()
+ if self.parent and self.parent.type == 'module' then
+ return self.parent.name
+ else
+ return nil
+ end
+end
+
+-- return C binding function name based on name
+-- the client specifies a prefix
+-- return C binding function name
+-- the client specifies a prefix
+function classFeature:cfuncname (n)
+ if self.parent then
+ n = self.parent:cfuncname(n)
+ end
+ if self.lname then
+ return n..'_'..self.lname
+ else
+ return n..'_'..self.name
+ end
+end
+