Beispiel #1
0
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
Beispiel #2
0
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
Beispiel #3
0
    '''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
Beispiel #6
0
import sys

text = "this that <<:val `foo`:> other"

import DTLexer

rv = DTLexer.findTags(text)
print rv
if len(rv) != 3:
    print " should've found a tag"
    sys.exit(1)
else:
    print "passed"
    sys.exit(0)
Beispiel #7
0
        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)