diff options
| author | ruki <waruqi@gmail.com> | 2018-11-08 00:38:48 +0800 |
|---|---|---|
| committer | ruki <waruqi@gmail.com> | 2018-11-07 21:53:09 +0800 |
| commit | 26105034da4fcce7ac883c899d781f016559310d (patch) | |
| tree | c459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/regjsparser/bin | |
| parent | 2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff) | |
| download | xmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip | |
switch to vuepress
Diffstat (limited to 'node_modules/regjsparser/bin')
| -rwxr-xr-x | node_modules/regjsparser/bin/parser | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/node_modules/regjsparser/bin/parser b/node_modules/regjsparser/bin/parser new file mode 100755 index 00000000..73549ac0 --- /dev/null +++ b/node_modules/regjsparser/bin/parser @@ -0,0 +1,63 @@ +#!/usr/bin/env node +(function() { + + var fs = require('fs'); + var path = require('path'); + 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 flags = ''; + var main = function() { + if (/^(?:-h|--help|undefined)$/.test(first)) { + log([ + '\nUsage:\n', + '\tregjsparser [regex ...]', + '\tregjsparser [-f | --flags] u [regex ...]', + '\tregjsparser [-v | --version]', + '\tregjsparser [-h | --help]', + '\nExamples:\n', + '\tregjsparser \'^foo.bar$\'', + '\tregjsparser \'[a-zA-Z0-9]\'' + ].join('\n')); + return process.exit(1); + } + + if (/^(?:-v|--version)$/.test(first)) { + log('v%s', require(path.resolve(__dirname, '../package.json')).version); + return process.exit(1); + } + + if (/^(?:-f|--flags)$/.test(first)) { + flags = regexes[1]; + regexes = regexes.slice(2); + } + + regexes.forEach(function(snippet) { + try { + result = parse(snippet, flags); + 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(); + +}()); |
