summaryrefslogtreecommitdiffstats
path: root/node_modules/regjsparser/bin/parser
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/regjsparser/bin/parser')
-rwxr-xr-xnode_modules/regjsparser/bin/parser50
1 files changed, 50 insertions, 0 deletions
diff --git a/node_modules/regjsparser/bin/parser b/node_modules/regjsparser/bin/parser
new file mode 100755
index 0000000..09a6036
--- /dev/null
+++ b/node_modules/regjsparser/bin/parser
@@ -0,0 +1,50 @@
+#!/usr/bin/env node
+(function() {
+
+ var fs = require('fs');
+ var parse = require('../parser').parse;
+ var jsesc = require('jsesc');
+ var regexes = process.argv.splice(2);
+ var first = regexes[0];
+ var data;
+ var log = console.log;
+ var main = function() {
+ if (/^(?:-h|--help|undefined)$/.test(first)) {
+ log([
+ '\nUsage:\n',
+ '\tregjsparser [regex ...]',
+ '\tregjsparser [-h | --help]',
+ '\nExamples:\n',
+ '\tregjsparser \'^foo.bar$\'',
+ '\tregjsparser \'[a-zA-Z0-9]\''
+ ].join('\n'));
+ return process.exit(1);
+ }
+
+ regexes.forEach(function(snippet) {
+ var result;
+ try {
+ result = parse(snippet);
+ log(jsesc(result, {
+ 'json': true,
+ 'compact': false,
+ 'indent': '\t'
+ }));
+ } catch(error) {
+ log(error.message + '\n');
+ log('Error: failed to parse. Make sure the regular expression is valid.');
+ log('If you think this is a bug in regjsparser, please report it:');
+ log('\thttps://github.com/jviereck/regjsparser/issues/new');
+ log('\nStack trace:\n');
+ log(error.stack);
+ return process.exit(1);
+ }
+ });
+ // Return with exit status 0 outside of the `forEach` loop, in case
+ // multiple regular expressions were passed in.
+ return process.exit(0);
+ };
+
+ main();
+
+}());