[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