summaryrefslogtreecommitdiffstats
path: root/Tools/modulator/varsubst.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/modulator/varsubst.py')
-rw-r--r--Tools/modulator/varsubst.py62
1 files changed, 31 insertions, 31 deletions
diff --git a/Tools/modulator/varsubst.py b/Tools/modulator/varsubst.py
index ec89fe3..06e9683 100644
--- a/Tools/modulator/varsubst.py
+++ b/Tools/modulator/varsubst.py
@@ -9,42 +9,42 @@ error = 'varsubst.error'
class Varsubst:
def __init__(self, dict):
- self.dict = dict
- self.prog = regex.compile('\$[a-zA-Z0-9_]*\$')
- self.do_useindent = 0
+ self.dict = dict
+ self.prog = regex.compile('\$[a-zA-Z0-9_]*\$')
+ self.do_useindent = 0
def useindent(self, onoff):
- self.do_useindent = onoff
-
+ self.do_useindent = onoff
+
def subst(self, str):
- rv = ''
- while 1:
- pos = self.prog.search(str)
- if pos < 0:
- return rv + str
- if pos:
- rv = rv + str[:pos]
- str = str[pos:]
- len = self.prog.match(str)
- if len == 2:
- # Escaped dollar
- rv = rv + '$'
- str = str[2:]
- continue
- name = str[1:len-1]
- str = str[len:]
- if not self.dict.has_key(name):
- raise error, 'No such variable: '+name
- value = self.dict[name]
- if self.do_useindent and '\n' in value:
- value = self._modindent(value, rv)
- rv = rv + value
+ rv = ''
+ while 1:
+ pos = self.prog.search(str)
+ if pos < 0:
+ return rv + str
+ if pos:
+ rv = rv + str[:pos]
+ str = str[pos:]
+ len = self.prog.match(str)
+ if len == 2:
+ # Escaped dollar
+ rv = rv + '$'
+ str = str[2:]
+ continue
+ name = str[1:len-1]
+ str = str[len:]
+ if not self.dict.has_key(name):
+ raise error, 'No such variable: '+name
+ value = self.dict[name]
+ if self.do_useindent and '\n' in value:
+ value = self._modindent(value, rv)
+ rv = rv + value
def _modindent(self, value, old):
- lastnl = string.rfind(old, '\n', 0) + 1
- lastnl = len(old) - lastnl
- sub = '\n' + (' '*lastnl)
- return regsub.gsub('\n', sub, value)
+ lastnl = string.rfind(old, '\n', 0) + 1
+ lastnl = len(old) - lastnl
+ sub = '\n' + (' '*lastnl)
+ return regsub.gsub('\n', sub, value)
def _test():
import sys