Parsing for NamedImports

NamedImports :
{ }
{ ImportsList }
{ ImportsList , }

ImportsList :
ImportSpecifier
ImportsList , ImportSpecifier

ImportSpecifier :
ImportedBinding
IdentifierName as ImportedBinding

Conflicts:
	src/compiler/parser.ts
This commit is contained in:
Sheetal Nandi
2015-01-27 16:28:28 -08:00
parent fdd7032c61
commit 5eb009461e
9 changed files with 204 additions and 7 deletions

View File

@@ -0,0 +1,21 @@
//// [tests/cases/compiler/es6ImportNamedImport.ts] ////
//// [es6ImportNamedImport_0.ts]
export var a = 10;
export var x = a;
export var m = a;
//// [es6ImportNamedImport_1.ts]
import { } from "es6ImportNamedImport_0";
import { a } from "es6ImportNamedImport_0";
import { a as b } from "es6ImportNamedImport_0";
import { x, a as y } from "es6ImportNamedImport_0";
import { x as z, } from "es6ImportNamedImport_0";
import { m, } from "es6ImportNamedImport_0";
//// [es6ImportNamedImport_0.js]
exports.a = 10;
exports.x = exports.a;
exports.m = exports.a;
//// [es6ImportNamedImport_1.js]

View File

@@ -0,0 +1,21 @@
=== tests/cases/compiler/es6ImportNamedImport_0.ts ===
export var a = 10;
>a : number
export var x = a;
>x : number
>a : number
export var m = a;
>m : number
>a : number
=== tests/cases/compiler/es6ImportNamedImport_1.ts ===
import { } from "es6ImportNamedImport_0";
No type information for this code.import { a } from "es6ImportNamedImport_0";
No type information for this code.import { a as b } from "es6ImportNamedImport_0";
No type information for this code.import { x, a as y } from "es6ImportNamedImport_0";
No type information for this code.import { x as z, } from "es6ImportNamedImport_0";
No type information for this code.import { m, } from "es6ImportNamedImport_0";
No type information for this code.

View File

@@ -0,0 +1,21 @@
//// [tests/cases/compiler/es6ImportNamedImportInEs5.ts] ////
//// [es6ImportNamedImportInEs5_0.ts]
export var a = 10;
export var x = a;
export var m = a;
//// [es6ImportNamedImportInEs5_1.ts]
import { } from "es6ImportNamedImportInEs5_0";
import { a } from "es6ImportNamedImportInEs5_0";
import { a as b } from "es6ImportNamedImportInEs5_0";
import { x, a as y } from "es6ImportNamedImportInEs5_0";
import { x as z, } from "es6ImportNamedImportInEs5_0";
import { m, } from "es6ImportNamedImportInEs5_0";
//// [es6ImportNamedImportInEs5_0.js]
exports.a = 10;
exports.x = exports.a;
exports.m = exports.a;
//// [es6ImportNamedImportInEs5_1.js]

View File

@@ -0,0 +1,21 @@
=== tests/cases/compiler/es6ImportNamedImportInEs5_0.ts ===
export var a = 10;
>a : number
export var x = a;
>x : number
>a : number
export var m = a;
>m : number
>a : number
=== tests/cases/compiler/es6ImportNamedImportInEs5_1.ts ===
import { } from "es6ImportNamedImportInEs5_0";
No type information for this code.import { a } from "es6ImportNamedImportInEs5_0";
No type information for this code.import { a as b } from "es6ImportNamedImportInEs5_0";
No type information for this code.import { x, a as y } from "es6ImportNamedImportInEs5_0";
No type information for this code.import { x as z, } from "es6ImportNamedImportInEs5_0";
No type information for this code.import { m, } from "es6ImportNamedImportInEs5_0";
No type information for this code.

View File

@@ -0,0 +1,32 @@
tests/cases/compiler/es6ImportNamedImportParsingError_1.ts(1,10): error TS1003: Identifier expected.
tests/cases/compiler/es6ImportNamedImportParsingError_1.ts(1,12): error TS1109: Expression expected.
tests/cases/compiler/es6ImportNamedImportParsingError_1.ts(1,14): error TS2304: Cannot find name 'from'.
tests/cases/compiler/es6ImportNamedImportParsingError_1.ts(1,19): error TS1005: ';' expected.
tests/cases/compiler/es6ImportNamedImportParsingError_1.ts(2,22): error TS1005: '=' expected.
tests/cases/compiler/es6ImportNamedImportParsingError_1.ts(2,24): error TS2304: Cannot find name 'from'.
tests/cases/compiler/es6ImportNamedImportParsingError_1.ts(2,29): error TS1005: ';' expected.
==== tests/cases/compiler/es6ImportNamedImportParsingError_0.ts (0 errors) ====
export var a = 10;
export var x = a;
export var m = a;
==== tests/cases/compiler/es6ImportNamedImportParsingError_1.ts (7 errors) ====
import { * } from "es6ImportNamedImportParsingError_0";
~
!!! error TS1003: Identifier expected.
~
!!! error TS1109: Expression expected.
~~~~
!!! error TS2304: Cannot find name 'from'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS1005: ';' expected.
import defaultBinding, from "es6ImportNamedImportParsingError_0";
~
!!! error TS1005: '=' expected.
~~~~
!!! error TS2304: Cannot find name 'from'.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS1005: ';' expected.

View File

@@ -0,0 +1,15 @@
// @target: es6
// @module: commonjs
// @filename: es6ImportNamedImport_0.ts
export var a = 10;
export var x = a;
export var m = a;
// @filename: es6ImportNamedImport_1.ts
import { } from "es6ImportNamedImport_0";
import { a } from "es6ImportNamedImport_0";
import { a as b } from "es6ImportNamedImport_0";
import { x, a as y } from "es6ImportNamedImport_0";
import { x as z, } from "es6ImportNamedImport_0";
import { m, } from "es6ImportNamedImport_0";

View File

@@ -0,0 +1,15 @@
// @target: es5
// @module: commonjs
// @filename: es6ImportNamedImportInEs5_0.ts
export var a = 10;
export var x = a;
export var m = a;
// @filename: es6ImportNamedImportInEs5_1.ts
import { } from "es6ImportNamedImportInEs5_0";
import { a } from "es6ImportNamedImportInEs5_0";
import { a as b } from "es6ImportNamedImportInEs5_0";
import { x, a as y } from "es6ImportNamedImportInEs5_0";
import { x as z, } from "es6ImportNamedImportInEs5_0";
import { m, } from "es6ImportNamedImportInEs5_0";

View File

@@ -0,0 +1,11 @@
// @target: es6
// @module: commonjs
// @filename: es6ImportNamedImportParsingError_0.ts
export var a = 10;
export var x = a;
export var m = a;
// @filename: es6ImportNamedImportParsingError_1.ts
import { * } from "es6ImportNamedImportParsingError_0";
import defaultBinding, from "es6ImportNamedImportParsingError_0";