pyparsing
14 July 2008
Comments
pyparsing to moduł reguł gramatycznych o nieco innym podejściu niż lex/yacc, czy też zwykłych wyrażeń regularnych. Poniżej przykład parsujący "Hello, World!" (ogólnie pozdrowienia w formacie "(słowo), (słowo)!"):
from pyparsing import Word, alphas
greet = Word( alphas ) + "," + Word( alphas ) + "!" # <-- definicja gramatyczna
hello = "Hello, World!"
print hello, "->", greet.parseString( hello )
Hello, World! -> ['Hello', ',', 'World', '!']
Łańcuch "Hello, World!" został rozbity według definicji gramatycznej. Pyparsing może być wykorzystany do interpretowania prostych jednowierszowych poleceń, wyrażeń algebraicznych, czy też do wyciągania danych z raportów. Dla zachowania czytelności warto też łączyć poszczególne elementy definicji za pomocą + | czy ^:
integer = Word( nums ) # liczba całkowita
variable = Word( alphas, max=1 ) # pojedyncza litera
arithOp = Word( "+-*/", max=1 ) # operatory arytmetyczne
equation = variable + "=" + integer + arithOp + integer # spełnione m.in. dla "x=2+2", etc.
RkBlog
Comment article