diff options
Diffstat (limited to 'node_modules/regjsparser/bin/parser')
-rwxr-xr-x | node_modules/regjsparser/bin/parser | 50 |
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(); + +}()); |