Отдаем bemxjst такой шаблон:
block('b1').mod('m1', 'v1').content()('B');
block('b1').content()('a');
block('b1').content()(function () {return [applyCtx({'mods': {'m1':'v1'}}), 'b'];});Получаем такой результат:
function applyc(__$ctx, __$ref) {| (with-eval-after-load 'cider | |
| (add-hook 'cider-mode-hook | |
| (lambda () | |
| (add-hook 'after-save-hook 'cider-refresh nil 'make-it-local)))) |
| ;; Clojure's eval is dynamic with respect to current namespace. | |
| ;; If you ever find yourself in need of eval but want to avoid **wat** | |
| ;; moments here's hopefully an illuminating sequence: | |
| user> (in-ns 'bla) | |
| #namespace[bla] | |
| bla> (refer-clojure) | |
| nil | |
| bla> (def x "bla") | |
| #'bla/x | |
| bla> (defn bleval [s] |
| // escodegen has a fucked up API for attaching comments | |
| // https://github.com/estools/escodegen/issues/10 | |
| var esprima = require("esprima"); | |
| var es = require("escodegen"); | |
| var ast = esprima.parse( | |
| '//comment here\nvar answer = 42;', | |
| {range: true, tokens: true, comment: true}); | |
| // attaching comments is a separate step |
| // Parse and serialize JS string-literals | |
| var esprima = require("esprima"), | |
| esgen = require("escodegen").generate; | |
| // Esprima.parse differentiates between the string-literal (raw) and it's | |
| // content (value) | |
| esprima.parse('a = "привет"') | |
| // => |
| block b1, content: applyNext(this.bla = 'bla', 'default', this.ctx.b = 'b') |
Отдаем bemxjst такой шаблон:
block('b1').mod('m1', 'v1').content()('B');
block('b1').content()('a');
block('b1').content()(function () {return [applyCtx({'mods': {'m1':'v1'}}), 'b'];});Получаем такой результат:
function applyc(__$ctx, __$ref) {| var ometajs = require('ometajs'), | |
| Parser = ometajs.grammars.BSJSParser; | |
| // Source: http://tratt.net/laurie/research/pubs/html/tratt__direct_left_recursive_parsing_expression_grammars/ | |
| // '1-2-3' -> ((1-2)-3) | |
| ometa a <: Parser { | |
| Expr = Expr:l "-" Num:r -> [l, '-', r] | |
| | Num:i -> [i], | |
| Num = /[0-9]+/ |
| var ometajs_ = require('ometajs'); | |
| var AbstractGrammar = ometajs_.grammars.AbstractGrammar; | |
| var BSJSParser = ometajs_.grammars.BSJSParser; | |
| var BSJSIdentity = ometajs_.grammars.BSJSIdentity; | |
| var BSJSTranslator = ometajs_.grammars.BSJSTranslator; | |
| var ometajs = require('ometajs'); | |
| var G = function G(source, opts) { | |
| AbstractGrammar.call(this, source, opts); | |
| }; | |
| G.grammarName = 'G'; |
I hereby claim:
To claim this, I am signing this object:
| bash-3.2$ pwd | |
| /Users/vkz/Projects/chart | |
| bash-3.2$ ls | |
| a.fsx packages.config | |
| bash-3.2$ cat packages.config | |
| <?xml version="1.0" encoding="utf-8"?> | |
| <packages> | |
| <package id="FSharp.Charting.Gtk" version="0.90.5" targetFramework="net40" /> |