diff --git a/src/services/syntax/SyntaxGenerator.js b/src/services/syntax/SyntaxGenerator.js index 023547dae42..f4f7b43074a 100644 --- a/src/services/syntax/SyntaxGenerator.js +++ b/src/services/syntax/SyntaxGenerator.js @@ -2275,6 +2275,7 @@ function generateBrands(definition, accessibility) { types.push(type); } } + types.push("_syntaxNodeOrTokenBrand"); if (types.length > 0) { properties += " "; for (var i = 0; i < types.length; i++) { @@ -2583,7 +2584,6 @@ function generateNode(definition, abstract) { } result += " }\r\n"; result += generateKindMethod(definition); - result += generateAcceptMethod(definition); result += " }"; return result; } @@ -2702,7 +2702,7 @@ function generateRewriter() { } function generateWalker() { var result = ""; - result += "///\r\n" + "\r\n" + "module TypeScript {\r\n" + " export class SyntaxWalker implements ISyntaxVisitor {\r\n" + " public visitToken(token: ISyntaxToken): void {\r\n" + " }\r\n" + "\r\n" + " private visitOptionalToken(token: ISyntaxToken): void {\r\n" + " if (token === undefined) {\r\n" + " return;\r\n" + " }\r\n" + "\r\n" + " this.visitToken(token);\r\n" + " }\r\n" + "\r\n" + " private visitOptionalNode(node: ISyntaxNode): void {\r\n" + " if (node === undefined) {\r\n" + " return;\r\n" + " }\r\n" + "\r\n" + " node.accept(this);\r\n" + " }\r\n" + "\r\n" + " public visitList(list: ISyntaxNodeOrToken[]): void {\r\n" + " for (var i = 0, n = list.length; i < n; i++) {\r\n" + " list[i].accept(this);\r\n" + " }\r\n" + " }\r\n" + "\r\n"; + result += "///\r\n" + "\r\n" + "module TypeScript {\r\n" + " export class SyntaxWalker implements ISyntaxVisitor {\r\n" + " public visitToken(token: ISyntaxToken): void {\r\n" + " }\r\n" + "\r\n" + " private visitOptionalToken(token: ISyntaxToken): void {\r\n" + " if (token === undefined) {\r\n" + " return;\r\n" + " }\r\n" + "\r\n" + " this.visitToken(token);\r\n" + " }\r\n" + "\r\n" + " public visitList(list: ISyntaxNodeOrToken[]): void {\r\n" + " for (var i = 0, n = list.length; i < n; i++) {\r\n" + " visitNodeOrToken(this, list[i]);\r\n" + " }\r\n" + " }\r\n"; for (var i = 0; i < definitions.length; i++) { var definition = definitions[i]; result += "\r\n"; @@ -2721,12 +2721,7 @@ function generateWalker() { result += " this.visitList(node." + child.name + ");\r\n"; } else if (isNodeOrToken(child)) { - if (child.isOptional) { - result += " visitNodeOrToken(this, node." + child.name + ");\r\n"; - } - else { - result += " node." + child.name + ".accept(this);\r\n"; - } + result += " visitNodeOrToken(this, node." + child.name + ");\r\n"; } else if (child.type === "ISyntaxToken") { if (child.isOptional) { @@ -2737,12 +2732,7 @@ function generateWalker() { } } else if (child.type !== "SyntaxKind") { - if (child.isOptional) { - result += " this.visitOptionalNode(node." + child.name + ");\r\n"; - } - else { - result += " node." + child.name + ".accept(this);\r\n"; - } + result += " visitNodeOrToken(this, node." + child.name + ");\r\n"; } } result += " }\r\n"; @@ -2865,7 +2855,14 @@ function generateVisitor() { result += "module TypeScript {\r\n"; result += " export function visitNodeOrToken(visitor: ISyntaxVisitor, element: ISyntaxNodeOrToken): any {\r\n"; result += " if (element === undefined) { return undefined; }\r\n"; - result += " return element.accept(visitor);\r\n"; + result += " switch (element.kind()) {\r\n"; + for (var i = 0; i < definitions.length; i++) { + var definition = definitions[i]; + result += " case SyntaxKind." + getNameWithoutSuffix(definition) + ": "; + result += "return visitor.visit" + getNameWithoutSuffix(definition) + "(<" + definition.name + ">element);\r\n"; + } + result += " default: return visitor.visitToken(element);\r\n"; + result += " }\r\n"; result += " }\r\n\r\n"; result += " export interface ISyntaxVisitor {\r\n"; result += " visitToken(token: ISyntaxToken): any;\r\n"; diff --git a/src/services/syntax/prettyPrinter.ts b/src/services/syntax/prettyPrinter.ts index 1c5182aea10..3d926fcfdee 100644 --- a/src/services/syntax/prettyPrinter.ts +++ b/src/services/syntax/prettyPrinter.ts @@ -1031,15 +1031,15 @@ module TypeScript.PrettyPrinter { } public visitTemplateClause(node: TemplateClauseSyntax): void { - node.expression.accept(this); + visitNodeOrToken(this, node.expression); this.ensureSpace(); this.appendToken(node.templateMiddleOrEndToken); } public visitTemplateAccessExpression(node: TemplateAccessExpressionSyntax): void { - node.expression.accept(this); + visitNodeOrToken(this, node.expression); this.ensureSpace(); - node.templateExpression.accept(this); + visitNodeOrToken(this, node.templateExpression); } } } \ No newline at end of file diff --git a/src/services/syntax/scanner.ts b/src/services/syntax/scanner.ts index b42b4d16986..be2abd11b4f 100644 --- a/src/services/syntax/scanner.ts +++ b/src/services/syntax/scanner.ts @@ -251,7 +251,7 @@ module TypeScript.Scanner { } class FixedWidthTokenWithNoTrivia implements ISyntaxToken { - public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _typeBrand: any; + public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _typeBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(private _packedData: number) { } @@ -285,7 +285,7 @@ module TypeScript.Scanner { } class LargeScannerToken implements ISyntaxToken { - public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _typeBrand: any; + public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _typeBrand: any; public _syntaxNodeOrTokenBrand: any; private cachedText: string; constructor(private _packedFullStartAndInfo: number, private _packedFullWidthAndKind: number, cachedText: string) { diff --git a/src/services/syntax/syntaxGenerator.ts b/src/services/syntax/syntaxGenerator.ts index 79e0f2c2844..3197d831ffa 100644 --- a/src/services/syntax/syntaxGenerator.ts +++ b/src/services/syntax/syntaxGenerator.ts @@ -1565,6 +1565,7 @@ function generateBrands(definition: ITypeDefinition, accessibility: boolean): st } } + types.push("_syntaxNodeOrTokenBrand"); if (types.length > 0) { properties += " "; @@ -2008,7 +2009,7 @@ function generateNode(definition: ITypeDefinition, abstract: boolean): string { result += generateKindMethod(definition); // result += generateSlotMethods(definition); - result += generateAcceptMethod(definition); + // result += generateAcceptMethod(definition); result += " }"; return result; @@ -2213,35 +2214,26 @@ function generateWalker(): string { var result = ""; result += -"///\r\n"+ -"\r\n" + -"module TypeScript {\r\n" + -" export class SyntaxWalker implements ISyntaxVisitor {\r\n" + -" public visitToken(token: ISyntaxToken): void {\r\n" + -" }\r\n" + -"\r\n" + -" private visitOptionalToken(token: ISyntaxToken): void {\r\n" + -" if (token === undefined) {\r\n" + -" return;\r\n" + -" }\r\n" + -"\r\n" + -" this.visitToken(token);\r\n" + -" }\r\n" + -"\r\n" + -" private visitOptionalNode(node: ISyntaxNode): void {\r\n" + -" if (node === undefined) {\r\n" + -" return;\r\n" + -" }\r\n" + -"\r\n" + -" node.accept(this);\r\n" + -" }\r\n" + -"\r\n" + -" public visitList(list: ISyntaxNodeOrToken[]): void {\r\n" + -" for (var i = 0, n = list.length; i < n; i++) {\r\n" + -" list[i].accept(this);\r\n" + -" }\r\n" + -" }\r\n" + -"\r\n"; + "///\r\n" + + "\r\n" + + "module TypeScript {\r\n" + + " export class SyntaxWalker implements ISyntaxVisitor {\r\n" + + " public visitToken(token: ISyntaxToken): void {\r\n" + + " }\r\n" + + "\r\n" + + " private visitOptionalToken(token: ISyntaxToken): void {\r\n" + + " if (token === undefined) {\r\n" + + " return;\r\n" + + " }\r\n" + + "\r\n" + + " this.visitToken(token);\r\n" + + " }\r\n" + + "\r\n" + + " public visitList(list: ISyntaxNodeOrToken[]): void {\r\n" + + " for (var i = 0, n = list.length; i < n; i++) {\r\n" + + " visitNodeOrToken(this, list[i]);\r\n" + + " }\r\n" + + " }\r\n"; for (var i = 0; i < definitions.length; i++) { var definition = definitions[i]; @@ -2264,12 +2256,12 @@ function generateWalker(): string { result += " this.visitList(node." + child.name + ");\r\n"; } else if (isNodeOrToken(child)) { - if (child.isOptional) { + //if (child.isOptional) { result += " visitNodeOrToken(this, node." + child.name + ");\r\n"; - } - else { - result += " node." + child.name + ".accept(this);\r\n"; - } + //} + //else { + // result += " node." + child.name + ".accept(this);\r\n"; + //} } else if (child.type === "ISyntaxToken") { if (child.isOptional) { @@ -2280,12 +2272,12 @@ function generateWalker(): string { } } else if (child.type !== "SyntaxKind") { - if (child.isOptional) { - result += " this.visitOptionalNode(node." + child.name + ");\r\n"; - } - else { - result += " node." + child.name + ".accept(this);\r\n"; - } + //if (child.isOptional) { + result += " visitNodeOrToken(this, node." + child.name + ");\r\n"; + //} + //else { + // result += " node." + child.name + ".accept(this);\r\n"; + //} } } @@ -2455,31 +2447,19 @@ function generateVisitor(): string { result += "module TypeScript {\r\n"; result += " export function visitNodeOrToken(visitor: ISyntaxVisitor, element: ISyntaxNodeOrToken): any {\r\n"; result += " if (element === undefined) { return undefined; }\r\n"; - result += " return element.accept(visitor);\r\n"; - /* - result += " if (isToken(element)) { return visitor.visitToken(element); }\r\n"; + // result += " return element.accept(visitor);\r\n"; + result += " switch (element.kind()) {\r\n"; for (var i = 0; i < definitions.length; i++) { var definition = definitions[i]; - if (definition.syntaxKinds) { - result += " "; - for (var j = 0; j < definition.syntaxKinds.length; j++) { - result += " case SyntaxKind." + definition.syntaxKinds[j] + ":" - } - result += "\r\n "; - } - else { - result += " case SyntaxKind." + getNameWithoutSuffix(definition) + ": "; - } - + result += " case SyntaxKind." + getNameWithoutSuffix(definition) + ": "; result += "return visitor.visit" + getNameWithoutSuffix(definition) + "(<" + definition.name + ">element);\r\n"; } - result += " }\r\n\r\n"; - result += " throw Errors.invalidOperation();\r\n"; - */ + result += " default: return visitor.visitToken(element);\r\n"; + result += " }\r\n"; result += " }\r\n\r\n"; result += " export interface ISyntaxVisitor {\r\n"; diff --git a/src/services/syntax/syntaxNodeOrToken.ts b/src/services/syntax/syntaxNodeOrToken.ts index 2c2a6f808bd..6cb173df11a 100644 --- a/src/services/syntax/syntaxNodeOrToken.ts +++ b/src/services/syntax/syntaxNodeOrToken.ts @@ -2,6 +2,6 @@ module TypeScript { export interface ISyntaxNodeOrToken extends ISyntaxElement { - accept(visitor: ISyntaxVisitor): any; + _syntaxNodeOrTokenBrand: any; } } \ No newline at end of file diff --git a/src/services/syntax/syntaxNodes.concrete.generated.ts b/src/services/syntax/syntaxNodes.concrete.generated.ts index 350481ea59a..4dd7500f9f1 100644 --- a/src/services/syntax/syntaxNodes.concrete.generated.ts +++ b/src/services/syntax/syntaxNodes.concrete.generated.ts @@ -6,6 +6,7 @@ module TypeScript { public syntaxTree: SyntaxTree = undefined; public moduleElements: IModuleElementSyntax[]; public endOfFileToken: ISyntaxToken; + public _syntaxNodeOrTokenBrand: any; constructor(data: number, moduleElements: IModuleElementSyntax[], endOfFileToken: ISyntaxToken) { if (data) { this.__data = data; } this.parent = undefined, @@ -18,17 +19,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.SourceUnit; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitSourceUnit(this); - } } export class QualifiedNameSyntax implements ISyntaxNode, INameSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public left: INameSyntax; public dotToken: ISyntaxToken; public right: ISyntaxToken; - public _nameBrand: any; public _typeBrand: any; + public _nameBrand: any; public _typeBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, left: INameSyntax, dotToken: ISyntaxToken, right: ISyntaxToken) { if (data) { this.__data = data; } this.left = left, @@ -42,17 +39,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.QualifiedName; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitQualifiedName(this); - } } export class ObjectTypeSyntax implements ISyntaxNode, ITypeSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public openBraceToken: ISyntaxToken; public typeMembers: ISeparatedSyntaxList; public closeBraceToken: ISyntaxToken; - public _typeBrand: any; + public _typeBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, openBraceToken: ISyntaxToken, typeMembers: ISeparatedSyntaxList, closeBraceToken: ISyntaxToken) { if (data) { this.__data = data; } this.openBraceToken = openBraceToken, @@ -66,10 +59,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ObjectType; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitObjectType(this); - } } export class FunctionTypeSyntax implements ISyntaxNode, ITypeSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -77,7 +66,7 @@ module TypeScript { public parameterList: ParameterListSyntax; public equalsGreaterThanToken: ISyntaxToken; public type: ITypeSyntax; - public _typeBrand: any; + public _typeBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, typeParameterList: TypeParameterListSyntax, parameterList: ParameterListSyntax, equalsGreaterThanToken: ISyntaxToken, type: ITypeSyntax) { if (data) { this.__data = data; } this.typeParameterList = typeParameterList, @@ -93,17 +82,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.FunctionType; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitFunctionType(this); - } } export class ArrayTypeSyntax implements ISyntaxNode, ITypeSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public type: ITypeSyntax; public openBracketToken: ISyntaxToken; public closeBracketToken: ISyntaxToken; - public _typeBrand: any; + public _typeBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, type: ITypeSyntax, openBracketToken: ISyntaxToken, closeBracketToken: ISyntaxToken) { if (data) { this.__data = data; } this.type = type, @@ -117,10 +102,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ArrayType; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitArrayType(this); - } } export class ConstructorTypeSyntax implements ISyntaxNode, ITypeSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -129,7 +110,7 @@ module TypeScript { public parameterList: ParameterListSyntax; public equalsGreaterThanToken: ISyntaxToken; public type: ITypeSyntax; - public _typeBrand: any; + public _typeBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, newKeyword: ISyntaxToken, typeParameterList: TypeParameterListSyntax, parameterList: ParameterListSyntax, equalsGreaterThanToken: ISyntaxToken, type: ITypeSyntax) { if (data) { this.__data = data; } this.newKeyword = newKeyword, @@ -147,16 +128,12 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ConstructorType; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitConstructorType(this); - } } export class GenericTypeSyntax implements ISyntaxNode, ITypeSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public name: INameSyntax; public typeArgumentList: TypeArgumentListSyntax; - public _typeBrand: any; + public _typeBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, name: INameSyntax, typeArgumentList: TypeArgumentListSyntax) { if (data) { this.__data = data; } this.name = name, @@ -168,16 +145,12 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.GenericType; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitGenericType(this); - } } export class TypeQuerySyntax implements ISyntaxNode, ITypeSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public typeOfKeyword: ISyntaxToken; public name: INameSyntax; - public _typeBrand: any; + public _typeBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, typeOfKeyword: ISyntaxToken, name: INameSyntax) { if (data) { this.__data = data; } this.typeOfKeyword = typeOfKeyword, @@ -189,17 +162,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.TypeQuery; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitTypeQuery(this); - } } export class TupleTypeSyntax implements ISyntaxNode, ITypeSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public openBracketToken: ISyntaxToken; public types: ISeparatedSyntaxList; public closeBracketToken: ISyntaxToken; - public _typeBrand: any; + public _typeBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, openBracketToken: ISyntaxToken, types: ISeparatedSyntaxList, closeBracketToken: ISyntaxToken) { if (data) { this.__data = data; } this.openBracketToken = openBracketToken, @@ -213,17 +182,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.TupleType; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitTupleType(this); - } } export class UnionTypeSyntax implements ISyntaxNode, ITypeSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public left: ITypeSyntax; public barToken: ISyntaxToken; public right: ITypeSyntax; - public _typeBrand: any; + public _typeBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, left: ITypeSyntax, barToken: ISyntaxToken, right: ITypeSyntax) { if (data) { this.__data = data; } this.left = left, @@ -237,17 +202,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.UnionType; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitUnionType(this); - } } export class ParenthesizedTypeSyntax implements ISyntaxNode, ITypeSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public openParenToken: ISyntaxToken; public type: ITypeSyntax; public closeParenToken: ISyntaxToken; - public _typeBrand: any; + public _typeBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, openParenToken: ISyntaxToken, type: ITypeSyntax, closeParenToken: ISyntaxToken) { if (data) { this.__data = data; } this.openParenToken = openParenToken, @@ -261,10 +222,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ParenthesizedType; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitParenthesizedType(this); - } } export class InterfaceDeclarationSyntax implements ISyntaxNode, IModuleElementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -274,7 +231,7 @@ module TypeScript { public typeParameterList: TypeParameterListSyntax; public heritageClauses: HeritageClauseSyntax[]; public body: ObjectTypeSyntax; - public _moduleElementBrand: any; + public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, modifiers: ISyntaxToken[], interfaceKeyword: ISyntaxToken, identifier: ISyntaxToken, typeParameterList: TypeParameterListSyntax, heritageClauses: HeritageClauseSyntax[], body: ObjectTypeSyntax) { if (data) { this.__data = data; } this.modifiers = modifiers, @@ -294,10 +251,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.InterfaceDeclaration; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitInterfaceDeclaration(this); - } } export class FunctionDeclarationSyntax implements ISyntaxNode, IStatementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -307,7 +260,7 @@ module TypeScript { public callSignature: CallSignatureSyntax; public block: BlockSyntax; public semicolonToken: ISyntaxToken; - public _statementBrand: any; public _moduleElementBrand: any; + public _statementBrand: any; public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, modifiers: ISyntaxToken[], functionKeyword: ISyntaxToken, identifier: ISyntaxToken, callSignature: CallSignatureSyntax, block: BlockSyntax, semicolonToken: ISyntaxToken) { if (data) { this.__data = data; } this.modifiers = modifiers, @@ -327,10 +280,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.FunctionDeclaration; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitFunctionDeclaration(this); - } } export class ModuleDeclarationSyntax implements ISyntaxNode, IModuleElementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -341,7 +290,7 @@ module TypeScript { public openBraceToken: ISyntaxToken; public moduleElements: IModuleElementSyntax[]; public closeBraceToken: ISyntaxToken; - public _moduleElementBrand: any; + public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, modifiers: ISyntaxToken[], moduleKeyword: ISyntaxToken, name: INameSyntax, stringLiteral: ISyntaxToken, openBraceToken: ISyntaxToken, moduleElements: IModuleElementSyntax[], closeBraceToken: ISyntaxToken) { if (data) { this.__data = data; } this.modifiers = modifiers, @@ -363,10 +312,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ModuleDeclaration; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitModuleDeclaration(this); - } } export class ClassDeclarationSyntax implements ISyntaxNode, IModuleElementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -378,7 +323,7 @@ module TypeScript { public openBraceToken: ISyntaxToken; public classElements: IClassElementSyntax[]; public closeBraceToken: ISyntaxToken; - public _moduleElementBrand: any; + public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, modifiers: ISyntaxToken[], classKeyword: ISyntaxToken, identifier: ISyntaxToken, typeParameterList: TypeParameterListSyntax, heritageClauses: HeritageClauseSyntax[], openBraceToken: ISyntaxToken, classElements: IClassElementSyntax[], closeBraceToken: ISyntaxToken) { if (data) { this.__data = data; } this.modifiers = modifiers, @@ -402,10 +347,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ClassDeclaration; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitClassDeclaration(this); - } } export class EnumDeclarationSyntax implements ISyntaxNode, IModuleElementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -415,7 +356,7 @@ module TypeScript { public openBraceToken: ISyntaxToken; public enumElements: ISeparatedSyntaxList; public closeBraceToken: ISyntaxToken; - public _moduleElementBrand: any; + public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, modifiers: ISyntaxToken[], enumKeyword: ISyntaxToken, identifier: ISyntaxToken, openBraceToken: ISyntaxToken, enumElements: ISeparatedSyntaxList, closeBraceToken: ISyntaxToken) { if (data) { this.__data = data; } this.modifiers = modifiers, @@ -435,10 +376,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.EnumDeclaration; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitEnumDeclaration(this); - } } export class ImportDeclarationSyntax implements ISyntaxNode, IModuleElementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -448,7 +385,7 @@ module TypeScript { public equalsToken: ISyntaxToken; public moduleReference: IModuleReferenceSyntax; public semicolonToken: ISyntaxToken; - public _moduleElementBrand: any; + public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, modifiers: ISyntaxToken[], importKeyword: ISyntaxToken, identifier: ISyntaxToken, equalsToken: ISyntaxToken, moduleReference: IModuleReferenceSyntax, semicolonToken: ISyntaxToken) { if (data) { this.__data = data; } this.modifiers = modifiers, @@ -468,10 +405,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ImportDeclaration; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitImportDeclaration(this); - } } export class ExportAssignmentSyntax implements ISyntaxNode, IModuleElementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -479,7 +412,7 @@ module TypeScript { public equalsToken: ISyntaxToken; public identifier: ISyntaxToken; public semicolonToken: ISyntaxToken; - public _moduleElementBrand: any; + public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, exportKeyword: ISyntaxToken, equalsToken: ISyntaxToken, identifier: ISyntaxToken, semicolonToken: ISyntaxToken) { if (data) { this.__data = data; } this.exportKeyword = exportKeyword, @@ -495,10 +428,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ExportAssignment; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitExportAssignment(this); - } } export class MemberFunctionDeclarationSyntax implements ISyntaxNode, IMemberDeclarationSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -507,7 +436,7 @@ module TypeScript { public callSignature: CallSignatureSyntax; public block: BlockSyntax; public semicolonToken: ISyntaxToken; - public _memberDeclarationBrand: any; public _classElementBrand: any; + public _memberDeclarationBrand: any; public _classElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, modifiers: ISyntaxToken[], propertyName: ISyntaxToken, callSignature: CallSignatureSyntax, block: BlockSyntax, semicolonToken: ISyntaxToken) { if (data) { this.__data = data; } this.modifiers = modifiers, @@ -525,17 +454,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.MemberFunctionDeclaration; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitMemberFunctionDeclaration(this); - } } export class MemberVariableDeclarationSyntax implements ISyntaxNode, IMemberDeclarationSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public modifiers: ISyntaxToken[]; public variableDeclarator: VariableDeclaratorSyntax; public semicolonToken: ISyntaxToken; - public _memberDeclarationBrand: any; public _classElementBrand: any; + public _memberDeclarationBrand: any; public _classElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, modifiers: ISyntaxToken[], variableDeclarator: VariableDeclaratorSyntax, semicolonToken: ISyntaxToken) { if (data) { this.__data = data; } this.modifiers = modifiers, @@ -549,10 +474,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.MemberVariableDeclaration; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitMemberVariableDeclaration(this); - } } export class ConstructorDeclarationSyntax implements ISyntaxNode, IClassElementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -561,7 +482,7 @@ module TypeScript { public callSignature: CallSignatureSyntax; public block: BlockSyntax; public semicolonToken: ISyntaxToken; - public _classElementBrand: any; + public _classElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, modifiers: ISyntaxToken[], constructorKeyword: ISyntaxToken, callSignature: CallSignatureSyntax, block: BlockSyntax, semicolonToken: ISyntaxToken) { if (data) { this.__data = data; } this.modifiers = modifiers, @@ -579,17 +500,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ConstructorDeclaration; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitConstructorDeclaration(this); - } } export class IndexMemberDeclarationSyntax implements ISyntaxNode, IClassElementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public modifiers: ISyntaxToken[]; public indexSignature: IndexSignatureSyntax; public semicolonToken: ISyntaxToken; - public _classElementBrand: any; + public _classElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, modifiers: ISyntaxToken[], indexSignature: IndexSignatureSyntax, semicolonToken: ISyntaxToken) { if (data) { this.__data = data; } this.modifiers = modifiers, @@ -603,10 +520,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.IndexMemberDeclaration; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitIndexMemberDeclaration(this); - } } export class GetAccessorSyntax implements ISyntaxNode, IMemberDeclarationSyntax, IPropertyAssignmentSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -615,7 +528,7 @@ module TypeScript { public propertyName: ISyntaxToken; public callSignature: CallSignatureSyntax; public block: BlockSyntax; - public _memberDeclarationBrand: any; public _propertyAssignmentBrand: any; public _classElementBrand: any; + public _memberDeclarationBrand: any; public _propertyAssignmentBrand: any; public _classElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, modifiers: ISyntaxToken[], getKeyword: ISyntaxToken, propertyName: ISyntaxToken, callSignature: CallSignatureSyntax, block: BlockSyntax) { if (data) { this.__data = data; } this.modifiers = modifiers, @@ -633,10 +546,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.GetAccessor; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitGetAccessor(this); - } } export class SetAccessorSyntax implements ISyntaxNode, IMemberDeclarationSyntax, IPropertyAssignmentSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -645,7 +554,7 @@ module TypeScript { public propertyName: ISyntaxToken; public callSignature: CallSignatureSyntax; public block: BlockSyntax; - public _memberDeclarationBrand: any; public _propertyAssignmentBrand: any; public _classElementBrand: any; + public _memberDeclarationBrand: any; public _propertyAssignmentBrand: any; public _classElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, modifiers: ISyntaxToken[], setKeyword: ISyntaxToken, propertyName: ISyntaxToken, callSignature: CallSignatureSyntax, block: BlockSyntax) { if (data) { this.__data = data; } this.modifiers = modifiers, @@ -663,17 +572,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.SetAccessor; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitSetAccessor(this); - } } export class PropertySignatureSyntax implements ISyntaxNode, ITypeMemberSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public propertyName: ISyntaxToken; public questionToken: ISyntaxToken; public typeAnnotation: TypeAnnotationSyntax; - public _typeMemberBrand: any; + public _typeMemberBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, propertyName: ISyntaxToken, questionToken: ISyntaxToken, typeAnnotation: TypeAnnotationSyntax) { if (data) { this.__data = data; } this.propertyName = propertyName, @@ -687,17 +592,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.PropertySignature; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitPropertySignature(this); - } } export class CallSignatureSyntax implements ISyntaxNode, ITypeMemberSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public typeParameterList: TypeParameterListSyntax; public parameterList: ParameterListSyntax; public typeAnnotation: TypeAnnotationSyntax; - public _typeMemberBrand: any; + public _typeMemberBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, typeParameterList: TypeParameterListSyntax, parameterList: ParameterListSyntax, typeAnnotation: TypeAnnotationSyntax) { if (data) { this.__data = data; } this.typeParameterList = typeParameterList, @@ -711,16 +612,12 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.CallSignature; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitCallSignature(this); - } } export class ConstructSignatureSyntax implements ISyntaxNode, ITypeMemberSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public newKeyword: ISyntaxToken; public callSignature: CallSignatureSyntax; - public _typeMemberBrand: any; + public _typeMemberBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, newKeyword: ISyntaxToken, callSignature: CallSignatureSyntax) { if (data) { this.__data = data; } this.newKeyword = newKeyword, @@ -732,10 +629,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ConstructSignature; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitConstructSignature(this); - } } export class IndexSignatureSyntax implements ISyntaxNode, ITypeMemberSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -743,7 +636,7 @@ module TypeScript { public parameters: ISeparatedSyntaxList; public closeBracketToken: ISyntaxToken; public typeAnnotation: TypeAnnotationSyntax; - public _typeMemberBrand: any; + public _typeMemberBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, openBracketToken: ISyntaxToken, parameters: ISeparatedSyntaxList, closeBracketToken: ISyntaxToken, typeAnnotation: TypeAnnotationSyntax) { if (data) { this.__data = data; } this.openBracketToken = openBracketToken, @@ -759,17 +652,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.IndexSignature; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitIndexSignature(this); - } } export class MethodSignatureSyntax implements ISyntaxNode, ITypeMemberSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public propertyName: ISyntaxToken; public questionToken: ISyntaxToken; public callSignature: CallSignatureSyntax; - public _typeMemberBrand: any; + public _typeMemberBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, propertyName: ISyntaxToken, questionToken: ISyntaxToken, callSignature: CallSignatureSyntax) { if (data) { this.__data = data; } this.propertyName = propertyName, @@ -783,17 +672,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.MethodSignature; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitMethodSignature(this); - } } export class BlockSyntax implements ISyntaxNode, IStatementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public openBraceToken: ISyntaxToken; public statements: IStatementSyntax[]; public closeBraceToken: ISyntaxToken; - public _statementBrand: any; public _moduleElementBrand: any; + public _statementBrand: any; public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, openBraceToken: ISyntaxToken, statements: IStatementSyntax[], closeBraceToken: ISyntaxToken) { if (data) { this.__data = data; } this.openBraceToken = openBraceToken, @@ -807,10 +692,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.Block; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitBlock(this); - } } export class IfStatementSyntax implements ISyntaxNode, IStatementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -820,7 +701,7 @@ module TypeScript { public closeParenToken: ISyntaxToken; public statement: IStatementSyntax; public elseClause: ElseClauseSyntax; - public _statementBrand: any; public _moduleElementBrand: any; + public _statementBrand: any; public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, ifKeyword: ISyntaxToken, openParenToken: ISyntaxToken, condition: IExpressionSyntax, closeParenToken: ISyntaxToken, statement: IStatementSyntax, elseClause: ElseClauseSyntax) { if (data) { this.__data = data; } this.ifKeyword = ifKeyword, @@ -840,17 +721,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.IfStatement; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitIfStatement(this); - } } export class VariableStatementSyntax implements ISyntaxNode, IStatementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public modifiers: ISyntaxToken[]; public variableDeclaration: VariableDeclarationSyntax; public semicolonToken: ISyntaxToken; - public _statementBrand: any; public _moduleElementBrand: any; + public _statementBrand: any; public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, modifiers: ISyntaxToken[], variableDeclaration: VariableDeclarationSyntax, semicolonToken: ISyntaxToken) { if (data) { this.__data = data; } this.modifiers = modifiers, @@ -864,16 +741,12 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.VariableStatement; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitVariableStatement(this); - } } export class ExpressionStatementSyntax implements ISyntaxNode, IStatementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public expression: IExpressionSyntax; public semicolonToken: ISyntaxToken; - public _statementBrand: any; public _moduleElementBrand: any; + public _statementBrand: any; public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, expression: IExpressionSyntax, semicolonToken: ISyntaxToken) { if (data) { this.__data = data; } this.expression = expression, @@ -885,17 +758,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ExpressionStatement; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitExpressionStatement(this); - } } export class ReturnStatementSyntax implements ISyntaxNode, IStatementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public returnKeyword: ISyntaxToken; public expression: IExpressionSyntax; public semicolonToken: ISyntaxToken; - public _statementBrand: any; public _moduleElementBrand: any; + public _statementBrand: any; public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, returnKeyword: ISyntaxToken, expression: IExpressionSyntax, semicolonToken: ISyntaxToken) { if (data) { this.__data = data; } this.returnKeyword = returnKeyword, @@ -909,10 +778,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ReturnStatement; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitReturnStatement(this); - } } export class SwitchStatementSyntax implements ISyntaxNode, IStatementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -923,7 +788,7 @@ module TypeScript { public openBraceToken: ISyntaxToken; public switchClauses: ISwitchClauseSyntax[]; public closeBraceToken: ISyntaxToken; - public _statementBrand: any; public _moduleElementBrand: any; + public _statementBrand: any; public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, switchKeyword: ISyntaxToken, openParenToken: ISyntaxToken, expression: IExpressionSyntax, closeParenToken: ISyntaxToken, openBraceToken: ISyntaxToken, switchClauses: ISwitchClauseSyntax[], closeBraceToken: ISyntaxToken) { if (data) { this.__data = data; } this.switchKeyword = switchKeyword, @@ -945,17 +810,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.SwitchStatement; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitSwitchStatement(this); - } } export class BreakStatementSyntax implements ISyntaxNode, IStatementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public breakKeyword: ISyntaxToken; public identifier: ISyntaxToken; public semicolonToken: ISyntaxToken; - public _statementBrand: any; public _moduleElementBrand: any; + public _statementBrand: any; public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, breakKeyword: ISyntaxToken, identifier: ISyntaxToken, semicolonToken: ISyntaxToken) { if (data) { this.__data = data; } this.breakKeyword = breakKeyword, @@ -969,17 +830,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.BreakStatement; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitBreakStatement(this); - } } export class ContinueStatementSyntax implements ISyntaxNode, IStatementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public continueKeyword: ISyntaxToken; public identifier: ISyntaxToken; public semicolonToken: ISyntaxToken; - public _statementBrand: any; public _moduleElementBrand: any; + public _statementBrand: any; public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, continueKeyword: ISyntaxToken, identifier: ISyntaxToken, semicolonToken: ISyntaxToken) { if (data) { this.__data = data; } this.continueKeyword = continueKeyword, @@ -993,10 +850,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ContinueStatement; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitContinueStatement(this); - } } export class ForStatementSyntax implements ISyntaxNode, IStatementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -1010,7 +863,7 @@ module TypeScript { public incrementor: IExpressionSyntax; public closeParenToken: ISyntaxToken; public statement: IStatementSyntax; - public _statementBrand: any; public _moduleElementBrand: any; + public _statementBrand: any; public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, forKeyword: ISyntaxToken, openParenToken: ISyntaxToken, variableDeclaration: VariableDeclarationSyntax, initializer: IExpressionSyntax, firstSemicolonToken: ISyntaxToken, condition: IExpressionSyntax, secondSemicolonToken: ISyntaxToken, incrementor: IExpressionSyntax, closeParenToken: ISyntaxToken, statement: IStatementSyntax) { if (data) { this.__data = data; } this.forKeyword = forKeyword, @@ -1038,10 +891,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ForStatement; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitForStatement(this); - } } export class ForInStatementSyntax implements ISyntaxNode, IStatementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -1053,7 +902,7 @@ module TypeScript { public expression: IExpressionSyntax; public closeParenToken: ISyntaxToken; public statement: IStatementSyntax; - public _statementBrand: any; public _moduleElementBrand: any; + public _statementBrand: any; public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, forKeyword: ISyntaxToken, openParenToken: ISyntaxToken, variableDeclaration: VariableDeclarationSyntax, left: IExpressionSyntax, inKeyword: ISyntaxToken, expression: IExpressionSyntax, closeParenToken: ISyntaxToken, statement: IStatementSyntax) { if (data) { this.__data = data; } this.forKeyword = forKeyword, @@ -1077,15 +926,11 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ForInStatement; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitForInStatement(this); - } } export class EmptyStatementSyntax implements ISyntaxNode, IStatementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public semicolonToken: ISyntaxToken; - public _statementBrand: any; public _moduleElementBrand: any; + public _statementBrand: any; public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, semicolonToken: ISyntaxToken) { if (data) { this.__data = data; } this.semicolonToken = semicolonToken, @@ -1095,17 +940,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.EmptyStatement; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitEmptyStatement(this); - } } export class ThrowStatementSyntax implements ISyntaxNode, IStatementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public throwKeyword: ISyntaxToken; public expression: IExpressionSyntax; public semicolonToken: ISyntaxToken; - public _statementBrand: any; public _moduleElementBrand: any; + public _statementBrand: any; public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, throwKeyword: ISyntaxToken, expression: IExpressionSyntax, semicolonToken: ISyntaxToken) { if (data) { this.__data = data; } this.throwKeyword = throwKeyword, @@ -1119,10 +960,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ThrowStatement; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitThrowStatement(this); - } } export class WhileStatementSyntax implements ISyntaxNode, IStatementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -1131,7 +968,7 @@ module TypeScript { public condition: IExpressionSyntax; public closeParenToken: ISyntaxToken; public statement: IStatementSyntax; - public _statementBrand: any; public _moduleElementBrand: any; + public _statementBrand: any; public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, whileKeyword: ISyntaxToken, openParenToken: ISyntaxToken, condition: IExpressionSyntax, closeParenToken: ISyntaxToken, statement: IStatementSyntax) { if (data) { this.__data = data; } this.whileKeyword = whileKeyword, @@ -1149,10 +986,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.WhileStatement; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitWhileStatement(this); - } } export class TryStatementSyntax implements ISyntaxNode, IStatementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -1160,7 +993,7 @@ module TypeScript { public block: BlockSyntax; public catchClause: CatchClauseSyntax; public finallyClause: FinallyClauseSyntax; - public _statementBrand: any; public _moduleElementBrand: any; + public _statementBrand: any; public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, tryKeyword: ISyntaxToken, block: BlockSyntax, catchClause: CatchClauseSyntax, finallyClause: FinallyClauseSyntax) { if (data) { this.__data = data; } this.tryKeyword = tryKeyword, @@ -1176,17 +1009,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.TryStatement; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitTryStatement(this); - } } export class LabeledStatementSyntax implements ISyntaxNode, IStatementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public identifier: ISyntaxToken; public colonToken: ISyntaxToken; public statement: IStatementSyntax; - public _statementBrand: any; public _moduleElementBrand: any; + public _statementBrand: any; public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, identifier: ISyntaxToken, colonToken: ISyntaxToken, statement: IStatementSyntax) { if (data) { this.__data = data; } this.identifier = identifier, @@ -1200,10 +1029,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.LabeledStatement; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitLabeledStatement(this); - } } export class DoStatementSyntax implements ISyntaxNode, IStatementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -1214,7 +1039,7 @@ module TypeScript { public condition: IExpressionSyntax; public closeParenToken: ISyntaxToken; public semicolonToken: ISyntaxToken; - public _statementBrand: any; public _moduleElementBrand: any; + public _statementBrand: any; public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, doKeyword: ISyntaxToken, statement: IStatementSyntax, whileKeyword: ISyntaxToken, openParenToken: ISyntaxToken, condition: IExpressionSyntax, closeParenToken: ISyntaxToken, semicolonToken: ISyntaxToken) { if (data) { this.__data = data; } this.doKeyword = doKeyword, @@ -1236,16 +1061,12 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.DoStatement; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitDoStatement(this); - } } export class DebuggerStatementSyntax implements ISyntaxNode, IStatementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public debuggerKeyword: ISyntaxToken; public semicolonToken: ISyntaxToken; - public _statementBrand: any; public _moduleElementBrand: any; + public _statementBrand: any; public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, debuggerKeyword: ISyntaxToken, semicolonToken: ISyntaxToken) { if (data) { this.__data = data; } this.debuggerKeyword = debuggerKeyword, @@ -1257,10 +1078,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.DebuggerStatement; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitDebuggerStatement(this); - } } export class WithStatementSyntax implements ISyntaxNode, IStatementSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -1269,7 +1086,7 @@ module TypeScript { public condition: IExpressionSyntax; public closeParenToken: ISyntaxToken; public statement: IStatementSyntax; - public _statementBrand: any; public _moduleElementBrand: any; + public _statementBrand: any; public _moduleElementBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, withKeyword: ISyntaxToken, openParenToken: ISyntaxToken, condition: IExpressionSyntax, closeParenToken: ISyntaxToken, statement: IStatementSyntax) { if (data) { this.__data = data; } this.withKeyword = withKeyword, @@ -1287,16 +1104,12 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.WithStatement; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitWithStatement(this); - } } export class PrefixUnaryExpressionSyntax implements ISyntaxNode, IUnaryExpressionSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public operatorToken: ISyntaxToken; public operand: IUnaryExpressionSyntax; - public _unaryExpressionBrand: any; public _expressionBrand: any; + public _unaryExpressionBrand: any; public _expressionBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, operatorToken: ISyntaxToken, operand: IUnaryExpressionSyntax) { if (data) { this.__data = data; } this.operatorToken = operatorToken, @@ -1308,16 +1121,12 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.PrefixUnaryExpression; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitPrefixUnaryExpression(this); - } } export class DeleteExpressionSyntax implements ISyntaxNode, IUnaryExpressionSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public deleteKeyword: ISyntaxToken; public expression: IUnaryExpressionSyntax; - public _unaryExpressionBrand: any; public _expressionBrand: any; + public _unaryExpressionBrand: any; public _expressionBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, deleteKeyword: ISyntaxToken, expression: IUnaryExpressionSyntax) { if (data) { this.__data = data; } this.deleteKeyword = deleteKeyword, @@ -1329,16 +1138,12 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.DeleteExpression; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitDeleteExpression(this); - } } export class TypeOfExpressionSyntax implements ISyntaxNode, IUnaryExpressionSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public typeOfKeyword: ISyntaxToken; public expression: IUnaryExpressionSyntax; - public _unaryExpressionBrand: any; public _expressionBrand: any; + public _unaryExpressionBrand: any; public _expressionBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, typeOfKeyword: ISyntaxToken, expression: IUnaryExpressionSyntax) { if (data) { this.__data = data; } this.typeOfKeyword = typeOfKeyword, @@ -1350,16 +1155,12 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.TypeOfExpression; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitTypeOfExpression(this); - } } export class VoidExpressionSyntax implements ISyntaxNode, IUnaryExpressionSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public voidKeyword: ISyntaxToken; public expression: IUnaryExpressionSyntax; - public _unaryExpressionBrand: any; public _expressionBrand: any; + public _unaryExpressionBrand: any; public _expressionBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, voidKeyword: ISyntaxToken, expression: IUnaryExpressionSyntax) { if (data) { this.__data = data; } this.voidKeyword = voidKeyword, @@ -1371,10 +1172,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.VoidExpression; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitVoidExpression(this); - } } export class ConditionalExpressionSyntax implements ISyntaxNode, IExpressionSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -1383,7 +1180,7 @@ module TypeScript { public whenTrue: IExpressionSyntax; public colonToken: ISyntaxToken; public whenFalse: IExpressionSyntax; - public _expressionBrand: any; + public _expressionBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, condition: IExpressionSyntax, questionToken: ISyntaxToken, whenTrue: IExpressionSyntax, colonToken: ISyntaxToken, whenFalse: IExpressionSyntax) { if (data) { this.__data = data; } this.condition = condition, @@ -1401,17 +1198,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ConditionalExpression; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitConditionalExpression(this); - } } export class BinaryExpressionSyntax implements ISyntaxNode, IExpressionSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public left: IExpressionSyntax; public operatorToken: ISyntaxToken; public right: IExpressionSyntax; - public _expressionBrand: any; + public _expressionBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, left: IExpressionSyntax, operatorToken: ISyntaxToken, right: IExpressionSyntax) { if (data) { this.__data = data; } this.left = left, @@ -1425,16 +1218,12 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.BinaryExpression; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitBinaryExpression(this); - } } export class PostfixUnaryExpressionSyntax implements ISyntaxNode, IPostfixExpressionSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public operand: ILeftHandSideExpressionSyntax; public operatorToken: ISyntaxToken; - public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; + public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, operand: ILeftHandSideExpressionSyntax, operatorToken: ISyntaxToken) { if (data) { this.__data = data; } this.operand = operand, @@ -1446,17 +1235,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.PostfixUnaryExpression; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitPostfixUnaryExpression(this); - } } export class MemberAccessExpressionSyntax implements ISyntaxNode, IMemberExpressionSyntax, ICallExpressionSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public expression: ILeftHandSideExpressionSyntax; public dotToken: ISyntaxToken; public name: ISyntaxToken; - public _memberExpressionBrand: any; public _callExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; + public _memberExpressionBrand: any; public _callExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, expression: ILeftHandSideExpressionSyntax, dotToken: ISyntaxToken, name: ISyntaxToken) { if (data) { this.__data = data; } this.expression = expression, @@ -1470,16 +1255,12 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.MemberAccessExpression; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitMemberAccessExpression(this); - } } export class InvocationExpressionSyntax implements ISyntaxNode, ICallExpressionSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public expression: ILeftHandSideExpressionSyntax; public argumentList: ArgumentListSyntax; - public _callExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; + public _callExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, expression: ILeftHandSideExpressionSyntax, argumentList: ArgumentListSyntax) { if (data) { this.__data = data; } this.expression = expression, @@ -1491,17 +1272,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.InvocationExpression; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitInvocationExpression(this); - } } export class ArrayLiteralExpressionSyntax implements ISyntaxNode, IPrimaryExpressionSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public openBracketToken: ISyntaxToken; public expressions: ISeparatedSyntaxList; public closeBracketToken: ISyntaxToken; - public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; + public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, openBracketToken: ISyntaxToken, expressions: ISeparatedSyntaxList, closeBracketToken: ISyntaxToken) { if (data) { this.__data = data; } this.openBracketToken = openBracketToken, @@ -1515,17 +1292,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ArrayLiteralExpression; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitArrayLiteralExpression(this); - } } export class ObjectLiteralExpressionSyntax implements ISyntaxNode, IPrimaryExpressionSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public openBraceToken: ISyntaxToken; public propertyAssignments: ISeparatedSyntaxList; public closeBraceToken: ISyntaxToken; - public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; + public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, openBraceToken: ISyntaxToken, propertyAssignments: ISeparatedSyntaxList, closeBraceToken: ISyntaxToken) { if (data) { this.__data = data; } this.openBraceToken = openBraceToken, @@ -1539,17 +1312,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ObjectLiteralExpression; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitObjectLiteralExpression(this); - } } export class ObjectCreationExpressionSyntax implements ISyntaxNode, IPrimaryExpressionSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public newKeyword: ISyntaxToken; public expression: IMemberExpressionSyntax; public argumentList: ArgumentListSyntax; - public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; + public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, newKeyword: ISyntaxToken, expression: IMemberExpressionSyntax, argumentList: ArgumentListSyntax) { if (data) { this.__data = data; } this.newKeyword = newKeyword, @@ -1563,17 +1332,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ObjectCreationExpression; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitObjectCreationExpression(this); - } } export class ParenthesizedExpressionSyntax implements ISyntaxNode, IPrimaryExpressionSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public openParenToken: ISyntaxToken; public expression: IExpressionSyntax; public closeParenToken: ISyntaxToken; - public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; + public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, openParenToken: ISyntaxToken, expression: IExpressionSyntax, closeParenToken: ISyntaxToken) { if (data) { this.__data = data; } this.openParenToken = openParenToken, @@ -1587,10 +1352,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ParenthesizedExpression; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitParenthesizedExpression(this); - } } export class ParenthesizedArrowFunctionExpressionSyntax implements ISyntaxNode, IUnaryExpressionSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -1598,7 +1359,7 @@ module TypeScript { public equalsGreaterThanToken: ISyntaxToken; public block: BlockSyntax; public expression: IExpressionSyntax; - public _unaryExpressionBrand: any; public _expressionBrand: any; + public _unaryExpressionBrand: any; public _expressionBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, callSignature: CallSignatureSyntax, equalsGreaterThanToken: ISyntaxToken, block: BlockSyntax, expression: IExpressionSyntax) { if (data) { this.__data = data; } this.callSignature = callSignature, @@ -1614,10 +1375,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ParenthesizedArrowFunctionExpression; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitParenthesizedArrowFunctionExpression(this); - } } export class SimpleArrowFunctionExpressionSyntax implements ISyntaxNode, IUnaryExpressionSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -1625,7 +1382,7 @@ module TypeScript { public equalsGreaterThanToken: ISyntaxToken; public block: BlockSyntax; public expression: IExpressionSyntax; - public _unaryExpressionBrand: any; public _expressionBrand: any; + public _unaryExpressionBrand: any; public _expressionBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, parameter: ParameterSyntax, equalsGreaterThanToken: ISyntaxToken, block: BlockSyntax, expression: IExpressionSyntax) { if (data) { this.__data = data; } this.parameter = parameter, @@ -1641,10 +1398,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.SimpleArrowFunctionExpression; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitSimpleArrowFunctionExpression(this); - } } export class CastExpressionSyntax implements ISyntaxNode, IUnaryExpressionSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -1652,7 +1405,7 @@ module TypeScript { public type: ITypeSyntax; public greaterThanToken: ISyntaxToken; public expression: IUnaryExpressionSyntax; - public _unaryExpressionBrand: any; public _expressionBrand: any; + public _unaryExpressionBrand: any; public _expressionBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, lessThanToken: ISyntaxToken, type: ITypeSyntax, greaterThanToken: ISyntaxToken, expression: IUnaryExpressionSyntax) { if (data) { this.__data = data; } this.lessThanToken = lessThanToken, @@ -1668,10 +1421,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.CastExpression; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitCastExpression(this); - } } export class ElementAccessExpressionSyntax implements ISyntaxNode, IMemberExpressionSyntax, ICallExpressionSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -1679,7 +1428,7 @@ module TypeScript { public openBracketToken: ISyntaxToken; public argumentExpression: IExpressionSyntax; public closeBracketToken: ISyntaxToken; - public _memberExpressionBrand: any; public _callExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; + public _memberExpressionBrand: any; public _callExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, expression: ILeftHandSideExpressionSyntax, openBracketToken: ISyntaxToken, argumentExpression: IExpressionSyntax, closeBracketToken: ISyntaxToken) { if (data) { this.__data = data; } this.expression = expression, @@ -1695,10 +1444,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ElementAccessExpression; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitElementAccessExpression(this); - } } export class FunctionExpressionSyntax implements ISyntaxNode, IPrimaryExpressionSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -1706,7 +1451,7 @@ module TypeScript { public identifier: ISyntaxToken; public callSignature: CallSignatureSyntax; public block: BlockSyntax; - public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; + public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, functionKeyword: ISyntaxToken, identifier: ISyntaxToken, callSignature: CallSignatureSyntax, block: BlockSyntax) { if (data) { this.__data = data; } this.functionKeyword = functionKeyword, @@ -1722,14 +1467,10 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.FunctionExpression; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitFunctionExpression(this); - } } export class OmittedExpressionSyntax implements ISyntaxNode, IExpressionSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; - public _expressionBrand: any; + public _expressionBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number) { if (data) { this.__data = data; } } @@ -1737,16 +1478,12 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.OmittedExpression; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitOmittedExpression(this); - } } export class TemplateExpressionSyntax implements ISyntaxNode, IPrimaryExpressionSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public templateStartToken: ISyntaxToken; public templateClauses: TemplateClauseSyntax[]; - public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; + public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, templateStartToken: ISyntaxToken, templateClauses: TemplateClauseSyntax[]) { if (data) { this.__data = data; } this.templateStartToken = templateStartToken, @@ -1758,16 +1495,12 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.TemplateExpression; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitTemplateExpression(this); - } } export class TemplateAccessExpressionSyntax implements ISyntaxNode, IMemberExpressionSyntax, ICallExpressionSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public expression: ILeftHandSideExpressionSyntax; public templateExpression: IPrimaryExpressionSyntax; - public _memberExpressionBrand: any; public _callExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; + public _memberExpressionBrand: any; public _callExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, expression: ILeftHandSideExpressionSyntax, templateExpression: IPrimaryExpressionSyntax) { if (data) { this.__data = data; } this.expression = expression, @@ -1779,15 +1512,12 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.TemplateAccessExpression; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitTemplateAccessExpression(this); - } } export class VariableDeclarationSyntax implements ISyntaxNode { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public varKeyword: ISyntaxToken; public variableDeclarators: ISeparatedSyntaxList; + public _syntaxNodeOrTokenBrand: any; constructor(data: number, varKeyword: ISyntaxToken, variableDeclarators: ISeparatedSyntaxList) { if (data) { this.__data = data; } this.varKeyword = varKeyword, @@ -1799,16 +1529,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.VariableDeclaration; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitVariableDeclaration(this); - } } export class VariableDeclaratorSyntax implements ISyntaxNode { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public propertyName: ISyntaxToken; public typeAnnotation: TypeAnnotationSyntax; public equalsValueClause: EqualsValueClauseSyntax; + public _syntaxNodeOrTokenBrand: any; constructor(data: number, propertyName: ISyntaxToken, typeAnnotation: TypeAnnotationSyntax, equalsValueClause: EqualsValueClauseSyntax) { if (data) { this.__data = data; } this.propertyName = propertyName, @@ -1822,10 +1549,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.VariableDeclarator; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitVariableDeclarator(this); - } } export class ArgumentListSyntax implements ISyntaxNode { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -1833,6 +1556,7 @@ module TypeScript { public openParenToken: ISyntaxToken; public arguments: ISeparatedSyntaxList; public closeParenToken: ISyntaxToken; + public _syntaxNodeOrTokenBrand: any; constructor(data: number, typeArgumentList: TypeArgumentListSyntax, openParenToken: ISyntaxToken, _arguments: ISeparatedSyntaxList, closeParenToken: ISyntaxToken) { if (data) { this.__data = data; } this.typeArgumentList = typeArgumentList, @@ -1848,16 +1572,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ArgumentList; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitArgumentList(this); - } } export class ParameterListSyntax implements ISyntaxNode { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public openParenToken: ISyntaxToken; public parameters: ISeparatedSyntaxList; public closeParenToken: ISyntaxToken; + public _syntaxNodeOrTokenBrand: any; constructor(data: number, openParenToken: ISyntaxToken, parameters: ISeparatedSyntaxList, closeParenToken: ISyntaxToken) { if (data) { this.__data = data; } this.openParenToken = openParenToken, @@ -1871,16 +1592,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ParameterList; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitParameterList(this); - } } export class TypeArgumentListSyntax implements ISyntaxNode { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public lessThanToken: ISyntaxToken; public typeArguments: ISeparatedSyntaxList; public greaterThanToken: ISyntaxToken; + public _syntaxNodeOrTokenBrand: any; constructor(data: number, lessThanToken: ISyntaxToken, typeArguments: ISeparatedSyntaxList, greaterThanToken: ISyntaxToken) { if (data) { this.__data = data; } this.lessThanToken = lessThanToken, @@ -1894,16 +1612,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.TypeArgumentList; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitTypeArgumentList(this); - } } export class TypeParameterListSyntax implements ISyntaxNode { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public lessThanToken: ISyntaxToken; public typeParameters: ISeparatedSyntaxList; public greaterThanToken: ISyntaxToken; + public _syntaxNodeOrTokenBrand: any; constructor(data: number, lessThanToken: ISyntaxToken, typeParameters: ISeparatedSyntaxList, greaterThanToken: ISyntaxToken) { if (data) { this.__data = data; } this.lessThanToken = lessThanToken, @@ -1917,15 +1632,12 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.TypeParameterList; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitTypeParameterList(this); - } } export class HeritageClauseSyntax implements ISyntaxNode { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public extendsOrImplementsKeyword: ISyntaxToken; public typeNames: ISeparatedSyntaxList; + public _syntaxNodeOrTokenBrand: any; constructor(data: number, extendsOrImplementsKeyword: ISyntaxToken, typeNames: ISeparatedSyntaxList) { if (data) { this.__data = data; } this.extendsOrImplementsKeyword = extendsOrImplementsKeyword, @@ -1937,15 +1649,12 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.HeritageClause; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitHeritageClause(this); - } } export class EqualsValueClauseSyntax implements ISyntaxNode { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public equalsToken: ISyntaxToken; public value: IExpressionSyntax; + public _syntaxNodeOrTokenBrand: any; constructor(data: number, equalsToken: ISyntaxToken, value: IExpressionSyntax) { if (data) { this.__data = data; } this.equalsToken = equalsToken, @@ -1957,10 +1666,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.EqualsValueClause; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitEqualsValueClause(this); - } } export class CaseSwitchClauseSyntax implements ISyntaxNode, ISwitchClauseSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -1968,7 +1673,7 @@ module TypeScript { public expression: IExpressionSyntax; public colonToken: ISyntaxToken; public statements: IStatementSyntax[]; - public _switchClauseBrand: any; + public _switchClauseBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, caseKeyword: ISyntaxToken, expression: IExpressionSyntax, colonToken: ISyntaxToken, statements: IStatementSyntax[]) { if (data) { this.__data = data; } this.caseKeyword = caseKeyword, @@ -1984,17 +1689,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.CaseSwitchClause; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitCaseSwitchClause(this); - } } export class DefaultSwitchClauseSyntax implements ISyntaxNode, ISwitchClauseSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public defaultKeyword: ISyntaxToken; public colonToken: ISyntaxToken; public statements: IStatementSyntax[]; - public _switchClauseBrand: any; + public _switchClauseBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, defaultKeyword: ISyntaxToken, colonToken: ISyntaxToken, statements: IStatementSyntax[]) { if (data) { this.__data = data; } this.defaultKeyword = defaultKeyword, @@ -2008,15 +1709,12 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.DefaultSwitchClause; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitDefaultSwitchClause(this); - } } export class ElseClauseSyntax implements ISyntaxNode { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public elseKeyword: ISyntaxToken; public statement: IStatementSyntax; + public _syntaxNodeOrTokenBrand: any; constructor(data: number, elseKeyword: ISyntaxToken, statement: IStatementSyntax) { if (data) { this.__data = data; } this.elseKeyword = elseKeyword, @@ -2028,10 +1726,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ElseClause; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitElseClause(this); - } } export class CatchClauseSyntax implements ISyntaxNode { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -2041,6 +1735,7 @@ module TypeScript { public typeAnnotation: TypeAnnotationSyntax; public closeParenToken: ISyntaxToken; public block: BlockSyntax; + public _syntaxNodeOrTokenBrand: any; constructor(data: number, catchKeyword: ISyntaxToken, openParenToken: ISyntaxToken, identifier: ISyntaxToken, typeAnnotation: TypeAnnotationSyntax, closeParenToken: ISyntaxToken, block: BlockSyntax) { if (data) { this.__data = data; } this.catchKeyword = catchKeyword, @@ -2060,15 +1755,12 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.CatchClause; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitCatchClause(this); - } } export class FinallyClauseSyntax implements ISyntaxNode { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public finallyKeyword: ISyntaxToken; public block: BlockSyntax; + public _syntaxNodeOrTokenBrand: any; constructor(data: number, finallyKeyword: ISyntaxToken, block: BlockSyntax) { if (data) { this.__data = data; } this.finallyKeyword = finallyKeyword, @@ -2080,15 +1772,12 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.FinallyClause; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitFinallyClause(this); - } } export class TemplateClauseSyntax implements ISyntaxNode { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public expression: IExpressionSyntax; public templateMiddleOrEndToken: ISyntaxToken; + public _syntaxNodeOrTokenBrand: any; constructor(data: number, expression: IExpressionSyntax, templateMiddleOrEndToken: ISyntaxToken) { if (data) { this.__data = data; } this.expression = expression, @@ -2100,15 +1789,12 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.TemplateClause; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitTemplateClause(this); - } } export class TypeParameterSyntax implements ISyntaxNode { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public identifier: ISyntaxToken; public constraint: ConstraintSyntax; + public _syntaxNodeOrTokenBrand: any; constructor(data: number, identifier: ISyntaxToken, constraint: ConstraintSyntax) { if (data) { this.__data = data; } this.identifier = identifier, @@ -2120,15 +1806,12 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.TypeParameter; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitTypeParameter(this); - } } export class ConstraintSyntax implements ISyntaxNode { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public extendsKeyword: ISyntaxToken; public typeOrExpression: ISyntaxNodeOrToken; + public _syntaxNodeOrTokenBrand: any; constructor(data: number, extendsKeyword: ISyntaxToken, typeOrExpression: ISyntaxNodeOrToken) { if (data) { this.__data = data; } this.extendsKeyword = extendsKeyword, @@ -2140,17 +1823,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.Constraint; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitConstraint(this); - } } export class SimplePropertyAssignmentSyntax implements ISyntaxNode, IPropertyAssignmentSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public propertyName: ISyntaxToken; public colonToken: ISyntaxToken; public expression: IExpressionSyntax; - public _propertyAssignmentBrand: any; + public _propertyAssignmentBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, propertyName: ISyntaxToken, colonToken: ISyntaxToken, expression: IExpressionSyntax) { if (data) { this.__data = data; } this.propertyName = propertyName, @@ -2164,17 +1843,13 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.SimplePropertyAssignment; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitSimplePropertyAssignment(this); - } } export class FunctionPropertyAssignmentSyntax implements ISyntaxNode, IPropertyAssignmentSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public propertyName: ISyntaxToken; public callSignature: CallSignatureSyntax; public block: BlockSyntax; - public _propertyAssignmentBrand: any; + public _propertyAssignmentBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, propertyName: ISyntaxToken, callSignature: CallSignatureSyntax, block: BlockSyntax) { if (data) { this.__data = data; } this.propertyName = propertyName, @@ -2188,10 +1863,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.FunctionPropertyAssignment; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitFunctionPropertyAssignment(this); - } } export class ParameterSyntax implements ISyntaxNode { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -2201,6 +1872,7 @@ module TypeScript { public questionToken: ISyntaxToken; public typeAnnotation: TypeAnnotationSyntax; public equalsValueClause: EqualsValueClauseSyntax; + public _syntaxNodeOrTokenBrand: any; constructor(data: number, dotDotDotToken: ISyntaxToken, modifiers: ISyntaxToken[], identifier: ISyntaxToken, questionToken: ISyntaxToken, typeAnnotation: TypeAnnotationSyntax, equalsValueClause: EqualsValueClauseSyntax) { if (data) { this.__data = data; } this.dotDotDotToken = dotDotDotToken, @@ -2220,15 +1892,12 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.Parameter; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitParameter(this); - } } export class EnumElementSyntax implements ISyntaxNode { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public propertyName: ISyntaxToken; public equalsValueClause: EqualsValueClauseSyntax; + public _syntaxNodeOrTokenBrand: any; constructor(data: number, propertyName: ISyntaxToken, equalsValueClause: EqualsValueClauseSyntax) { if (data) { this.__data = data; } this.propertyName = propertyName, @@ -2240,15 +1909,12 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.EnumElement; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitEnumElement(this); - } } export class TypeAnnotationSyntax implements ISyntaxNode { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public colonToken: ISyntaxToken; public type: ITypeSyntax; + public _syntaxNodeOrTokenBrand: any; constructor(data: number, colonToken: ISyntaxToken, type: ITypeSyntax) { if (data) { this.__data = data; } this.colonToken = colonToken, @@ -2260,10 +1926,6 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.TypeAnnotation; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitTypeAnnotation(this); - } } export class ExternalModuleReferenceSyntax implements ISyntaxNode, IModuleReferenceSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; @@ -2271,7 +1933,7 @@ module TypeScript { public openParenToken: ISyntaxToken; public stringLiteral: ISyntaxToken; public closeParenToken: ISyntaxToken; - public _moduleReferenceBrand: any; + public _moduleReferenceBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, requireKeyword: ISyntaxToken, openParenToken: ISyntaxToken, stringLiteral: ISyntaxToken, closeParenToken: ISyntaxToken) { if (data) { this.__data = data; } this.requireKeyword = requireKeyword, @@ -2287,15 +1949,11 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ExternalModuleReference; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitExternalModuleReference(this); - } } export class ModuleNameModuleReferenceSyntax implements ISyntaxNode, IModuleReferenceSyntax { public __data: number; public __cachedTokens: ISyntaxToken[]; public parent: ISyntaxElement; public moduleName: INameSyntax; - public _moduleReferenceBrand: any; + public _moduleReferenceBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(data: number, moduleName: INameSyntax) { if (data) { this.__data = data; } this.moduleName = moduleName, @@ -2305,9 +1963,5 @@ module TypeScript { public kind(): SyntaxKind { return SyntaxKind.ModuleNameModuleReference; } - - public accept(visitor: ISyntaxVisitor): SyntaxKind { - return visitor.visitModuleNameModuleReference(this); - } } } \ No newline at end of file diff --git a/src/services/syntax/syntaxToken.ts b/src/services/syntax/syntaxToken.ts index 9ea8047245d..28045ddc37e 100644 --- a/src/services/syntax/syntaxToken.ts +++ b/src/services/syntax/syntaxToken.ts @@ -304,7 +304,7 @@ module TypeScript.Syntax { } class EmptyToken implements ISyntaxToken { - public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _typeBrand: any; + public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _typeBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(private _kind: SyntaxKind) { } @@ -427,7 +427,7 @@ module TypeScript.Syntax { private _text: string; private _trailingTrivia: ISyntaxTriviaList; - public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _typeBrand: any; + public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _typeBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(fullStart: number, kind: SyntaxKind, @@ -496,7 +496,7 @@ module TypeScript.Syntax { } class ConvertedKeywordToken implements ISyntaxToken { - public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _typeBrand: any; + public _primaryExpressionBrand: any; public _memberExpressionBrand: any; public _leftHandSideExpressionBrand: any; public _postfixExpressionBrand: any; public _unaryExpressionBrand: any; public _expressionBrand: any; public _typeBrand: any; public _syntaxNodeOrTokenBrand: any; constructor(private underlyingToken: ISyntaxToken) { } diff --git a/src/services/syntax/syntaxVisitor.generated.ts b/src/services/syntax/syntaxVisitor.generated.ts index f0d50ed5263..4eca73a7765 100644 --- a/src/services/syntax/syntaxVisitor.generated.ts +++ b/src/services/syntax/syntaxVisitor.generated.ts @@ -3,7 +3,100 @@ module TypeScript { export function visitNodeOrToken(visitor: ISyntaxVisitor, element: ISyntaxNodeOrToken): any { if (element === undefined) { return undefined; } - return element.accept(visitor); + switch (element.kind()) { + case SyntaxKind.SourceUnit: return visitor.visitSourceUnit(element); + case SyntaxKind.QualifiedName: return visitor.visitQualifiedName(element); + case SyntaxKind.ObjectType: return visitor.visitObjectType(element); + case SyntaxKind.FunctionType: return visitor.visitFunctionType(element); + case SyntaxKind.ArrayType: return visitor.visitArrayType(element); + case SyntaxKind.ConstructorType: return visitor.visitConstructorType(element); + case SyntaxKind.GenericType: return visitor.visitGenericType(element); + case SyntaxKind.TypeQuery: return visitor.visitTypeQuery(element); + case SyntaxKind.TupleType: return visitor.visitTupleType(element); + case SyntaxKind.UnionType: return visitor.visitUnionType(element); + case SyntaxKind.ParenthesizedType: return visitor.visitParenthesizedType(element); + case SyntaxKind.InterfaceDeclaration: return visitor.visitInterfaceDeclaration(element); + case SyntaxKind.FunctionDeclaration: return visitor.visitFunctionDeclaration(element); + case SyntaxKind.ModuleDeclaration: return visitor.visitModuleDeclaration(element); + case SyntaxKind.ClassDeclaration: return visitor.visitClassDeclaration(element); + case SyntaxKind.EnumDeclaration: return visitor.visitEnumDeclaration(element); + case SyntaxKind.ImportDeclaration: return visitor.visitImportDeclaration(element); + case SyntaxKind.ExportAssignment: return visitor.visitExportAssignment(element); + case SyntaxKind.MemberFunctionDeclaration: return visitor.visitMemberFunctionDeclaration(element); + case SyntaxKind.MemberVariableDeclaration: return visitor.visitMemberVariableDeclaration(element); + case SyntaxKind.ConstructorDeclaration: return visitor.visitConstructorDeclaration(element); + case SyntaxKind.IndexMemberDeclaration: return visitor.visitIndexMemberDeclaration(element); + case SyntaxKind.GetAccessor: return visitor.visitGetAccessor(element); + case SyntaxKind.SetAccessor: return visitor.visitSetAccessor(element); + case SyntaxKind.PropertySignature: return visitor.visitPropertySignature(element); + case SyntaxKind.CallSignature: return visitor.visitCallSignature(element); + case SyntaxKind.ConstructSignature: return visitor.visitConstructSignature(element); + case SyntaxKind.IndexSignature: return visitor.visitIndexSignature(element); + case SyntaxKind.MethodSignature: return visitor.visitMethodSignature(element); + case SyntaxKind.Block: return visitor.visitBlock(element); + case SyntaxKind.IfStatement: return visitor.visitIfStatement(element); + case SyntaxKind.VariableStatement: return visitor.visitVariableStatement(element); + case SyntaxKind.ExpressionStatement: return visitor.visitExpressionStatement(element); + case SyntaxKind.ReturnStatement: return visitor.visitReturnStatement(element); + case SyntaxKind.SwitchStatement: return visitor.visitSwitchStatement(element); + case SyntaxKind.BreakStatement: return visitor.visitBreakStatement(element); + case SyntaxKind.ContinueStatement: return visitor.visitContinueStatement(element); + case SyntaxKind.ForStatement: return visitor.visitForStatement(element); + case SyntaxKind.ForInStatement: return visitor.visitForInStatement(element); + case SyntaxKind.EmptyStatement: return visitor.visitEmptyStatement(element); + case SyntaxKind.ThrowStatement: return visitor.visitThrowStatement(element); + case SyntaxKind.WhileStatement: return visitor.visitWhileStatement(element); + case SyntaxKind.TryStatement: return visitor.visitTryStatement(element); + case SyntaxKind.LabeledStatement: return visitor.visitLabeledStatement(element); + case SyntaxKind.DoStatement: return visitor.visitDoStatement(element); + case SyntaxKind.DebuggerStatement: return visitor.visitDebuggerStatement(element); + case SyntaxKind.WithStatement: return visitor.visitWithStatement(element); + case SyntaxKind.PrefixUnaryExpression: return visitor.visitPrefixUnaryExpression(element); + case SyntaxKind.DeleteExpression: return visitor.visitDeleteExpression(element); + case SyntaxKind.TypeOfExpression: return visitor.visitTypeOfExpression(element); + case SyntaxKind.VoidExpression: return visitor.visitVoidExpression(element); + case SyntaxKind.ConditionalExpression: return visitor.visitConditionalExpression(element); + case SyntaxKind.BinaryExpression: return visitor.visitBinaryExpression(element); + case SyntaxKind.PostfixUnaryExpression: return visitor.visitPostfixUnaryExpression(element); + case SyntaxKind.MemberAccessExpression: return visitor.visitMemberAccessExpression(element); + case SyntaxKind.InvocationExpression: return visitor.visitInvocationExpression(element); + case SyntaxKind.ArrayLiteralExpression: return visitor.visitArrayLiteralExpression(element); + case SyntaxKind.ObjectLiteralExpression: return visitor.visitObjectLiteralExpression(element); + case SyntaxKind.ObjectCreationExpression: return visitor.visitObjectCreationExpression(element); + case SyntaxKind.ParenthesizedExpression: return visitor.visitParenthesizedExpression(element); + case SyntaxKind.ParenthesizedArrowFunctionExpression: return visitor.visitParenthesizedArrowFunctionExpression(element); + case SyntaxKind.SimpleArrowFunctionExpression: return visitor.visitSimpleArrowFunctionExpression(element); + case SyntaxKind.CastExpression: return visitor.visitCastExpression(element); + case SyntaxKind.ElementAccessExpression: return visitor.visitElementAccessExpression(element); + case SyntaxKind.FunctionExpression: return visitor.visitFunctionExpression(element); + case SyntaxKind.OmittedExpression: return visitor.visitOmittedExpression(element); + case SyntaxKind.TemplateExpression: return visitor.visitTemplateExpression(element); + case SyntaxKind.TemplateAccessExpression: return visitor.visitTemplateAccessExpression(element); + case SyntaxKind.VariableDeclaration: return visitor.visitVariableDeclaration(element); + case SyntaxKind.VariableDeclarator: return visitor.visitVariableDeclarator(element); + case SyntaxKind.ArgumentList: return visitor.visitArgumentList(element); + case SyntaxKind.ParameterList: return visitor.visitParameterList(element); + case SyntaxKind.TypeArgumentList: return visitor.visitTypeArgumentList(element); + case SyntaxKind.TypeParameterList: return visitor.visitTypeParameterList(element); + case SyntaxKind.HeritageClause: return visitor.visitHeritageClause(element); + case SyntaxKind.EqualsValueClause: return visitor.visitEqualsValueClause(element); + case SyntaxKind.CaseSwitchClause: return visitor.visitCaseSwitchClause(element); + case SyntaxKind.DefaultSwitchClause: return visitor.visitDefaultSwitchClause(element); + case SyntaxKind.ElseClause: return visitor.visitElseClause(element); + case SyntaxKind.CatchClause: return visitor.visitCatchClause(element); + case SyntaxKind.FinallyClause: return visitor.visitFinallyClause(element); + case SyntaxKind.TemplateClause: return visitor.visitTemplateClause(element); + case SyntaxKind.TypeParameter: return visitor.visitTypeParameter(element); + case SyntaxKind.Constraint: return visitor.visitConstraint(element); + case SyntaxKind.SimplePropertyAssignment: return visitor.visitSimplePropertyAssignment(element); + case SyntaxKind.FunctionPropertyAssignment: return visitor.visitFunctionPropertyAssignment(element); + case SyntaxKind.Parameter: return visitor.visitParameter(element); + case SyntaxKind.EnumElement: return visitor.visitEnumElement(element); + case SyntaxKind.TypeAnnotation: return visitor.visitTypeAnnotation(element); + case SyntaxKind.ExternalModuleReference: return visitor.visitExternalModuleReference(element); + case SyntaxKind.ModuleNameModuleReference: return visitor.visitModuleNameModuleReference(element); + default: return visitor.visitToken(element); + } } export interface ISyntaxVisitor { diff --git a/src/services/syntax/syntaxWalker.generated.ts b/src/services/syntax/syntaxWalker.generated.ts index 675a572f4b7..7fb54355ca8 100644 --- a/src/services/syntax/syntaxWalker.generated.ts +++ b/src/services/syntax/syntaxWalker.generated.ts @@ -13,28 +13,19 @@ module TypeScript { this.visitToken(token); } - private visitOptionalNode(node: ISyntaxNode): void { - if (node === undefined) { - return; - } - - node.accept(this); - } - public visitList(list: ISyntaxNodeOrToken[]): void { for (var i = 0, n = list.length; i < n; i++) { - list[i].accept(this); + visitNodeOrToken(this, list[i]); } } - public visitSourceUnit(node: SourceUnitSyntax): void { this.visitList(node.moduleElements); this.visitToken(node.endOfFileToken); } public visitQualifiedName(node: QualifiedNameSyntax): void { - node.left.accept(this); + visitNodeOrToken(this, node.left); this.visitToken(node.dotToken); this.visitToken(node.right); } @@ -46,34 +37,34 @@ module TypeScript { } public visitFunctionType(node: FunctionTypeSyntax): void { - this.visitOptionalNode(node.typeParameterList); - node.parameterList.accept(this); + visitNodeOrToken(this, node.typeParameterList); + visitNodeOrToken(this, node.parameterList); this.visitToken(node.equalsGreaterThanToken); - node.type.accept(this); + visitNodeOrToken(this, node.type); } public visitArrayType(node: ArrayTypeSyntax): void { - node.type.accept(this); + visitNodeOrToken(this, node.type); this.visitToken(node.openBracketToken); this.visitToken(node.closeBracketToken); } public visitConstructorType(node: ConstructorTypeSyntax): void { this.visitToken(node.newKeyword); - this.visitOptionalNode(node.typeParameterList); - node.parameterList.accept(this); + visitNodeOrToken(this, node.typeParameterList); + visitNodeOrToken(this, node.parameterList); this.visitToken(node.equalsGreaterThanToken); - node.type.accept(this); + visitNodeOrToken(this, node.type); } public visitGenericType(node: GenericTypeSyntax): void { - node.name.accept(this); - node.typeArgumentList.accept(this); + visitNodeOrToken(this, node.name); + visitNodeOrToken(this, node.typeArgumentList); } public visitTypeQuery(node: TypeQuerySyntax): void { this.visitToken(node.typeOfKeyword); - node.name.accept(this); + visitNodeOrToken(this, node.name); } public visitTupleType(node: TupleTypeSyntax): void { @@ -83,14 +74,14 @@ module TypeScript { } public visitUnionType(node: UnionTypeSyntax): void { - node.left.accept(this); + visitNodeOrToken(this, node.left); this.visitToken(node.barToken); - node.right.accept(this); + visitNodeOrToken(this, node.right); } public visitParenthesizedType(node: ParenthesizedTypeSyntax): void { this.visitToken(node.openParenToken); - node.type.accept(this); + visitNodeOrToken(this, node.type); this.visitToken(node.closeParenToken); } @@ -98,17 +89,17 @@ module TypeScript { this.visitList(node.modifiers); this.visitToken(node.interfaceKeyword); this.visitToken(node.identifier); - this.visitOptionalNode(node.typeParameterList); + visitNodeOrToken(this, node.typeParameterList); this.visitList(node.heritageClauses); - node.body.accept(this); + visitNodeOrToken(this, node.body); } public visitFunctionDeclaration(node: FunctionDeclarationSyntax): void { this.visitList(node.modifiers); this.visitToken(node.functionKeyword); this.visitToken(node.identifier); - node.callSignature.accept(this); - this.visitOptionalNode(node.block); + visitNodeOrToken(this, node.callSignature); + visitNodeOrToken(this, node.block); this.visitOptionalToken(node.semicolonToken); } @@ -126,7 +117,7 @@ module TypeScript { this.visitList(node.modifiers); this.visitToken(node.classKeyword); this.visitToken(node.identifier); - this.visitOptionalNode(node.typeParameterList); + visitNodeOrToken(this, node.typeParameterList); this.visitList(node.heritageClauses); this.visitToken(node.openBraceToken); this.visitList(node.classElements); @@ -147,7 +138,7 @@ module TypeScript { this.visitToken(node.importKeyword); this.visitToken(node.identifier); this.visitToken(node.equalsToken); - node.moduleReference.accept(this); + visitNodeOrToken(this, node.moduleReference); this.visitOptionalToken(node.semicolonToken); } @@ -161,28 +152,28 @@ module TypeScript { public visitMemberFunctionDeclaration(node: MemberFunctionDeclarationSyntax): void { this.visitList(node.modifiers); this.visitToken(node.propertyName); - node.callSignature.accept(this); - this.visitOptionalNode(node.block); + visitNodeOrToken(this, node.callSignature); + visitNodeOrToken(this, node.block); this.visitOptionalToken(node.semicolonToken); } public visitMemberVariableDeclaration(node: MemberVariableDeclarationSyntax): void { this.visitList(node.modifiers); - node.variableDeclarator.accept(this); + visitNodeOrToken(this, node.variableDeclarator); this.visitOptionalToken(node.semicolonToken); } public visitConstructorDeclaration(node: ConstructorDeclarationSyntax): void { this.visitList(node.modifiers); this.visitToken(node.constructorKeyword); - node.callSignature.accept(this); - this.visitOptionalNode(node.block); + visitNodeOrToken(this, node.callSignature); + visitNodeOrToken(this, node.block); this.visitOptionalToken(node.semicolonToken); } public visitIndexMemberDeclaration(node: IndexMemberDeclarationSyntax): void { this.visitList(node.modifiers); - node.indexSignature.accept(this); + visitNodeOrToken(this, node.indexSignature); this.visitOptionalToken(node.semicolonToken); } @@ -190,46 +181,46 @@ module TypeScript { this.visitList(node.modifiers); this.visitToken(node.getKeyword); this.visitToken(node.propertyName); - node.callSignature.accept(this); - node.block.accept(this); + visitNodeOrToken(this, node.callSignature); + visitNodeOrToken(this, node.block); } public visitSetAccessor(node: SetAccessorSyntax): void { this.visitList(node.modifiers); this.visitToken(node.setKeyword); this.visitToken(node.propertyName); - node.callSignature.accept(this); - node.block.accept(this); + visitNodeOrToken(this, node.callSignature); + visitNodeOrToken(this, node.block); } public visitPropertySignature(node: PropertySignatureSyntax): void { this.visitToken(node.propertyName); this.visitOptionalToken(node.questionToken); - this.visitOptionalNode(node.typeAnnotation); + visitNodeOrToken(this, node.typeAnnotation); } public visitCallSignature(node: CallSignatureSyntax): void { - this.visitOptionalNode(node.typeParameterList); - node.parameterList.accept(this); - this.visitOptionalNode(node.typeAnnotation); + visitNodeOrToken(this, node.typeParameterList); + visitNodeOrToken(this, node.parameterList); + visitNodeOrToken(this, node.typeAnnotation); } public visitConstructSignature(node: ConstructSignatureSyntax): void { this.visitToken(node.newKeyword); - node.callSignature.accept(this); + visitNodeOrToken(this, node.callSignature); } public visitIndexSignature(node: IndexSignatureSyntax): void { this.visitToken(node.openBracketToken); this.visitList(node.parameters); this.visitToken(node.closeBracketToken); - this.visitOptionalNode(node.typeAnnotation); + visitNodeOrToken(this, node.typeAnnotation); } public visitMethodSignature(node: MethodSignatureSyntax): void { this.visitToken(node.propertyName); this.visitOptionalToken(node.questionToken); - node.callSignature.accept(this); + visitNodeOrToken(this, node.callSignature); } public visitBlock(node: BlockSyntax): void { @@ -241,20 +232,20 @@ module TypeScript { public visitIfStatement(node: IfStatementSyntax): void { this.visitToken(node.ifKeyword); this.visitToken(node.openParenToken); - node.condition.accept(this); + visitNodeOrToken(this, node.condition); this.visitToken(node.closeParenToken); - node.statement.accept(this); - this.visitOptionalNode(node.elseClause); + visitNodeOrToken(this, node.statement); + visitNodeOrToken(this, node.elseClause); } public visitVariableStatement(node: VariableStatementSyntax): void { this.visitList(node.modifiers); - node.variableDeclaration.accept(this); + visitNodeOrToken(this, node.variableDeclaration); this.visitOptionalToken(node.semicolonToken); } public visitExpressionStatement(node: ExpressionStatementSyntax): void { - node.expression.accept(this); + visitNodeOrToken(this, node.expression); this.visitOptionalToken(node.semicolonToken); } @@ -267,7 +258,7 @@ module TypeScript { public visitSwitchStatement(node: SwitchStatementSyntax): void { this.visitToken(node.switchKeyword); this.visitToken(node.openParenToken); - node.expression.accept(this); + visitNodeOrToken(this, node.expression); this.visitToken(node.closeParenToken); this.visitToken(node.openBraceToken); this.visitList(node.switchClauses); @@ -289,25 +280,25 @@ module TypeScript { public visitForStatement(node: ForStatementSyntax): void { this.visitToken(node.forKeyword); this.visitToken(node.openParenToken); - this.visitOptionalNode(node.variableDeclaration); + visitNodeOrToken(this, node.variableDeclaration); visitNodeOrToken(this, node.initializer); this.visitToken(node.firstSemicolonToken); visitNodeOrToken(this, node.condition); this.visitToken(node.secondSemicolonToken); visitNodeOrToken(this, node.incrementor); this.visitToken(node.closeParenToken); - node.statement.accept(this); + visitNodeOrToken(this, node.statement); } public visitForInStatement(node: ForInStatementSyntax): void { this.visitToken(node.forKeyword); this.visitToken(node.openParenToken); - this.visitOptionalNode(node.variableDeclaration); + visitNodeOrToken(this, node.variableDeclaration); visitNodeOrToken(this, node.left); this.visitToken(node.inKeyword); - node.expression.accept(this); + visitNodeOrToken(this, node.expression); this.visitToken(node.closeParenToken); - node.statement.accept(this); + visitNodeOrToken(this, node.statement); } public visitEmptyStatement(node: EmptyStatementSyntax): void { @@ -316,37 +307,37 @@ module TypeScript { public visitThrowStatement(node: ThrowStatementSyntax): void { this.visitToken(node.throwKeyword); - node.expression.accept(this); + visitNodeOrToken(this, node.expression); this.visitOptionalToken(node.semicolonToken); } public visitWhileStatement(node: WhileStatementSyntax): void { this.visitToken(node.whileKeyword); this.visitToken(node.openParenToken); - node.condition.accept(this); + visitNodeOrToken(this, node.condition); this.visitToken(node.closeParenToken); - node.statement.accept(this); + visitNodeOrToken(this, node.statement); } public visitTryStatement(node: TryStatementSyntax): void { this.visitToken(node.tryKeyword); - node.block.accept(this); - this.visitOptionalNode(node.catchClause); - this.visitOptionalNode(node.finallyClause); + visitNodeOrToken(this, node.block); + visitNodeOrToken(this, node.catchClause); + visitNodeOrToken(this, node.finallyClause); } public visitLabeledStatement(node: LabeledStatementSyntax): void { this.visitToken(node.identifier); this.visitToken(node.colonToken); - node.statement.accept(this); + visitNodeOrToken(this, node.statement); } public visitDoStatement(node: DoStatementSyntax): void { this.visitToken(node.doKeyword); - node.statement.accept(this); + visitNodeOrToken(this, node.statement); this.visitToken(node.whileKeyword); this.visitToken(node.openParenToken); - node.condition.accept(this); + visitNodeOrToken(this, node.condition); this.visitToken(node.closeParenToken); this.visitOptionalToken(node.semicolonToken); } @@ -359,59 +350,59 @@ module TypeScript { public visitWithStatement(node: WithStatementSyntax): void { this.visitToken(node.withKeyword); this.visitToken(node.openParenToken); - node.condition.accept(this); + visitNodeOrToken(this, node.condition); this.visitToken(node.closeParenToken); - node.statement.accept(this); + visitNodeOrToken(this, node.statement); } public visitPrefixUnaryExpression(node: PrefixUnaryExpressionSyntax): void { this.visitToken(node.operatorToken); - node.operand.accept(this); + visitNodeOrToken(this, node.operand); } public visitDeleteExpression(node: DeleteExpressionSyntax): void { this.visitToken(node.deleteKeyword); - node.expression.accept(this); + visitNodeOrToken(this, node.expression); } public visitTypeOfExpression(node: TypeOfExpressionSyntax): void { this.visitToken(node.typeOfKeyword); - node.expression.accept(this); + visitNodeOrToken(this, node.expression); } public visitVoidExpression(node: VoidExpressionSyntax): void { this.visitToken(node.voidKeyword); - node.expression.accept(this); + visitNodeOrToken(this, node.expression); } public visitConditionalExpression(node: ConditionalExpressionSyntax): void { - node.condition.accept(this); + visitNodeOrToken(this, node.condition); this.visitToken(node.questionToken); - node.whenTrue.accept(this); + visitNodeOrToken(this, node.whenTrue); this.visitToken(node.colonToken); - node.whenFalse.accept(this); + visitNodeOrToken(this, node.whenFalse); } public visitBinaryExpression(node: BinaryExpressionSyntax): void { - node.left.accept(this); + visitNodeOrToken(this, node.left); this.visitToken(node.operatorToken); - node.right.accept(this); + visitNodeOrToken(this, node.right); } public visitPostfixUnaryExpression(node: PostfixUnaryExpressionSyntax): void { - node.operand.accept(this); + visitNodeOrToken(this, node.operand); this.visitToken(node.operatorToken); } public visitMemberAccessExpression(node: MemberAccessExpressionSyntax): void { - node.expression.accept(this); + visitNodeOrToken(this, node.expression); this.visitToken(node.dotToken); this.visitToken(node.name); } public visitInvocationExpression(node: InvocationExpressionSyntax): void { - node.expression.accept(this); - node.argumentList.accept(this); + visitNodeOrToken(this, node.expression); + visitNodeOrToken(this, node.argumentList); } public visitArrayLiteralExpression(node: ArrayLiteralExpressionSyntax): void { @@ -428,49 +419,49 @@ module TypeScript { public visitObjectCreationExpression(node: ObjectCreationExpressionSyntax): void { this.visitToken(node.newKeyword); - node.expression.accept(this); - this.visitOptionalNode(node.argumentList); + visitNodeOrToken(this, node.expression); + visitNodeOrToken(this, node.argumentList); } public visitParenthesizedExpression(node: ParenthesizedExpressionSyntax): void { this.visitToken(node.openParenToken); - node.expression.accept(this); + visitNodeOrToken(this, node.expression); this.visitToken(node.closeParenToken); } public visitParenthesizedArrowFunctionExpression(node: ParenthesizedArrowFunctionExpressionSyntax): void { - node.callSignature.accept(this); + visitNodeOrToken(this, node.callSignature); this.visitToken(node.equalsGreaterThanToken); - this.visitOptionalNode(node.block); + visitNodeOrToken(this, node.block); visitNodeOrToken(this, node.expression); } public visitSimpleArrowFunctionExpression(node: SimpleArrowFunctionExpressionSyntax): void { - node.parameter.accept(this); + visitNodeOrToken(this, node.parameter); this.visitToken(node.equalsGreaterThanToken); - this.visitOptionalNode(node.block); + visitNodeOrToken(this, node.block); visitNodeOrToken(this, node.expression); } public visitCastExpression(node: CastExpressionSyntax): void { this.visitToken(node.lessThanToken); - node.type.accept(this); + visitNodeOrToken(this, node.type); this.visitToken(node.greaterThanToken); - node.expression.accept(this); + visitNodeOrToken(this, node.expression); } public visitElementAccessExpression(node: ElementAccessExpressionSyntax): void { - node.expression.accept(this); + visitNodeOrToken(this, node.expression); this.visitToken(node.openBracketToken); - node.argumentExpression.accept(this); + visitNodeOrToken(this, node.argumentExpression); this.visitToken(node.closeBracketToken); } public visitFunctionExpression(node: FunctionExpressionSyntax): void { this.visitToken(node.functionKeyword); this.visitOptionalToken(node.identifier); - node.callSignature.accept(this); - node.block.accept(this); + visitNodeOrToken(this, node.callSignature); + visitNodeOrToken(this, node.block); } public visitOmittedExpression(node: OmittedExpressionSyntax): void { @@ -482,8 +473,8 @@ module TypeScript { } public visitTemplateAccessExpression(node: TemplateAccessExpressionSyntax): void { - node.expression.accept(this); - node.templateExpression.accept(this); + visitNodeOrToken(this, node.expression); + visitNodeOrToken(this, node.templateExpression); } public visitVariableDeclaration(node: VariableDeclarationSyntax): void { @@ -493,12 +484,12 @@ module TypeScript { public visitVariableDeclarator(node: VariableDeclaratorSyntax): void { this.visitToken(node.propertyName); - this.visitOptionalNode(node.typeAnnotation); - this.visitOptionalNode(node.equalsValueClause); + visitNodeOrToken(this, node.typeAnnotation); + visitNodeOrToken(this, node.equalsValueClause); } public visitArgumentList(node: ArgumentListSyntax): void { - this.visitOptionalNode(node.typeArgumentList); + visitNodeOrToken(this, node.typeArgumentList); this.visitToken(node.openParenToken); this.visitList(node.arguments); this.visitToken(node.closeParenToken); @@ -529,12 +520,12 @@ module TypeScript { public visitEqualsValueClause(node: EqualsValueClauseSyntax): void { this.visitToken(node.equalsToken); - node.value.accept(this); + visitNodeOrToken(this, node.value); } public visitCaseSwitchClause(node: CaseSwitchClauseSyntax): void { this.visitToken(node.caseKeyword); - node.expression.accept(this); + visitNodeOrToken(this, node.expression); this.visitToken(node.colonToken); this.visitList(node.statements); } @@ -547,48 +538,48 @@ module TypeScript { public visitElseClause(node: ElseClauseSyntax): void { this.visitToken(node.elseKeyword); - node.statement.accept(this); + visitNodeOrToken(this, node.statement); } public visitCatchClause(node: CatchClauseSyntax): void { this.visitToken(node.catchKeyword); this.visitToken(node.openParenToken); this.visitToken(node.identifier); - this.visitOptionalNode(node.typeAnnotation); + visitNodeOrToken(this, node.typeAnnotation); this.visitToken(node.closeParenToken); - node.block.accept(this); + visitNodeOrToken(this, node.block); } public visitFinallyClause(node: FinallyClauseSyntax): void { this.visitToken(node.finallyKeyword); - node.block.accept(this); + visitNodeOrToken(this, node.block); } public visitTemplateClause(node: TemplateClauseSyntax): void { - node.expression.accept(this); + visitNodeOrToken(this, node.expression); this.visitToken(node.templateMiddleOrEndToken); } public visitTypeParameter(node: TypeParameterSyntax): void { this.visitToken(node.identifier); - this.visitOptionalNode(node.constraint); + visitNodeOrToken(this, node.constraint); } public visitConstraint(node: ConstraintSyntax): void { this.visitToken(node.extendsKeyword); - node.typeOrExpression.accept(this); + visitNodeOrToken(this, node.typeOrExpression); } public visitSimplePropertyAssignment(node: SimplePropertyAssignmentSyntax): void { this.visitToken(node.propertyName); this.visitToken(node.colonToken); - node.expression.accept(this); + visitNodeOrToken(this, node.expression); } public visitFunctionPropertyAssignment(node: FunctionPropertyAssignmentSyntax): void { this.visitToken(node.propertyName); - node.callSignature.accept(this); - node.block.accept(this); + visitNodeOrToken(this, node.callSignature); + visitNodeOrToken(this, node.block); } public visitParameter(node: ParameterSyntax): void { @@ -596,18 +587,18 @@ module TypeScript { this.visitList(node.modifiers); this.visitToken(node.identifier); this.visitOptionalToken(node.questionToken); - this.visitOptionalNode(node.typeAnnotation); - this.visitOptionalNode(node.equalsValueClause); + visitNodeOrToken(this, node.typeAnnotation); + visitNodeOrToken(this, node.equalsValueClause); } public visitEnumElement(node: EnumElementSyntax): void { this.visitToken(node.propertyName); - this.visitOptionalNode(node.equalsValueClause); + visitNodeOrToken(this, node.equalsValueClause); } public visitTypeAnnotation(node: TypeAnnotationSyntax): void { this.visitToken(node.colonToken); - node.type.accept(this); + visitNodeOrToken(this, node.type); } public visitExternalModuleReference(node: ExternalModuleReferenceSyntax): void { @@ -618,7 +609,7 @@ module TypeScript { } public visitModuleNameModuleReference(node: ModuleNameModuleReferenceSyntax): void { - node.moduleName.accept(this); + visitNodeOrToken(this, node.moduleName); } } } \ No newline at end of file