Chevrotain / chevrotain

Parser Building Toolkit for JavaScript
https://chevrotain.io
Apache License 2.0
2.44k stars 200 forks source link

Refactoring LL(*) feature #1777

Closed msujew closed 2 years ago

msujew commented 2 years ago

Refactors major parts of the LL(*) feature, adding new features:

Food for thought

Keep the old static ambiguity analysis for LL(k) decisions, where k < maxLookahead. For example, such an ambiguity can be easily identified statically:

OR([{
  DEF: () => this.CONSUME1(A) 
}, {
  DEF: () => this.CONSUME2(A) 
}])