
Und hier gibt's den Code: http://paste.pocoo.org/show/163791/
Code: Alles auswählen
Ich bin völlig ~~blue~~besoffen~~blue~~
Code: Alles auswählen
{'**': self.attr_cache.append(BOLD), '__': self.attr_cache.append(UNDERLINE), ...}
"Interessant" heißt hier vermutlich kompliziert. Aber die Unterstützung von Verschachtelungen ist IMHO definitiv notwenig.Defnull hat geschrieben:Natürlich wäre ein Support für verschachtelung ([red: bla [green: blub] bla]) interessant.
Mein zweites Beispiel finde ich ausreichend. Die regulären Ausdrücke aus einer Tabelle von Sonderzeichen und CSI-Sequenzen zu generieren überlasse ich dem Leser. PyParsing finde ich ist overkill.snafu hat geschrieben:Kennt jemand einen Parser für solche Art von Markup? ...
Ich werde mich mal näher mit PyParsing befassen...
Dito, würde nicht als Dependency haben wollen. Davon abgesehen bin ich von PyParsing nur mittelmäßig begeistert.sma hat geschrieben:PyParsing finde ich ist overkill.
Also ich finde meinen Parser in PyParsing direkt noch schlechter lesbar und wartbar, weil der komische Sachen macht und ich immer dem Autor mailen muss, der mir dann ein noch hässlicher ausschauendes Codeschnippsel zurückmailt, das diesen Bug nicht hat.snafu hat geschrieben:Die Sache ist halt, dass ich reinen Regex-Code persönlich schlecht lesbar und somit auch schlecht wartbar sowie fehleranfällig finde, sobald man dann doch mal irgendeinen Fall vergessen hat.
Hört sich doch insgesamt ganz okay an.funcparserlib is a library for recursive descent parsing using parser
combinators. The parsers made with its help are LL(*) parsers. It means that
it's very easy to write them without thinking about look-aheads and all that
hardcore parsing stuff. But the recursive descent parsing is a rather slow
method compared to LL(k) or LR(k) algorithms. So the primary domain for
funcparserlib is parsing small languages or external DSLs (domain specific
languages).