if maxlen is None: maxlen=max[what]
self._max_ok(what,maxlen)
if self._ok is False: return False
- if bad.search(self._s): return self._bad(what,'bad syntax')
+ if bad.search(self._s):
+ #print(repr(self), file=sys.stderr)
+ return self._bad(what,'bad syntax')
return True
def _rtnval(self, is_ok, ifgood, ifbad=''):
else:
obj.properties[propname]=kw[0](w)
+class FilterState:
+ def __init__(self):
+ self.reset()
+ def reset(self):
+ # called when we enter a new node,
+ # in particular, at the start of each site
+ pass
-def pline(il,allow_include=False):
+def pline(il,filterstate,allow_include=False):
"Process a configuration file line"
global allow_defs, obstack, root
w=il.rstrip('\n').split()
sys.exit(1)
current.children[tname]=nl
current=nl
+ filterstate.reset()
obstack.append(current)
return copyout()
if keyword.raw() not in current.allow_properties:
file=name
line=0
outlines=[]
+ filterstate = FilterState()
for i in lines:
line=line+1
if (i[0]=='#'): continue
- outlines += pline(i,allow_include=allow_include)
+ outlines += pline(i,filterstate,allow_include=allow_include)
return outlines
def outputsites(w):