def compileTemplate(text, name=None, tagreg=None, meta=None): try: taglist = DTLexer.doTag(text, name) except DTExcept.DTLexicalError, val: # Ok, force the name here - its a decent hack Drew val.name = name raise val
def compileTemplate ( text, name = None, tagreg = None, meta = None ): try: taglist=DTLexer.doTag(text, name) except DTExcept.DTLexicalError, val: # Ok, force the name here - its a decent hack Drew val.name = name raise val
'''we got a tag that needs to be parsed''' curTag = taglist[start] tagname = curTag.tagname #get the DTTag object for the current tag try: dttag = tagreg.getTag(tagname) except KeyError, val: #not a valid tagname, barf raise DTExcept.DTCompileError(curTag, 'invalid tag name %s' % tagname) #if an empty tag (like <:var:>, <:break:>, et. al.) if dttag.isempty: if curTag.isclose: #it's a closing empty tag???? raise DTExcept.DTCompileError( curTag, 'empty close tag??? %s' % curTag.tagname) return curTag, start else: #it's a non-empty tag (like <:if:><:/if:>) #have the DTTag parse it's block return dttag.parseBlock(text, taglist, start, tagreg, name) if __name__ == '__main__': import DTLexer import sys import DTTagRegistry text = open(sys.argv[1]).read() taglist = DTLexer.doTag(text) node = parseit(text, taglist, DTTagRegistry.defaultTagRegistry, None) print '--------------------' print node
def getTagList(self): return self._taglist def __getitem__(self, item): return DTToken(self._taglist[item], self._text) def __getslice__(self, b, e): return LazyDTTokenList(self._taglist[b:e], self._text) def __len__(self): return len(self._taglist) def __repr__(self): tags=map(repr, self) return '['+string.join(tags,', ')+']' if __name__=="__main__": import sys import DTLexer import DTUtil tl=DTLexer.doTag(open(sys.argv[1]).read()) for i in tl: print '--------------------' print '%s:%s:%s' % (len(i), i.tagname(), i) for j in i: print '%s:%s:%s' % (len(j), j.tagname(), j) if len(j) > 1: for k in j: print '%s:%s:%s' % (len(k), k.tagname(), k) print DTUtil.tagattrToTupleDict(i)
def genHandler(text, taglist, start, tagreg, name): '''we got a tag that needs to be parsed''' curTag=taglist[start] tagname=curTag.tagname #get the DTTag object for the current tag try: dttag=tagreg.getTag(tagname) except KeyError, val: #not a valid tagname, barf raise DTExcept.DTCompileError ( curTag, 'invalid tag name %s' % tagname ) #if an empty tag (like <:var:>, <:break:>, et. al.) if dttag.isempty: if curTag.isclose: #it's a closing empty tag???? raise DTExcept.DTCompileError ( curTag, 'empty close tag??? %s' % curTag.tagname ) return curTag, start else: #it's a non-empty tag (like <:if:><:/if:>) #have the DTTag parse it's block return dttag.parseBlock(text, taglist, start, tagreg, name) if __name__=='__main__': import DTLexer import sys import DTTagRegistry text=open(sys.argv[1]).read() taglist=DTLexer.doTag(text) node=parseit(text, taglist, DTTagRegistry.defaultTagRegistry, None) print '--------------------' print node
return self._taglist def __getitem__(self, item): return DTToken(self._taglist[item], self._text) def __getslice__(self, b, e): return LazyDTTokenList(self._taglist[b:e], self._text) def __len__(self): return len(self._taglist) def __repr__(self): tags = map(repr, self) return '[' + string.join(tags, ', ') + ']' if __name__ == "__main__": import sys import DTLexer import DTUtil tl = DTLexer.doTag(open(sys.argv[1]).read()) for i in tl: print '--------------------' print '%s:%s:%s' % (len(i), i.tagname(), i) for j in i: print '%s:%s:%s' % (len(j), j.tagname(), j) if len(j) > 1: for k in j: print '%s:%s:%s' % (len(k), k.tagname(), k) print DTUtil.tagattrToTupleDict(i)