pogo
Version:
A readable, DSL friendly programming language that compiles to JavaScript
22 lines • 1.1 kB
JavaScript
(function() {
var self = this;
module.exports = function(terms) {
var self = this;
var forEach;
return forEach = function(collection, itemVariable, stmts) {
var itemsVar, indexVar, s, gen1_o, statementsWithItemAssignment, init, test, incr;
itemsVar = terms.generatedVariable([ "items" ]);
indexVar = terms.generatedVariable([ "i" ]);
s = [ terms.definition(itemVariable, terms.indexer(itemsVar, indexVar)) ];
gen1_o = s;
gen1_o.push.apply(gen1_o, stmts.statements);
statementsWithItemAssignment = terms.statements(s, {
returnsPromise: stmts.returnsPromise
});
init = terms.definition(indexVar, terms.integer(0));
test = terms.operator("<", [ indexVar, terms.fieldReference(itemsVar, [ "length" ]) ]);
incr = terms.increment(indexVar);
return terms.subStatements([ terms.definition(itemsVar, collection), terms.forStatement(init, test, incr, statementsWithItemAssignment) ]);
};
};
}).call(this);