Adding generated token helper function.

This commit is contained in:
clutchski
2011-12-17 18:25:51 -05:00
parent a4553c970c
commit f6dbaa7c31
2 changed files with 20 additions and 14 deletions

View File

@@ -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;
})();

View File

@@ -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
# ---------