summaryrefslogtreecommitdiff
path: root/scripts/embed.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/embed.py')
-rw-r--r--scripts/embed.py63
1 files changed, 0 insertions, 63 deletions
diff --git a/scripts/embed.py b/scripts/embed.py
deleted file mode 100644
index 66757033..00000000
--- a/scripts/embed.py
+++ /dev/null
@@ -1,63 +0,0 @@
-import re
-
-preprocessorRe = re.compile( r'\s*#.*' )
-
-fdefineRe = re.compile( r'\s*#\s*define\s*(\S*)\s*\(' ) # #defines that take arguments
-defineRe = re.compile( r'\s*#\s*define\s*(\S*)(\s+)(.*)' ) # all #defines
-undefRe = re.compile( r'\s*#\s*undef\s*(\S*)' ) # all #undefs
-
-ifdefCommonRe = re.compile( r'\s*#\s*if' ) # all #ifdefs
-ifdefRe = re.compile( r'\s*#\s*ifdef\s*(\S*)' )
-ifndefRe = re.compile( r'\s*#\s*ifndef\s*(\S*)' )
-endifRe = re.compile( r'\s*#\s*endif\s*//\s*(.*)' )
-elseRe = re.compile( r'\s*#\s*else' )
-ifRe = re.compile( r'\s*#\s*if\s+(.*)' )
-
-nsRe = re.compile( r'(.*?\s*\s*namespace\s+)(\w+)(\s*{?)(.*)' )
-nsCloseRe = re.compile( r'(.*\s*})(\s*\/\/\s*namespace\s+)(\w+)(\s*)(.*)' )
-
-
-class LineMapper:
- def __init__( self, idMap, outerNamespace ):
- self.idMap = idMap
- self.outerNamespace = outerNamespace
-
- # TBD:
- # #if, #ifdef, comments after #else
- def mapLine( self, lineNo, line ):
- for idFrom, idTo in self.idMap.items():
- r = re.compile("(.*)" + idFrom + "(.*)")
-
- m = r.match( line )
- if m:
- line = m.group(1) + idTo + m.group(2) + "\n"
-
- m = nsCloseRe.match( line )
- if m:
- originalNs = m.group(3)
- # print("[{0}] originalNs: '{1}' - closing".format(lineNo, originalNs))
- # print( " " + line )
- # print( " 1:[{0}]\n 2:[{1}]\n 3:[{2}]\n 4:[{3}]\n 5:[{4}]".format( m.group(1), m.group(2), m.group(3), m.group(4), m.group(5) ) )
- if originalNs in self.outerNamespace:
- outerNs, innerNs = self.outerNamespace[originalNs]
- return "{0}}}{1}{2}::{3}{4}{5}\n".format( m.group(1), m.group(2), outerNs, innerNs, m.group(4), m.group(5))
- m = nsRe.match( line )
- if m:
- originalNs = m.group(2)
- # print("[{0}] originalNs: '{1}'".format(lineNo, originalNs))
- # print( " " + line )
- # print( " 1:[{0}]\n 2:[{1}]\n 3:[{2}]\n 4:[{3}]".format( m.group(1), m.group(2), m.group(3), m.group(4) ) )
- if originalNs in self.outerNamespace:
- outerNs, innerNs = self.outerNamespace[originalNs]
- return "{0}{1} {{ namespace {2}{3}{4}\n".format( m.group(1), outerNs, innerNs, m.group(3), m.group(4) )
-
- return line
-
- def mapFile(self, filenameIn, filenameOut ):
- print( "Embedding:\n {0}\nas:\n {1}".format( filenameIn, filenameOut ) )
- with open( filenameIn, 'r' ) as f, open( filenameOut, 'w' ) as outf:
- lineNo = 1
- for line in f:
- outf.write( self.mapLine( lineNo, line ) )
- lineNo = lineNo + 1
- print( "Written {0} lines".format( lineNo ) ) \ No newline at end of file