Commit Graph

1779 Commits

Author SHA1 Message Date
강동윤
0be4a5ef40 Implement #[fold(ignore)] 2018-03-08 11:00:03 +09:00
강동윤
57944ab70e Update parser to new ast.
Tests are not updated yet.
2018-03-07 17:14:16 +09:00
강동윤
6141206963 Use spanned, interned string instead of raw string. 2018-03-07 16:50:25 +09:00
강동윤
7908aaa6c1 Some more refinements for ast.
* All fields are public.
 * Enabled some lints.
2018-03-07 14:05:09 +09:00
강동윤
f11434ee3c [WIP] Update parser 2018-03-06 22:34:42 +09:00
강동윤
160f5dc367 Add RestPat 2018-03-06 15:44:28 +09:00
강동윤
00bcd8f9af Don't use #[ast_node] for temporary for-head 2018-03-06 15:07:52 +09:00
강동윤
077e0c551f implement #[span] 2018-03-04 15:17:52 +09:00
강동윤
3321ca590d implement Spanned for {Span, BytePos} 2018-03-04 14:41:59 +09:00
강동윤
d5ef2be32a reexport Fold properly 2018-03-04 14:12:17 +09:00
강동윤
ffe6fb9030 Add formatOnSave to settings.json 2018-03-04 14:09:36 +09:00
강동윤
e1764f907b [WIP] Make ast nodes contain span
* `struct Expr` + `enum ExprKind` -> `enum Expr`

`Expr` / `ExprKind` approach does not work well with recursive
 processing based on the type system because we can't access common
 fields like span while processing child node like `MemberExpr`.

As ast processing is inherently recursive, we should use a
 recursive-friendly approach.

 * `#[derive(FromVariants)]`
It creates lots of `From<T>` to help using ast enums as a real sum type.

 * `#[derive(Spanned)]`

Inspired by https://docs.rs/syn/0.12.13/syn/spanned/trait.Spanned.html

It does not handle attributes yet.

 * Parser is not updated yet.
2018-03-03 19:37:01 +09:00
bors[bot]
5f4bcdc98c Merge #35
35: #[derive(StringEnum)] r=kdy1 a=kdy1
2018-03-02 06:10:46 +00:00
강동윤
9843be331b Disable coverage temporarily. 2018-03-02 15:10:08 +09:00
강동윤
27d9b1e154 Update rustfmt to 0.3.8 2018-03-02 15:07:09 +09:00
강동윤
171abda3c0 Implement #[derive(StringEnum)] 2018-03-02 14:50:50 +09:00
bors[bot]
e128ba64c4 Merge #34
34: Use Span::def_site() instead of Span::call_site() r=kdy1 a=kdy1

  * Now rustdoc contains derived implementations.
2018-03-01 05:18:03 +00:00
강동윤
8370b78ee0 Enable backtrace and disable incr-comp. 2018-03-01 14:16:47 +09:00
강동윤
c37454ca1f Use Span::def_site() instead of Span::call_site()
* Now rustdoc contains derived implementations.
2018-03-01 14:09:22 +09:00
강동윤
10f83f3f02
Fix rls (again) (#33)
* Don't use `#[parser]` in lexer

* Don't use `#[parser]` in parser/util.rs

* Pin rust toolchain to nightly-2018-02-28
2018-02-28 14:35:52 +09:00
강동윤
67daa4c4e4
Fix a test about float parser (#32)
See https://github.com/rust-lang/rust/pull/48235
2018-02-27 15:31:50 +09:00
강동윤
4a30fb3436
Testing framework (#31)
- Make rls happy.
  - Some minor parser error improvements.
  - Add reference files for ecmascript parser errors.
  - Improve error message of import/export used outside of a module
2018-02-27 13:21:57 +09:00
bors[bot]
ca663aa33d Merge #30
30: Make rls work r=kdy1 a=kdy1

rust-analysis chokes with `Option<Box<Expr>>` style fields.
Rls only shows a warning on the crate with that fields, but ICEs on
dependent crates.
This can be workarounded by using `Option<(Box<Expr>)>`.

Also, using multiple glob imports is bad for rls.
So this commit deglobs them.
2018-02-03 11:01:14 +00:00
강동윤
fa40c8ddf3 Make rls work
rust-analysis chokes with `Option<Box<Expr>>` style fields.
Rls only shows a warning on the crate with that fields, but ICEs on
dependent crates.
This can be workarounded by using `Option<(Box<Expr>)>`.

Also, using multiple glob imports is bad for rls.
So this commit deglobs them.
2018-02-03 20:00:03 +09:00
bors[bot]
f4bbd69547 Merge #28
28: chores: cleanup for docs; no email from travis r=kdy1 a=kdy1
2018-01-27 06:17:23 +00:00
강동윤
056a11dd06 chores: cleanup for docs; no email from travis 2018-01-27 15:14:53 +09:00
bors[bot]
d4e2c90caf Merge #27
27: Ecma parser errors r=kdy1 a=kdy1

I stored context in lexer because lexer should have access to parser's context.
2018-01-27 04:42:40 +00:00
강동윤
59f11a83d1 fixup! fix tests 2018-01-27 13:42:04 +09:00
강동윤
92c7defc2e fix tests 2018-01-27 11:31:45 +09:00
강동윤
5602c376e5 Implement error reporting for ecmascript parser
Passes all test262-identity tests and all fail tests.
2018-01-26 21:53:30 +09:00
bors[bot]
d046adf14c Merge #26
26: Use FileMap as an input. r=kdy1 a=kdy1
2018-01-23 12:39:56 +00:00
강동윤
9b2a5880bb Use FileMap as an input. 2018-01-23 21:38:48 +09:00
bors[bot]
e2f75ec0a2 Merge #25
25: Error reporting like rustc r=kdy1 a=kdy1

Error reporting is implementing using rustc
2018-01-22 13:09:21 +00:00
강동윤
a0ece79b0d Add cli api to parse js file. 2018-01-22 22:07:39 +09:00
강동윤
0a2473fe1c Improve error reporting of ecmascript parser
And drop nll because it's currently too slow.
2018-01-22 21:47:16 +09:00
강동윤
e75836882b Use box for Diagnostic 2018-01-21 19:33:27 +09:00
강동윤
4d52cb49d4 Implement error reporting.
* Use syntax_pos and rustc_error.
 * Use syntax_pos::Span
2018-01-21 17:47:37 +09:00
bors[bot]
bab2b73483 Merge #24
24: Fix parser r=kdy1 a=kdy1
2018-01-18 03:23:54 +00:00
강동윤
7742eaebfe Rebase 2018-01-17 14:09:37 +09:00
강동윤
9c646596c5 Fix ecmascript parser.
* Make span inclusive-exclusive.
 * Fix array parsing.
2018-01-17 14:06:05 +09:00
bors[bot]
135e606f38 Merge #23
23: Update rustfmt to 0.3.5 and format literals. r=kdy1 a=kdy1
2018-01-16 11:11:55 +00:00
강동윤
11b12b8142 Update rustfmt to 0.3.5 and format literals. 2018-01-16 20:11:08 +09:00
bors[bot]
ac82bc4245 Merge #21
21: enable travis for master to update docs r=kdy1 a=kdy1
2018-01-16 02:56:42 +00:00
강동윤
5ff4e759e5 enable travis for master to update docs 2018-01-16 11:54:42 +09:00
bors[bot]
58f899414e Merge #20
20: Make expression and statement consistent. Fixes #19 r=kdy1 a=kdy1
2018-01-16 02:36:28 +00:00
강동윤
d6e61f9638 Make expression and statement consistent. Fixes #19 2018-01-16 11:35:05 +09:00
bors[bot]
7f3e889773 Merge #14
14: Cleanup and documentations for swc_common. r=kdy1 a=kdy1

 * Remove CanIUse trait, which will be reimplemented as a Visitor in future.

 * Remove some other unused stuffs.

 * Change public path of swc_common::fold::* to swc_common::*.
2018-01-15 02:00:54 +00:00
강동윤
1f5db00585 Don't build pull requests. 2018-01-15 11:00:02 +09:00
강동윤
7f4931642d Rebase 2018-01-15 10:47:10 +09:00
강동윤
06731dfcb5 Cleanup and documentations for swc_common.
* Remove CanIUse trait, which will be reimpplemented in future
 using Visitor.

 * Remove some other unused stuffs.

 * Change public path of swc_common::fold::* to swc_common::*.
2018-01-15 10:33:18 +09:00