libphorward 0.22

Langsam, aber stetig tut sich etwas bei meiner hobbymäßig weiterentwickelten C library libphorward, die auch als Phorward Toolkit, Phorward Foundation Libraries oder inzwischen auch einfach nur noch als The Phorward library bezeichnet wird.

Irgendwie scheine ich ein wenig mehr Disziplin dort hinein bekommen zu haben. Das liegt zum Teil daran, dass sich etwas bei UniCC getan hat, aber auch weil die Library inzwischen eine feste Basis hat, die nur noch geringfügig geändert und erweitert, aber nicht mehr komplett verworfen oder bereinigt wird. Leider ist immernoch nicht ganz genau klar, was der exakte Zweck der Library oder des Toolkits nun wirklich sein soll. In der Dokumentation dazu steht inzwischen folgender Abschnitt unter dem Titel “Intention behind this library”:

The cornerstone for this library was laid in 2006 during some experimenting with several algorithms and their implementation. It rapidly turned out to become a general purpose library serving as the base toolchain for several, mostly unfinished software projects which had their origin at J.M.K S.F. Software Technologies, which was later renamed to Phorward Software Technologies.

The library was then released to the public in 2011, together with the open source parser generator UniCC. Since then, it was gradually extended to newer and more enhanced features, mostly on tools relating to parser and compiler construction, but also features already known from other projects and remastered in a more generic and powerful way.

The final destination of the Phorward library is not entirely clear yet. For now, it mostly serves as a kind of playground for different projections, but it is also used by the UniCC parser generator and the meanwhile discontinued RapidBATCH scripting language as its foundation library.

Aber die Version 0.22 formiert sich langsam, und hat einige Neuerungen zu bieten, wie man dem Changelog detailliert entnehmen kann…

Phorward BNF

Das Endprodukt der zahlreichen Überarbeitungen in der Parsing Library, die bereits 2012 innerhalb der libphorward begonnen wurde, ist nun wieder ein neue Grammatik-Beschreibungssprache, die nun den offiziellen Namen PBNF trägt. Diese ähnelt der von pynetree und bis libphorward v0.21 verwendeten BNF-Sprache, hat aber eine deutlich vereinfachte Syntax, die auch UniCCv2 verwenden können soll.

Hier das vielfach verwendete 4-function-calculator Beispiel:

AST-Knoten werden jetzt mit dem = oder := Operatoren definiert.

Command-line tools

Die command-line tools pregex, plex und pparse sind jetzt einheitlich und flexibel nutzbar:

Und dann ist auch noch die Doku verbessert worden. Ich denke in Kürze ist es soweit, das v0.22 offiziell released wird, und es geht mit v0.23 weiter… bis hoffentlich bald, v1.0?