Skip to content

ragtime/pegjs-loader

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PEG.js loader for webpack

build status npm version npm downloads

Install

npm install --save-dev pegjs-loader pegjs webpack

The pegjs-loader requires PEG.js and webpack as peerDependency. Thus you are able to specify the required versions accurately.

Usage

Documentation: Using loaders

var parser = require("!pegjs!./parser.pegjs");
// => returns compiled PEG.js parser

Apply via webpack config

It's recommended to adjust your webpack.config so pegjs! is applied automatically on all files ending with .pegjs:

module.exports = {
  ...
  module: {
    loaders: [
      {
        test: /\.pegjs$/,
        loader: 'pegjs-loader'
      }
    ]
  }
};

Then you only need to write: require("./parser.pegjs").

PEG.js options

You can pass options to PEG.js as query parameters. The following options are supported:

  • cache — if true, makes the parser cache results, avoiding exponential parsing time in pathological cases but making the parser slower (default: false)

  • optimize - whether to optimize the built parser either for speed or size (default: speed)

  • allowedStartRules - The rules the built parser will be allowed to start parsing from (default: the first rule in the grammar).

  • trace - if true, the tracing support in the built parser is enabled (default: false)

module.exports = {
  ...
  module: {
    loaders: [
      {
        test: /\.pegjs$/,
        loader: 'pegjs-loader?cache=true&optimize=size&allowedStartRules[]=RuleA,allowedStartRules[]=RuleB&trace=false'
      }
    ]
  }
};

Change Log

This project adheres to Semantic Versioning.
Every release, along with the migration instructions, if any, is documented on the Github Releases page.

Thanks

License

MIT (http://www.opensource.org/licenses/mit-license.php)

About

PEG.js loader for webpack

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%