Większość osób nalega na próbę metaprogramu z w swoim ulubionym języku w. To nie działa, jeśli język nie obsługuje dobrze metaprogramowania; inne odpowiedzi wykazały, że JavaScript tego nie robi.
Sposób obejścia tego polega na wykonaniu metaprogramowania od poza językiem, przy użyciu program transformation tools. Takie narzędzia mogą analizować kod źródłowy i przeprowadzać na nim dowolne transformacje (tak to robi metaprogramowanie), a następnie wypluć zmodyfikowany program.
Jeśli posiadasz uniwersalny system transformacji programów, który może analizować dowolne języki, możesz dokonać metaprogramowania na/w dowolnym języku. Zobacz nasze DMS Software Reengineering Toolkit dla takiego narzędzia, które ma solidne przednie końce dla C, C++, Java, C#, COBOL, PHP i ECMAScript i wiele innych języków programowania, i było używane do metaprogramowania na wszystkich z nich.
W twoim przypadku chcesz rozszerzyć gramatykę JavaScript o nową składnię zapytań SQL, a następnie przekształcić je w zwykły JavaScript. (Jest to bardzo podobne do programowania intencjonalnego) DMS z łatwością pozwoli ci zbudować dialekt JavaScript z dodatkowymi regułami, a następnie możesz użyć jego możliwości transformacji programu, by stworzyć równoważny standardowy Javascript.
Powiedziawszy, że nie jestem wielkim fanem "niestandardowej składni dla każdego programisty na świecie", czyli tam, gdzie intencjonalne programowanie prowadzi IMHO.
Jest to dobra rzecz, jeśli istnieje duża społeczność użytkowników, która uznałaby to za wartościowe. Ten pomysł może, ale nie musi być jednym z nich; Częścią problemu jest to, że nie można się dowiedzieć, bez eksperymentu, i może nie uzyskać wystarczającej społecznej trakcji.
\ * kaszel \ * http://www.hugoware.net/Projects/jLinq \ * kaszel \ * –
Możesz umieścić swój kod w jakimś tagu HTML lub pliku tekstowym. Wtedy możesz mieć własne DSL z Javascriptem ... – Philip