https://github.com/dy/parenthesis
Parse / stringify parenthesis
https://github.com/dy/parenthesis
Last synced: 10 months ago
JSON representation
Parse / stringify parenthesis
- Host: GitHub
- URL: https://github.com/dy/parenthesis
- Owner: dy
- License: mit
- Created: 2014-12-07T19:24:26.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2025-01-20T02:36:49.000Z (over 1 year ago)
- Last Synced: 2025-08-18T05:29:09.253Z (10 months ago)
- Language: JavaScript
- Homepage:
- Size: 43 KB
- Stars: 6
- Watchers: 2
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# parenthesis
Parse parentheses from a string, return folded arrays.
[](https://npmjs.org/package/parenthesis/)
```js
var parse = require('parenthesis')
// Parse into nested format
parse('a(b[c{d}])')
// ['a(', ['b[', ['c{', ['d'], '}'], ']'], ')']
// Parse into flat format with cross-references
parse('a(b[c{d}])', {
brackets: ['()'],
escape: '\\',
flat: true
})
// ['a(\\1)', 'b[c{d}]']
// Stringify nested format
parse.stringify(['a(', ['b[', ['c{', ['d'], '}'], ']'], ')'])
// 'a(b[c{d}])'
// Stringify flat format with cross-references
parse.stringify(['a(\\1)', 'b[c{d}]'], {flat: true, escape: '\\'})
// 'a(b[c{d}])'
```
## API
### tokens = paren.parse(string, brackets|opts?)
Return array with tokens.
Option | Default | Meaning
---|---|---
`brackets` | `['{}', '[]', '()']` | Single brackets string or list of strings to detect brackets. Can be repeating brackets eg. `"" or ''`.
`escape` | `'___'` | Escape prefix for flat references.
`flat` | `false` | Return flat array instead of nested arrays.
### str = paren.stringify(tokens, {flat}?)
Stringify tokens back. Pass `{flat: true}` flag for flat tokens array.
## Related
* [balanced-match](http://npmjs.org/package/balanced-match)
## License
© 2018 Dmitry Yv. MIT License