From fb10deb49c1412e44ce6c111235aec2f5206ab1d Mon Sep 17 00:00:00 2001 From: Ron Buckton Date: Tue, 17 Mar 2015 11:02:23 -0700 Subject: [PATCH] Scanner updates for decorators --- src/compiler/scanner.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/compiler/scanner.ts b/src/compiler/scanner.ts index fbcadab8c1d85..19b5d24c3f99e 100644 --- a/src/compiler/scanner.ts +++ b/src/compiler/scanner.ts @@ -148,6 +148,7 @@ module ts { "&=": SyntaxKind.AmpersandEqualsToken, "|=": SyntaxKind.BarEqualsToken, "^=": SyntaxKind.CaretEqualsToken, + "@": SyntaxKind.AtToken, }; /* @@ -315,6 +316,19 @@ module ts { return computeLineAndCharacterOfPosition(getLineStarts(sourceFile), position); } + export function lineBreakBetween(sourceFile: SourceFile, firstPos: number, secondPos: number): boolean { + var lineStarts = getLineStarts(sourceFile); + var firstLine = binarySearch(lineStarts, firstPos); + var secondLine = binarySearch(lineStarts, secondPos); + if (firstLine < 0) { + firstLine = ~firstLine - 1; + } + if (secondLine < 0) { + secondLine = ~secondLine - 1; + } + return firstLine !== secondLine; + } + let hasOwnProperty = Object.prototype.hasOwnProperty; export function isWhiteSpace(ch: number): boolean { @@ -1247,6 +1261,8 @@ module ts { return pos++, token = SyntaxKind.CloseBraceToken; case CharacterCodes.tilde: return pos++, token = SyntaxKind.TildeToken; + case CharacterCodes.at: + return pos++, token = SyntaxKind.AtToken; case CharacterCodes.backslash: let cookedChar = peekUnicodeEscape(); if (cookedChar >= 0 && isIdentifierStart(cookedChar)) {