2009-12-05 11 views

答えて

3

Iは、プロジェクトへの参照がLuaParseと呼ばれるが見つかりました:

LuaParseはBlex、汎用純Luaのレクサー、及びlparse、純粋なのLUAのLUAパーサー、ならびにユーティリティ種々の機能を含みますプロトタイプのパッケージ管理システムなどがあります。

これはあなたのニーズを迷惑にします。

4

LPegも参照してください。

1

も参照gg,mlpおよびcloptsモジュールMetaluaから参照してください。

これらは「Not-quite」Lua(Metaluaは別の言語です)ですが、いくつかの有用な洞察を提供するかもしれません。また、Metaluaコードは普通のLuaバイトコードにコンパイルされるので、再利用できます。

3

シェルのような言語(shlexの実際の設計目標と思われる)を解析することが目標の場合は、LPegに文法を書いてlhf suggestsと書いてください。しかし、シェルが実際に従う階層化された引用規則を完全に実装する文法を書くのは簡単ではありません。すべての有効な/bin/sh(または悪いことには、csh)のスクリプトを正しく解析することを期待していない限り、便利な文法を書くのは簡単です。

実際に設定ファイルやアプリケーションスクリプティングのために賢明な「小さな言語」を作成することを目標にしているのであれば、Lua自体は既にその言語に近いと示唆しています。もともとはデータ記述を念頭に置いて設計されていたため、パーサーは相当に大きなデータ宣言を処理するのにはかなり熟練しています。この方法でLuaを使用する方法の例については、section 10.1 of PiLを参照してください。後のchapter 25は、構成の特定のユースケースのためのより大きいアプリケーションとのLuaの統合について説明し、いくつかのアプローチを示しています。

+0

私はshlexがコマンドライン解析ツールだと思っていたので、元々これを尋ねました:) – RCIX

関連する問題