[python-users] WG: Pyparsing
Anastasia.Eifer at dlr.de
Anastasia.Eifer at dlr.de
Mi Mai 28 14:03:19 CEST 2008
Hallo Dirk,
anbei ein paar Tipps von meinem Kollegen Tobias Schlauch (der den Pyparsing-Vortrag gehalten hat) für Dich.
Viele Grüße
Anastasia
---------------------------------
Mit freundlichen Grüßen
Deutsches Zentrum für Luft- und Raumfahrt e.V.
in der Helmholtz-Gemeinschaft
Simulations- und Softwaretechnik
Abteilung Verteilte Systeme und Komponentensoftware
Dipl.-Inf. Anastasia Eifer
Porz-Wahnheide
Linder Höhe
51147 Köln
Telefon 02203 601-2059
Telefax 02203 601-3070
E-Mail mailto:Anastasia.Eifer at dlr.de
Internet http://www.DLR.de
________________________________
Von: Schlauch, Tobias
Gesendet: Mittwoch, 28. Mai 2008 13:28
An: Eifer, Anastasia
Betreff: AW: [python-users] Pyparsing
Hallo Anastasia,
anbei ein paar Tipps für den Dirk. Leider hab ich nicht die gannante anghangene Datei, aber vllt. reichen die Infos ja schon aus.
Zu Problem 1) kann ich nicht viel sagen. Den Parsing-Tree selbst bekommt man nicht so einfach, man kann aber das Ergebnis für eine Weiterverarbeitung schon bei der Definition der Grammatik beeinflussen z.B. durch Gruppierungen mit der Group-Klasse. Weiterhin kann man sich durch Parsing-Aktions bei der Erkennung der Tokens registrieren und damit schon eine spätere Weiterverarbeitung beeinflussen. Also - ohne die Grammatik gesehen zu haben - sollte es doch z.B. ausreichend sein am Ende eine Liste zu haben, bei dem jedes Element einem Intrawikilink entspricht. Letztendlich kann auch der Output eine baumartige Struktur haben, wenn man die Grammatik entsprechend definiert hat. Beispiele dafür sind die Hilfsfunktionen operatorPrecedence und nestedExpr (wenn man die Ergebnisse auf Basis von asList() verarbeitet, bekommt man eine Liste von Elemente, die wiederum Listen enthält). Ansosnten die Frage direkt mal beim Entwickler posten.
Zu Problem 2):
testExpr = CharsNotIn(u"äöü") # Definition irgendwelcher Zeichen, die nicht erlaubt sind, können also einfach
# als Parameter übergeben werden
test = u"lkah oop üö sudhäö" # Testzeichenkette
testExpr.searchString(test).asList() # Sucht alle Vorkommen die passen
[[u'lkah oop '], [u' sudh']]
Du solltest also alle Zeichen bekommen, die erlaubt sind und die nicht erlaubten werden einfach herausgeschnitten. Ich hoffe dies ist das was du erreichen möchtest.
Viele Grüße
Tobias
________________________________
Von: Eifer, Anastasia
Gesendet: Do 22.05.2008 11:59
An: Schlauch, Tobias
Betreff: WG: [python-users] Pyparsing
Hallo Tobias,
da braucht jemand Deine Hilfe...
Liebe Grüße
Anastasia
-----Ursprüngliche Nachricht-----
Von: python-users-bounces at uni-koeln.de [mailto:python-users-bounces at uni-koeln.de] Im Auftrag von hunniger
Gesendet: Mittwoch, 21. Mai 2008 19:27
An: pyCologne
Betreff: [python-users] Pyparsing
Hallo,
Ich habe mich vor ein paar Monaten schon mal mit pyparsing versucht, war
damals aber nicht sehr erfolgreich. Vieleicht kann mir ja der Mensch der
den Pyparsing Vortrag gehalten hat weiter helfen. Siehe unten.
Gruß Dirk
I am trying to get started with the pyparing. I am working on a programm
that read files in the mediawiki format and write files in the latex
format. I currently have got a problem with the "|" character since it
is used as a seperator inside an intrawikilink as well as a seperator
for cells in a table, which naturaly causes problems with tables which
contain intrawikilinks. As far as I found out pyparsing is able to solve
this problem in a good way.
So I tryed to write a grammer for a wikilink, which is given in the
attached file. There is a problem with the asXML function. You may look
at the output when you run the program comparing it with the multiline
docstring given in the sourcecode. Essetially I would have expected the
output to be similar to the docstring. But it is much different.
Pyparsing writes a list like structure and I expected a tree like
structure. I often heard the term parse tree. So how is it possible to
access the parse tree that pypasing creates. The list view of the
parsetree does not seem to be useful for my problem. The second problem
I have is that I want to run pyparsing on a unicode file that I open
with codecs.open("text","r","utf8"). So there are very many possible
characters that I do not want to list in my sourcecode. So how can I
write down a grammer expression that machtes a series of arbitrary
characters, which does not include certain specifically mentioned
charactes.
Cheers Dirk
________________________________________
Diese Mail erhalten Sie ueber die Mailingliste Python-users der Universitaet zu Koeln
Python-users at uni-koeln.de
https://lists.uni-koeln.de/mailman/listinfo/python-users
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://lists.uni-koeln.de/pipermail/python-users/attachments/20080528/c3b6a7a2/attachment.html>
Mehr Informationen über die Mailingliste python-users