JSONとJavaScriptに基づいてDSLを作成しています。キー値を文字列区切り文字で囲まずに「生」に指定する必要があります。うまくいけば、これを説明する簡単な例では:オブジェクトを解析する前に手動でJSONを解析する
{myKey:custom_function('arg1'), myKey2:custom_function("another arg1")}
{myKey:"custom_function('arg1')", myKey2:"custom_function(\"another arg1\")"}
JSONオブジェクトを解析する時には、custom_functionが存在しないので、これがあるになる必要があります。私は、値を評価せずにJSONを解析できるようにする必要があります。次に、キーを繰り返しながら値を1つずつ展開します。
第1のスニペットを第2のスニペットに切り替えるために使用できる正規表現やその他の方法はありますか?
私は単純な解決策がケースの90%をカバーすると仮定していますが、防弾実装の作成には多大な労力が必要です。私はJavaScriptの正規表現のサポート(確かにlookbehind機能はありません)に行った研究に基づいて、ちょうど1,2行以上の正規表現パターン以上のものを必要とすると仮定しています。
また、これはノードアプリケーションのためのものであり、このために持っているすべてのトリックも役に立ちます。
EDIT:
この質問は、いくつかのdownvotesを取得しているようだが、私は将来のGoogler /私自身の参照の利益のために、とにかくそれを残してきました。これはどのような方法/技術がこの種の問題に最も適しているかについての完全に有効な質問であり、同様の問題に直面している他のノード/ jsの新規参入者が容易に存在する可能性があります。
ごめんなさい。しかし、DSLは何ですか? –
ドメイン固有言語。これは複雑なビジネスケースのため、ユーザーがアプリケーションに指示するためのスクリプトを書くことができる機能を持っています。 – Trindaz
DSLがハイブリッドJSONモックアップであることが原因でダウンボントが発生していると感じます。 DSLは単にJSON標準でなければならないという経営陣の主張によれば、ポイントはより保守性が高く、将来的に実現しやすく、ララララです。 – balupton