original file ----------------------------------- const func2 = (url: string) : Promise => { return new Promise((accept, reject) => { const text = window.prompt(); accept(text); }); } const func2a = (url) : Promise => { return new Promise((accept, reject) => { const text = window.prompt(); accept(text); }); } ----------------------------------- Grammar: TypeScript.tmLanguage ----------------------------------- >const func2 = (url: string) ^^^^^ source.ts meta.var.expr.ts storage.type.ts ^^ source.ts meta.var.expr.ts ^^^^^ source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts ^ source.ts meta.var.expr.ts meta.var-single-variable.expr.ts ^ source.ts meta.var.expr.ts keyword.operator.assignment.ts ^ source.ts meta.var.expr.ts meta.arrow.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts ^^^ source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts ^^^^^^ source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts >: Promise => { ^ source.ts meta.var.expr.ts meta.arrow.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.arrow.ts meta.return.type.arrow.ts ^^^^^^^ source.ts meta.var.expr.ts meta.arrow.ts meta.arrow.ts meta.return.type.arrow.ts entity.name.type.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts ^^^ source.ts meta.var.expr.ts meta.arrow.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts support.type.primitive.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.arrow.ts meta.return.type.arrow.ts ^^ source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts ^ source.ts meta.var.expr.ts meta.arrow.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts > return new Promise((accept, reject) => { ^^^^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts ^^^^^^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts ^^^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts keyword.operator.new.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts ^^^^^^^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.promise.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.brace.round.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts ^^^^^^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts ^^^^^^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts ^^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts storage.type.function.arrow.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts > const text = window.prompt(); ^^^^^^^^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts ^^^^^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts ^^^^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts ^^^^^^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.function-call.ts support.variable.dom.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts ^^^^^^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.function-call.ts support.function.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts > accept(text); ^^^^^^^^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts ^^^^^^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.function-call.ts entity.name.function.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts ^^^^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts > }); ^^^^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts new.expr.ts meta.brace.round.ts ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts >} ^ source.ts meta.var.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts >const func2a = (url) ^^^^^ source.ts meta.var.expr.ts storage.type.ts ^^ source.ts meta.var.expr.ts ^^^^^^ source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts ^ source.ts meta.var.expr.ts meta.var-single-variable.expr.ts ^ source.ts meta.var.expr.ts keyword.operator.assignment.ts ^ source.ts meta.var.expr.ts ^ source.ts meta.var.expr.ts meta.brace.round.ts ^^^ source.ts meta.var.expr.ts variable.other.readwrite.ts ^ source.ts meta.var.expr.ts meta.brace.round.ts >: Promise => { ^ source.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts ^ source.ts meta.arrow.ts meta.return.type.arrow.ts ^^^^^^^ source.ts meta.arrow.ts meta.return.type.arrow.ts entity.name.type.ts ^ source.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts ^^^ source.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts support.type.primitive.ts ^ source.ts meta.arrow.ts meta.return.type.arrow.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts ^ source.ts meta.arrow.ts meta.return.type.arrow.ts ^^ source.ts meta.arrow.ts storage.type.function.arrow.ts ^ source.ts meta.arrow.ts ^ source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts > return new Promise((accept, reject) => { ^^^^ source.ts meta.arrow.ts meta.block.ts ^^^^^^ source.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts ^ source.ts meta.arrow.ts meta.block.ts ^^^ source.ts meta.arrow.ts meta.block.ts new.expr.ts keyword.operator.new.ts ^ source.ts meta.arrow.ts meta.block.ts new.expr.ts ^^^^^^^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.function-call.ts support.class.promise.ts ^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.brace.round.ts ^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts ^^^^^^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts ^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts punctuation.separator.parameter.ts ^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts ^^^^^^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts ^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts ^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts ^^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts storage.type.function.arrow.ts ^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts ^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts > const text = window.prompt(); ^^^^^^^^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts ^^^^^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts storage.type.ts ^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts ^^^^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts ^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts ^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts ^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts ^^^^^^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.function-call.ts support.variable.dom.ts ^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts ^^^^^^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.function-call.ts support.function.ts ^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts ^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts ^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts > accept(text); ^^^^^^^^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts ^^^^^^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.function-call.ts entity.name.function.ts ^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts ^^^^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts ^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts meta.brace.round.ts ^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts > }); ^^^^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts ^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts ^ source.ts meta.arrow.ts meta.block.ts new.expr.ts meta.brace.round.ts ^ source.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts >} ^ source.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts