summaryrefslogtreecommitdiff
path: root/Build/source/libs/zziplib/zziplib-0.13.58/docs/zzipdoc/textfileheader.py
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/zziplib/zziplib-0.13.58/docs/zzipdoc/textfileheader.py')
-rw-r--r--Build/source/libs/zziplib/zziplib-0.13.58/docs/zzipdoc/textfileheader.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/Build/source/libs/zziplib/zziplib-0.13.58/docs/zzipdoc/textfileheader.py b/Build/source/libs/zziplib/zziplib-0.13.58/docs/zzipdoc/textfileheader.py
new file mode 100644
index 00000000000..2ac0896e5fd
--- /dev/null
+++ b/Build/source/libs/zziplib/zziplib-0.13.58/docs/zzipdoc/textfileheader.py
@@ -0,0 +1,47 @@
+from match import Match
+
+class TextFileHeader:
+ """ scan for a comment block at the source file start and fill the
+ inner text into self.comment - additionally scan for the first
+ #include statement and put the includename into self.mainheader
+ (TextFileHeader re-exports all => TextFile methods for processing)"""
+ def __init__(self, textfile = None):
+ self.textfile = textfile # TextFile
+ self.comment = "" # src'style
+ self.mainheader = "" # src'style
+ def parse(self, textfile = None):
+ if textfile is not None:
+ self.textfile = textfile
+ if self.textfile is None:
+ return False
+ x = Match()
+ text = self.textfile.get_src_text()
+ if not text:
+ print "nonexistant file:", self.textfile.get_filename()
+ return False
+ if text & x(r"(?s)[/][*]+(\s(?:.(?!\*\/))*.)\*\/"
+ r"(?:\s*\#(?:define|ifdef|endif)[ ]*\S*[ ]*\S*)*"
+ r"(\s*\#include\s*<[^<>]*>(?:\s*//[^\n]*)?)"):
+ self.comment = x[1]
+ self.mainheader = x[2].strip()
+ elif text & x(r"(?s)[/][*]+(\s(?:.(?!\*\/))*.)\*\/"):
+ self.comment = x[1]
+ elif text & x(r"(?s)(?:\s*\#(?:define|ifdef|endif)[ ]*\S*[ ]*\S*)*"
+ r"(\s*\#include\s*<[^<>]*>(?:\s*//[^\n]*)?)"):
+ self.mainheader = x[1].strip()
+ return True
+ def src_mainheader(self):
+ return self.mainheader
+ def src_filecomment(self):
+ return self.comment
+ # re-export textfile functions - allows textfileheader to be used instead
+ def get_filename(self):
+ return self.textfile.get_filename()
+ def get_src_text(self):
+ return self.textfile.get_src_text()
+ def get_xml_text(self):
+ return self.textfile.get_src_text()
+ def line_src__text(self, offset):
+ return self.textfile.line_src_text(offset)
+ def line_xml__text(self, offset):
+ return self.textfile.line_xml_text(offset)