Comparing version 0.2.0 to 0.2.1
@@ -147,5 +147,2 @@ (function() { | ||
code = generateCode(moduleTerm); | ||
if (!ugly) { | ||
code = beautify(code); | ||
} | ||
if (parser.errors.hasErrors()) { | ||
@@ -161,3 +158,7 @@ memoryStream = new ms.MemoryStream; | ||
} else { | ||
return code; | ||
if (ugly) { | ||
return code; | ||
} else { | ||
return beautify(code); | ||
} | ||
} | ||
@@ -164,0 +165,0 @@ }; |
@@ -20,4 +20,6 @@ (function() { | ||
statements_list: [ [ "statements_list , statement", "$1.push($3); $$ = $1;" ], [ "statement", "$$ = [$1];" ], [ "", "$$ = [];" ] ], | ||
arguments_list: [ [ "arguments_list , argument", "$1.push($3); $$ = $1;" ], [ "argument", "$$ = [$1];" ], [ "", "$$ = [];" ] ], | ||
arguments: [ [ "arguments_list", "$$ = $1;" ], [ "", "$$ = [];" ] ], | ||
arguments_list: [ [ "arguments_list , argument", "$1.push($3); $$ = $1;" ], [ "argument", "$$ = [$1];" ] ], | ||
argument: [ [ "expression : expression", "$$ = $1.definition($3.expression()).hashEntry(true);" ], [ "statement", "$$ = $1" ] ], | ||
parameters: [ [ "parameter_list", "$$ = $1;" ], [ "", "$$ = [];" ] ], | ||
parameter_list: [ [ "parameter_list , statement", "$1.push($3); $$ = $1;" ], [ "statement", "$$ = [$1];" ] ], | ||
@@ -35,3 +37,3 @@ statement: [ [ "expression", "$$ = $1.expression();" ] ], | ||
async_operator: [ [ "!", "$$ = yy.loc(yy.terms.asyncArgument(), @$);" ] ], | ||
terminal: [ [ "( arguments_list )", "$$ = yy.loc(yy.terms.argumentList($arguments_list), @$);" ], [ "@ ( parameter_list )", "$$ = yy.loc(yy.terms.parameters($3), @$);" ], [ "block_start statements }", "$$ = yy.loc(yy.terms.block([], $2), @$);" ], [ "=> block_start statements }", "$$ = yy.loc(yy.terms.block([], $3, {redefinesSelf: true}), @$);" ], [ "[ arguments_list ]", "$$ = yy.loc(yy.terms.list($2), @$);" ], [ "{ hash_entries }", "$$ = yy.loc(yy.terms.hash($2), @$);" ], [ "float", "$$ = yy.loc(yy.terms.float(parseFloat(yytext)), @$);" ], [ "integer", "$$ = yy.loc(yy.terms.integer(parseInt(yytext)), @$);" ], [ "identifier", "$$ = yy.loc(yy.terms.identifier(yytext), @$);" ], [ "string", "$$ = yy.loc(yy.terms.string(yy.unindentBy(yy.normaliseString(yytext), @$.first_column + 1)), @$);" ], [ "reg_exp", "$$ = yy.loc(yy.terms.regExp(yy.parseRegExp(yy.unindentBy(yytext, @$.first_column + 2))), @$);" ], [ "interpolated_string", "$$ = yy.loc($1, @$);" ], [ "...", "$$ = yy.loc(yy.terms.splat(), @$);" ] ], | ||
terminal: [ [ "( arguments )", "$$ = yy.loc(yy.terms.argumentList($arguments), @$);" ], [ "@ ( parameters )", "$$ = yy.loc(yy.terms.parameters($3), @$);" ], [ "block_start statements }", "$$ = yy.loc(yy.terms.block([], $2), @$);" ], [ "=> block_start statements }", "$$ = yy.loc(yy.terms.block([], $3, {redefinesSelf: true}), @$);" ], [ "[ arguments ]", "$$ = yy.loc(yy.terms.list($2), @$);" ], [ "{ hash_entries }", "$$ = yy.loc(yy.terms.hash($2), @$);" ], [ "float", "$$ = yy.loc(yy.terms.float(parseFloat(yytext)), @$);" ], [ "integer", "$$ = yy.loc(yy.terms.integer(parseInt(yytext)), @$);" ], [ "identifier", "$$ = yy.loc(yy.terms.identifier(yytext), @$);" ], [ "string", "$$ = yy.loc(yy.terms.string(yy.unindentBy(yy.normaliseString(yytext), @$.first_column + 1)), @$);" ], [ "reg_exp", "$$ = yy.loc(yy.terms.regExp(yy.parseRegExp(yy.unindentBy(yytext, @$.first_column + 2))), @$);" ], [ "interpolated_string", "$$ = yy.loc($1, @$);" ], [ "...", "$$ = yy.loc(yy.terms.splat(), @$);" ] ], | ||
block_start: [ [ "@ {", "$$ = '@{'" ], [ "@{", "$$ = '@{'" ] ], | ||
@@ -38,0 +40,0 @@ unary_operator: [ [ "operator", "$$ = $1;" ], [ "!", "$$ = $1;" ] ], |
@@ -43,5 +43,12 @@ (function() { | ||
exprs.unshift(term.items[1].value); | ||
comprehensionExprs = _.map(exprs, function(expr) { | ||
return comprehensionExpressionFor(expr); | ||
}); | ||
comprehensionExprs = function() { | ||
var gen1_results, gen2_items, gen3_i, expr; | ||
gen1_results = []; | ||
gen2_items = exprs; | ||
for (gen3_i = 0; gen3_i < gen2_items.length; ++gen3_i) { | ||
expr = gen2_items[gen3_i]; | ||
gen1_results.push(comprehensionExpressionFor(expr)); | ||
} | ||
return gen1_results; | ||
}(); | ||
comprehensionExprs.push(map(term.items[0], resultsVariable)); | ||
@@ -57,3 +64,3 @@ return expressions(comprehensionExprs); | ||
var self = this; | ||
return [ terms.forEach(self.collection, self.iterator, terms.statements(rest.generate())) ]; | ||
return [ terms.forEach(self.collection, self.iterator, terms.asyncStatements(rest.generate())) ]; | ||
} | ||
@@ -76,6 +83,6 @@ }; | ||
var self = this; | ||
var statements, gen1_o; | ||
var statements, gen4_o; | ||
statements = [ expression ]; | ||
gen1_o = statements; | ||
gen1_o.push.apply(gen1_o, rest.generate()); | ||
gen4_o = statements; | ||
gen4_o.push.apply(gen4_o, rest.generate()); | ||
return statements; | ||
@@ -92,3 +99,3 @@ } | ||
condition: expression, | ||
body: terms.statements(rest.generate()) | ||
body: terms.asyncStatements(rest.generate()) | ||
} ]) ]; | ||
@@ -126,3 +133,3 @@ } | ||
macros.addMacro([ "where" ], function(term, name, args) { | ||
var badComprehension, resultsVariable, exprs, statements, gen2_o; | ||
var badComprehension, resultsVariable, exprs, statements, gen5_o; | ||
badComprehension = function() { | ||
@@ -135,4 +142,4 @@ return terms.errors.addTermWithMessage(term, "not a list comprehension, try:\n\n [y + 1, where: x <- [1..10], x % 2, y = x + 10]"); | ||
statements = [ terms.definition(resultsVariable, terms.list([])) ]; | ||
gen2_o = statements; | ||
gen2_o.push.apply(gen2_o, exprs.generate()); | ||
gen5_o = statements; | ||
gen5_o.push.apply(gen5_o, exprs.generate()); | ||
statements.push(resultsVariable); | ||
@@ -139,0 +146,0 @@ return terms.scope(statements); |
@@ -142,5 +142,12 @@ (function() { | ||
object = self.arguments[0].expression(); | ||
parms = _(self.arguments.slice(1)).map(function(arg) { | ||
return arg.expression().parameter(); | ||
}); | ||
parms = function() { | ||
var gen8_results, gen9_items, gen10_i, arg; | ||
gen8_results = []; | ||
gen9_items = self.arguments.slice(1); | ||
for (gen10_i = 0; gen10_i < gen9_items.length; ++gen10_i) { | ||
arg = gen9_items[gen10_i]; | ||
gen8_results.push(arg.expression().parameter()); | ||
} | ||
return gen8_results; | ||
}(); | ||
return terms.definition(terms.fieldReference(object, self.name), source.blockify(parms, []), { | ||
@@ -147,0 +154,0 @@ assignment: assignment |
{ | ||
"name": "pogo", | ||
"version": "0.2.0", | ||
"version": "0.2.1", | ||
"description": "A readable, DSL friendly programming language that compiles to JavaScript", | ||
@@ -5,0 +5,0 @@ "maintainers": [ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
371558
5684