バックグラウンド
現在、コマンドを文字列として受け入れる必要がある関数を作成しています。関数がそれらの部分を使用できるように、文字列をより細かい部分に分割する必要があります。文字列の例を次に示します。
People.filter(Hometown.eq("Pittsburgh"))
この単純化された例では、次のように解決する必要があります。
var objectToTraverse = "People";
var actionToTake = "filter";
var comparer = "Hometown";
var targetValue = "Pittsburgh";
上記の例では、分割操作は非常に簡単です。
var _command = "People.filter(Hometown.eq("Pittsburgh"))";
var command = _command.split(".");
var objectToTraverse = command[0];
var actionToTake = command[1].split("(")[0];
var comparer = command[1].split("(")[1];
var targetValue = command[2].split("(")[1].split(")")[0];
しかし、次のようなより複雑なコマンドがある場合はどうでしょう。
People.filter(Hometown.eq("Pittsburgh") && Gender.eq("male") || Age.eq(>= 35)).orderBy(Age,Gender).limitResultSet(10)
柄は毎回異なる場合がございます。
質問
JavaScript を使用して、次のようなさまざまな混合区切り文字と条件に基づいて文字列コマンドを効率的に解析するにはどうすればよいですか。
People.filter(Hometown.eq("Pittsburgh") && Gender.eq("male") || Age.eq(>= 35)).orderBy(Age,Gender).limitResultSet(10)
ご注意ください
私は、JavaScript でデータをクエリするために既に利用可能なすべてのフレームワークを認識しており、すべてのヒントやアドバイスに感謝していますが、他に何が利用可能であるかに関係なく、この質問に対する回答を求めています。