dogescript-3
Version:
an unofficial third version of dogescript
38 lines (32 loc) • 828 B
JavaScript
var escodegen = require("escodegen"),
estraverse = require("estraverse");
var IDEN = "Identifier",
MEMBER_EXPR = "MemberExpression";
var DSON_FILE = "../lib/dson.js";
module.exports = function compile (ast) {
estraverse.replace(ast, {
enter: function (node) {
if (node.type === IDEN) {
// dogeument
if (node.name === "dogeument") {
var _node = node;
_node.name = "document";
return _node;
}
// windoge
if (node.name === "windoge") {
var _node = node;
_node.name = "window";
return _node;
}
}
if (node.type === MEMBER_EXPR && node.object.name === "console" && node.property.name === "loge") {
var _node = node;
_node.property.name = "log";
return _node;
}
}
});
// return the modified ast tree
return escodegen.generate(ast);
}