2009-12-05 8 views

Odpowiedz

3

I znaleziono odniesienie do projektu o nazwie LuaParse:

LuaParse zawiera Blex, ogólnego przeznaczenia czystego Lua lexer i lparse, czystej Lua Lua parser, jak również wielu funkcji użytkowych i prototypowy system zarządzania pakietami.

Może to zaspokoi twoje potrzeby.

1

Zobacz także moduły gg, mlp i z Metalua.

Są to "niezupełnie" Lua (ponieważ Metalua jest odrębnym językiem), ale mogą dostarczyć użytecznych spostrzeżeń. Również kod Metalua kompiluje się do prostego kodu bajtowego Lua, więc można go użyć ponownie.

3

Jeśli celem jest przeanalizowanie języka podobnego do powłoki (który wydaje się być rzeczywistym celem projektu shlex), to pisanie gramatyki w LPeg jako lhf suggests jest prawdopodobnie właściwą odpowiedzią. Jednak nie jest tak łatwo napisać gramatykę, która całkowicie implementuje zbiór warstwowych reguł cytowania, za którymi właściwie składają się powłoki. Dopóki nie spodziewamy się poprawnie przeanalizować wszystkich ważnych skryptów /bin/sh (lub gorzej, csh), powinno być proste pisanie gramatyki, która jest przydatna.

Jeśli celem jest stworzenie rozsądnego "małego języka" dla plików konfiguracyjnych lub skryptów aplikacji, sugerowałbym, że sama Lua jest już bardzo bliska bycia tym językiem. Został on pierwotnie zaprojektowany z myślą o opisie danych, a jego parser jest dość biegły w obsłudze nawet dość dużych deklaracji danych. Zobacz section 10.1 of PiL dla jednego przykładu, jak używać Lua w ten sposób. Późniejsza chapter 25 opisuje integrację Lua z większą aplikacją dla konkretnego przypadku użycia konfiguracji i demonstruje wiele podejść.

+0

Pierwotnie zapytałem o to, ponieważ myślałem, że shlex był narzędziem do analizowania wiersza poleceń :) – RCIX