ecma262 implementation in jison
npm install ecma262-jison>Nothing increases your learning power more than working on something big, real, confusing and frustrating.
``bash
npm install ecma262-jison
`
Nodejs v6版本以上,推荐使用v8或更高版本
`bash
git clone https://github.com/w-y/ecma262-jison.git
`
构建parser:
`bash
npm run buildparser
`
src到lib:
`bash
npm run build
`
测试:
`bash
npm run test
`
目前已实现ECMAScript(7.0)的大部分语法特性,并扩展了JSX支持
| 特性 | 支持 | 备注 |
| ---------- | --- | --- |
| Arrows | ✅ | |
| Classes | ✅ | |
| Template Strings | ✅ |foo ❌ |
| Destructuring | ✅ | |
| Default+Rest+Spread | ✅ | |
| Let + Const | ✅ | |
| Unicode | ✅ | \u{20BB7} ❌|
| Modules | ✅ | |
| Enhanced Object Literals | ✅ | |
| Generators | ❌ | |
| jsx | ✅ | |
| Spread Element | ✅ | |
| Spread Property | ✅ | |
| ASI | ✅ | 出错加分号重试方式 |
`js
const code = 'foo;';
const parser = require('ecma262-jison');
const ast = parser.parse(code);
console.log(JSON.stringify(ast, null, 2));
``