1 | /*
|
2 | ** pegjs-otf -- On-The-Fly Compilation for PEG.js
|
3 | ** Copyright (c) 2014-2017 Ralf S. Engelschall <rse@engelschall.com>
|
4 | **
|
5 | ** Permission is hereby granted, free of charge, to any person obtaining
|
6 | ** a copy of this software and associated documentation files (the
|
7 | ** "Software"), to deal in the Software without restriction, including
|
8 | ** without limitation the rights to use, copy, modify, merge, publish,
|
9 | ** distribute, sublicense, and/or sell copies of the Software, and to
|
10 | ** permit persons to whom the Software is furnished to do so, subject to
|
11 | ** the following conditions:
|
12 | **
|
13 | ** The above copyright notice and this permission notice shall be included
|
14 | ** in all copies or substantial portions of the Software.
|
15 | **
|
16 | ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17 | ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18 | ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
19 | ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
20 | ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
21 | ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
22 | ** SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
23 | */
|
24 |
|
25 | /* global module: false */
|
26 | /* global require: false */
|
27 |
|
28 | /* built-in requirements */
|
29 | var fs = require("fs");
|
30 |
|
31 | /* external requirements */
|
32 | var _ = require("lodash");
|
33 | var pegjs = require("pegjs");
|
34 |
|
35 | /* provide a minimum wrapper class around PEG.js API */
|
36 | module.exports = _.extend({
|
37 | /* provide an additional method which is like "generate",
|
38 | but gets a grammar filename instead of the grammar text */
|
39 | generateFromFile: function (filename, options) {
|
40 | var source = fs.readFileSync(filename, { encoding: "utf8" });
|
41 | return pegjs.generate(source, options);
|
42 | }
|
43 | }, pegjs);
|
44 |
|