braklet , eine generische markup parser/renderer bibliothek
Verfasst: Donnerstag 19. Juli 2007, 15:07
hi, ich habe grade die erste halbwegs funktionierende version von meiner markup parser/renderer lib fertiggestellt
damit kann man recht einfach lexer/renderer für versch markup sprachen definieren
hier mal ein einfacher lexer für korrekte klammerausdrüke
ich hab auch einen tarball online gestellt (es gibt jedoch noch ein paar kleinere logikfehler für den komplexeren an moin angelehnten wiki lexer)
http://ronny.uberhost.de/~ronny/braklet-0.0.1.tar.gz
damit kann man recht einfach lexer/renderer für versch markup sprachen definieren
hier mal ein einfacher lexer für korrekte klammerausdrüke
Code: Alles auswählen
class KKAS(DirectiveState):
prefix=""
class KKADirective(SimpleDirective):
def start(self):
if self.lexer.match(r"\(") is not None:
return KKAS(start=self)
def end(self,state):
if self.lexer.match(r"\)") is not None:
return KKAS(end=self)
class KKaLexer(BaseLexer):
directives = [ KKADirective ]
test_text = "(()( )(nil()))()"
__test__={
"KKA":"""
>>> kka = KKaLexer(test_text)
>>> for i in kka:
... print repr(i), i.tag
u'(' <KKA start>
u'(' <KKA start>
u')' <KKA end>
u'(' <KKA start>
u' ' <Text>
u')' <KKA end>
u'(' <KKA start>
u'nil' <Text>
u'(' <KKA start>
u')' <KKA end>
u')' <KKA end>
u')' <KKA end>
u'(' <KKA start>
u')' <KKA end>
""",
}
http://ronny.uberhost.de/~ronny/braklet-0.0.1.tar.gz