From f6dbaa7c312d6c371729e090d59f3f259f7bd243 Mon Sep 17 00:00:00 2001 From: clutchski Date: Sat, 17 Dec 2011 18:25:51 -0500 Subject: [PATCH] Adding generated token helper function. --- lib/coffee-script/rewriter.js | 17 ++++++++++------- src/rewriter.coffee | 17 ++++++++++------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/lib/coffee-script/rewriter.js b/lib/coffee-script/rewriter.js index 45d350ae..92a3c9f6 100644 --- a/lib/coffee-script/rewriter.js +++ b/lib/coffee-script/rewriter.js @@ -118,8 +118,7 @@ }; action = function(token, i) { var tok; - tok = ['}', '}', token[2]]; - tok.generated = true; + tok = this.generated(['}', '}', token[2]]); return this.tokens.splice(i, 0, tok); }; return this.scanTokens(function(token, i, tokens) { @@ -143,10 +142,8 @@ } prevTag = this.tag(idx - 1); startsLine = !prevTag || (__indexOf.call(LINEBREAKS, prevTag) >= 0); - value = new String('{'); - value.generated = true; - tok = ['{', value, token[2]]; - tok.generated = true; + value = this.generated(new String('{')); + tok = this.generated(['{', value, token[2]]); tokens.splice(idx, 0, tok); this.detectEnd(i + 2, condition, action); return 2; @@ -224,7 +221,8 @@ starter = tag; _ref2 = this.indentation(token), indent = _ref2[0], outdent = _ref2[1]; if (starter === 'THEN') indent.fromThen = true; - indent.generated = outdent.generated = true; + this.generated(indent); + this.generated(outdent); tokens.splice(i + 1, 0, indent); this.detectEnd(i + 2, condition, action); if (tag === 'THEN') tokens.splice(i, 1); @@ -261,6 +259,11 @@ return (_ref = this.tokens[i]) != null ? _ref[0] : void 0; }; + Rewriter.prototype.generated = function(token) { + token.generated = true; + return token; + }; + return Rewriter; })(); diff --git a/src/rewriter.coffee b/src/rewriter.coffee index 520096e2..84742075 100644 --- a/src/rewriter.coffee +++ b/src/rewriter.coffee @@ -118,8 +118,7 @@ class exports.Rewriter one[0] not in ['IDENTIFIER', 'NUMBER', 'STRING', '@', 'TERMINATOR', 'OUTDENT']) action = (token, i) -> - tok = ['}', '}', token[2]] - tok.generated = yes + tok = @generated(['}', '}', token[2]]) @tokens.splice i, 0, tok @scanTokens (token, i, tokens) -> @@ -137,10 +136,8 @@ class exports.Rewriter idx -= 2 while @tag(idx - 2) is 'HERECOMMENT' prevTag = @tag(idx - 1) startsLine = not prevTag or (prevTag in LINEBREAKS) - value = new String('{') - value.generated = yes - tok = ['{', value, token[2]] - tok.generated = yes + value = @generated(new String('{')) + tok = @generated(['{', value, token[2]]) tokens.splice idx, 0, tok @detectEnd i + 2, condition, action 2 @@ -218,7 +215,8 @@ class exports.Rewriter starter = tag [indent, outdent] = @indentation token indent.fromThen = true if starter is 'THEN' - indent.generated = outdent.generated = true + @generated(indent) + @generated(outdent) tokens.splice i + 1, 0, indent @detectEnd i + 2, condition, action tokens.splice i, 1 if tag is 'THEN' @@ -250,6 +248,11 @@ class exports.Rewriter # Look up a tag by token index. tag: (i) -> @tokens[i]?[0] + # Mark the given token or value generated. + generated : (token) -> + token.generated = true + token + # Constants # ---------