New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

two-phase parsing #179

Merged
merged 9 commits into from Apr 20, 2015

Conversation

Projects
None yet
2 participants
@michaelficarra
Copy link
Member

michaelficarra commented Apr 17, 2015

This separates the grammar parsing from early error checking. The early error checking (phase two) is now done in an optional reduction. This will allow us to use a parser generator for phase one, and the hand-written recursive descent parser is much more maintainable now.

Fixes #44.
Fixes #56.
Fixes #91.
Fixes #172.
Fixes #177.

I will squash to appropriate commits once the review is completed.

Benchmark:

angular/angular (954.30KB)
  shift: 51.74ms
  esprima: 65.45ms
  babel: 147.80ms
  traceur: 87.38ms
esprima/esprima (173.34KB)
  shift: 19.10ms
  esprima: 22.67ms
  babel: 50.27ms
  traceur: 31.51ms
./dist/parser (92.76KB)
  shift: 11.13ms
  esprima: 13.09ms
  babel: 31.04ms
  traceur: 18.32ms

@michaelficarra michaelficarra force-pushed the two-phase-parsing branch from 02a1eb0 to ba8f547 Apr 17, 2015

@ikarienator

This comment has been minimized.

Copy link
Member

ikarienator commented Apr 20, 2015

Yay!! 👏

@michaelficarra michaelficarra force-pushed the two-phase-parsing branch from ba8f547 to 771ce60 Apr 20, 2015

@michaelficarra michaelficarra force-pushed the two-phase-parsing branch from 771ce60 to 5e6884d Apr 20, 2015

ikarienator added a commit that referenced this pull request Apr 20, 2015

@ikarienator ikarienator merged commit fda9644 into es6 Apr 20, 2015

2 checks passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
continuous-integration/travis-ci/push The Travis CI build passed
Details

@ikarienator ikarienator deleted the two-phase-parsing branch Apr 20, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment