Dies ist eine laufende Arbeit, verlustfreier Lua 5.1+ Parser in Rost geschrieben. Es wird alle Kommentare, Whitespace und Stilunterschiede wie Zitate und Flucht erhalten.
Ich möchte MAB für eine Reihe von zukünftigen Projekten verwenden:
Beiträge sind willkommen - es gibt viel zu tun!
MAb unterstützt Rost 1,26 stabil und neuer.
Es gibt bereits eine ziemlich beträchtliche Testsuite, die als "Analyse mit Beispiel" -System implementiert wird. Die Testdateieingaben finden Sie in parse_examples/source .
Der Testläufer ( cargo test ) wird diese Quelldateien lesen, tokenisieren und analysiert und den zuletzt bekannten Ordner für gute Ergebnisse ( parse_examples/results ) überprüft, um zu sehen, ob sie mit dem übereinstimmen, was sie zuvor getan haben.
Wenn Sie Änderungen vornehmen, die den AST des Parsers ändern, löschen Sie die entsprechende serialisierte Token -Liste und die AST -JSON -Dateien. Wenn Sie den Testläufer als nächstes ausführen, werden Dateien generiert, die neben Ihrer Änderung manuell überprüft und eingereicht werden sollten. Der Diff -Viewer von Git kann helfen, festzustellen, ob das geänderte Veränderung beabsichtigt war.
Seien Sie vorsichtig mit den Linienenden, wenn Sie sich unter Windows entwickeln. Das Repository verfügt über eine .editorconfig -Datei sowie eine .gitattributes -Datei, um zu garantieren, dass alle LUA -Dateien im Gegensatz zu CRLF LF -Zeilenenden haben. Wenn Sie mit einer Beispiel -Token -Liste mit CRLF -Linien -Enden einchecken, wird CI fehlgeschlagen.
Dieses Projekt ist unter den Bestimmungen der Mozilla Public Lizenz, Version 2.0, verfügbar. Details sind in Lizenz verfügbar.