Skip to content

Commit

Permalink
A lot of stuff (#1)
Browse files Browse the repository at this point in the history
* parse shorthand object property

* allow ending comma

* split tests, write object property parsers

* implement literal property name

* finish property name

* implement basic method definition

* async and generator methods

* getter and setter

* oops

* wip: add source location, make AST more like ESTree

* wip: update string literal tests

* wip: update template elements test

* wip: add source loc to template element

* wip: added source location to this, updated tests

* wip: add source location to array

* wip: move spread into expression list item

* fix: fix doc tests

* wip: add source loc to object literal and property

* wip: make test fixtures instead of tests in code

* wip: only run on nightly

* wip: run integration tests on nightly only

* wip: re-add unit tests, fix integration on nightly

* wip: fix broken reference links

* wip: add basic ast exporter

* wip: make program more like estree

* wip: remove integration tests, refactor program and literals

* wip: refactor this and identifier

* wip: update array expression enum

* wip: update object literal to estree

* wip: rename ast nodes, re-order things

* wip: update more ast nodes to be more like estree

* wip: finish re-adding tests

* wip: update readme
  • Loading branch information
dat2 authored Aug 5, 2018
1 parent 7080b5e commit bd2860d
Show file tree
Hide file tree
Showing 9 changed files with 2,200 additions and 987 deletions.
176 changes: 175 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

44 changes: 30 additions & 14 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,29 +1,45 @@
[package]
name = "ecmascript"
version = "0.1.0"
authors = ["Nicholas Dujay <[email protected]>"]
categories = [
"parser-implementations",
"parsing",
]
description = "A rust implementation of an ECMAScript parser"
documentation = "https://docs.rs/ecmascript"
homepage = "https://github.com/dat2/ecmascript"
repository = "https://github.com/dat2/ecmascript"
readme = "README.md"
keywords = ["ecmascript", "javascript", "parser"]
categories = [
"parser-implementations",
"parsing"
keywords = [
"ecmascript",
"javascript",
"parser",
]
license = "MIT"
name = "ecmascript"
readme = "README.md"
repository = "https://github.com/dat2/ecmascript"
version = "0.2.0"

[badges]
travis-ci = { repository = "dat2/ecmascript", branch = "master" }
codecov = { repository = "dat2/ecmascript", branch = "master", service = "github" }
maintenance = { status = "actively-developed" }
[badges.codecov]
branch = "master"
repository = "dat2/ecmascript"
service = "github"

[lib]
name = "ecmascript"
[badges.maintenance]
status = "actively-developed"

[badges.travis-ci]
branch = "master"
repository = "dat2/ecmascript"

[dependencies]
clap = "2.32.0"
combine = "3.3.2"
failure = "0.1.1"
glob = "0.2.11"
lazy_static = "1.0.1"
serde = "1.0.70"
serde_derive = "1.0.70"
serde_json = "1.0.22"
unicode-xid = "0.1.0"

[lib]
name = "ecmascript"
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,15 +54,15 @@ Docs are hosted on [docs.rs](https://docs.rs/ecmascript/).
on it. For example, concatenating modules together, uglifying the variable names,
pretty printing uglified code, etc.

# Features
# Features (Planned)

* _ECMAScript 2017 v9.0 support_
* _ECMAScript 2017 v9.0 support_ (WIP)
* We are actively developing this library to be up to date!
* _JSX Extended Support_
* _JSX Extended Support_ (WIP)
* JSX is meant to be an additive extension to the language
* _AST Pretty Printer_
* _AST Pretty Printer_ (WIP)
* This supports minification options, such as 0 whitespace
* _AST rewrite rules_
* _AST rewrite rules_ (WIP)
* Eg. Constant folding, translating to older versions of the language, etc.

# Testing
Expand Down
Loading

0 comments on commit bd2860d

Please sign in to comment.