summaryrefslogtreecommitdiff
path: root/gnu/dist/sgmltools-lite/python/Backend.py
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/dist/sgmltools-lite/python/Backend.py')
-rw-r--r--gnu/dist/sgmltools-lite/python/Backend.py136
1 files changed, 136 insertions, 0 deletions
diff --git a/gnu/dist/sgmltools-lite/python/Backend.py b/gnu/dist/sgmltools-lite/python/Backend.py
new file mode 100644
index 00000000..de9e54d2
--- /dev/null
+++ b/gnu/dist/sgmltools-lite/python/Backend.py
@@ -0,0 +1,136 @@
+#
+# Backend.py - Backend interface
+#
+# $Id: Backend.py,v 1.1 2000/03/24 09:16:45 cdegroot Exp $
+#
+# SGMLtools - an SGML toolkit.
+# Copyright (C)1998 Cees A. de Groot
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+
+"""
+ This module defines base classes for backend modules.
+ Backends need to inherit from this.
+"""
+
+class Backend:
+ """Base backend class.
+
+ This class is actually a backend _process_, one is instantiated
+ for every file processed. Therefore, the class may store
+ information between passes to facilitate work.
+ """
+
+ _filename = ''
+ _fileparts = ()
+
+ def __init__(self, filename, fileparts, globs, tracer, autoconf):
+ """Create a new instance.
+
+ The filename is the file that will be parsed, the globs
+ argument is a pointer to the BackendGlobals class
+ associated with this object. Fileparts is a 3-tuple
+ containing (name, path, extension)
+
+ This base constructor stores the arguments in corresponding
+ fields (with underscore-prefix).
+ """
+
+ self._filename = filename
+ self._fileparts = fileparts
+ self._globs = globs
+ self._tracer = tracer
+ self._autoconf = autoconf
+
+ def preJade(self, fh):
+ """Execute actions that need to take place before Jade is invoked.
+
+ This method receives a filehandle that points to the main
+ input file as indicated on the command line.
+
+ The method should return a filehandle that needs to be
+ passed as input to Jade (the base implementation simply
+ returns its input filehandle).
+ """
+
+ return fh
+
+ def postJade(self, outfile, stdoutfile):
+ """Execute actions that need to take place after Jade has run.
+
+ The method receives two filenames: the first is the filename
+ that was given to Jade as a '-o' parameter, the second is the
+ filename where stdout was redirected to.
+
+ """
+
+ pass
+
+
+class BackendGlobals:
+ """A class containing backend-global stuff.
+
+ This base class will be instantiated exactly once per backend. It
+ is used to handle and store options, etcetera.
+ """
+
+ def getName(self):
+ """Get the name for this backend.
+
+ This returns the name which can be used on the command
+ line --backend option to invoke this backend.
+ """
+
+ return 'base'
+
+ def getMoreOptions(self):
+ """Get extra options for this backend.
+
+ This method should return, in the same form as the global
+ options in utils.py, a list containing any extra options
+ defined by this backend. Each element contains a tuple
+ (short, long, helptext)
+ """
+
+ return []
+
+
+ def setOptions(self, options):
+ """Communicate optoins back to the backend.
+
+ This method is called after option processing so that the
+ backend may do anything it wants with the options as passed
+ on the command line.
+ """
+
+ pass
+
+ def getJadeSettings(self):
+ """Return stylesheet/backend information for Jade.
+
+ This method returns a tuple containing two elements:
+ 1. The Jade backend to use for this backend
+ 2. The stylesheet to use.
+ """
+
+ return ('', '')
+
+ def printHelp(self, fh):
+ """Print help information on the backend."""
+
+ pass
+
+