-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the parsers.js (v0.3) wiki!
npm install @hgargg-0710/parsers.js
The library is still under active development, so certain definitions may yet be replaced/optimized, and interfaces/implementations can change wildly.
As of the present, it contains ample tools for easy and fast creation of creation of highly modular and maintainable parsers for arbitrarily complex grammars.
More specifically, it includes:
- Highly modular recursive descent parsers
- Generic Stream types
- Generic AST types
- Self-modifying parsers
- Substantial interface collection
- Parsing tables (manually constructed)
- Basic utility types (Position, EnumSpace, etc)
- Easy regular expression construction
- TypeScript support
- Basic tree-walking algorithm
- Basic validation techniques
Items currently in work for addition:
- Its own Regular Expression Engine
- Various Common Utility Types
- Class-Manager for Stream Types
Currently, the library lacks proper interfaces for:
- Bottom-Up Parsing
- Non-Recursive Top-Down Parsing
- Pattern Matching
- Reusable samples for "common usage" patterns
- Certain tree-walking Algorithms
- Various optimization utilities/types
Also, amongst its existing problems are:
- No Peeking for Streams Present
- No
vflag support forregexmodule
The amount of abstractions present can be somewhat overwhelming, and even obscuring the ultimate purpose of simplifying the user's workflow.
For tips on how to apply the library abstractions successfully, read the Usage Page.
Note: the page will become partially redundant once a full-fledged samples
module gets introduced in the future version v0.4
The library's exports separate onto modules:
It also provides a variety of interfaces