1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- #!/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();
- }());
|