subtle bug in the order of the rewriter rules was causing some if/else chains to get confused by implicit indentation
This commit is contained in:
parent
a62923ff97
commit
13b2dc8d31
|
@ -56,9 +56,19 @@
|
|||
var js;
|
||||
if (opts.tokens) {
|
||||
puts(coffee.tokenize(code).join(' '));
|
||||
} else if (opts.tree) {
|
||||
puts(coffee.tree(code).toString());
|
||||
} else {
|
||||
opts.tree ? puts(coffee.tree(code).toString()) : (js = coffee.compile(code));
|
||||
opts.run ? eval(js) : opts.print ? puts(js) : opts.lint ? exports.lint(js) : exports.write_js(source, coffee.compile(code));
|
||||
js = coffee.compile(code);
|
||||
if (opts.run) {
|
||||
eval(js);
|
||||
} else if (opts.print) {
|
||||
puts(js);
|
||||
} else if (opts.lint) {
|
||||
exports.lint(js);
|
||||
} else {
|
||||
exports.write_js(source, coffee.compile(code));
|
||||
}
|
||||
}
|
||||
return exports.compile_scripts();
|
||||
});
|
||||
|
|
|
@ -118,13 +118,13 @@
|
|||
return new OpNode('!!', $2);
|
||||
}), o("- Expression", (function() {
|
||||
return new OpNode('-', $2);
|
||||
}), {
|
||||
})), {
|
||||
prec: 'UMINUS'
|
||||
}), o("+ Expression", (function() {
|
||||
}, o("+ Expression", (function() {
|
||||
return new OpNode('+', $2);
|
||||
}), {
|
||||
})), {
|
||||
prec: 'UPLUS'
|
||||
}), o("NOT Expression", function() {
|
||||
}, o("NOT Expression", function() {
|
||||
return new OpNode('not', $2);
|
||||
}), o("~ Expression", function() {
|
||||
return new OpNode('~', $2);
|
||||
|
|
|
@ -807,9 +807,7 @@
|
|||
toString: function toString(idt) {
|
||||
var children;
|
||||
idt = (idt || '') + TAB;
|
||||
puts(this.body.expressions.length);
|
||||
children = _.flatten([this.params, this.body.expressions]);
|
||||
puts(children.length);
|
||||
return this.type + '\n' + _.map(children, function(child) {
|
||||
return idt + child.toString(idt);
|
||||
}).join('');
|
||||
|
|
|
@ -53,8 +53,8 @@
|
|||
this.remove_mid_expression_newlines();
|
||||
this.move_commas_outside_outdents();
|
||||
this.close_open_calls_and_indexes();
|
||||
this.add_implicit_parentheses();
|
||||
this.add_implicit_indentation();
|
||||
this.add_implicit_parentheses();
|
||||
this.ensure_balance(BALANCED_PAIRS);
|
||||
this.rewrite_closing_parens();
|
||||
return this.tokens;
|
||||
|
|
|
@ -45,8 +45,8 @@ re::rewrite: (tokens) ->
|
|||
this.remove_mid_expression_newlines()
|
||||
this.move_commas_outside_outdents()
|
||||
this.close_open_calls_and_indexes()
|
||||
this.add_implicit_parentheses()
|
||||
this.add_implicit_indentation()
|
||||
this.add_implicit_parentheses()
|
||||
this.ensure_balance(BALANCED_PAIRS)
|
||||
this.rewrite_closing_parens()
|
||||
this.tokens
|
||||
|
|
Loading…
Reference in New Issue