source: imaps-frontend/node_modules/@eslint-community/regexpp/README.md

main
Last change on this file was d565449, checked in by stefan toskovski <stefantoska84@…>, 4 weeks ago

Update repo after prototype presentation

  • Property mode set to 100644
File size: 5.5 KB
Line 
1# @eslint-community/regexpp
2
3[![npm version](https://img.shields.io/npm/v/@eslint-community/regexpp.svg)](https://www.npmjs.com/package/@eslint-community/regexpp)
4[![Downloads/month](https://img.shields.io/npm/dm/@eslint-community/regexpp.svg)](http://www.npmtrends.com/@eslint-community/regexpp)
5[![Build Status](https://github.com/eslint-community/regexpp/workflows/CI/badge.svg)](https://github.com/eslint-community/regexpp/actions)
6[![codecov](https://codecov.io/gh/eslint-community/regexpp/branch/main/graph/badge.svg)](https://codecov.io/gh/eslint-community/regexpp)
7
8A regular expression parser for ECMAScript.
9
10## 💿 Installation
11
12```bash
13$ npm install @eslint-community/regexpp
14```
15
16- require Node@^12.0.0 || ^14.0.0 || >=16.0.0.
17
18## 📖 Usage
19
20```ts
21import {
22 AST,
23 RegExpParser,
24 RegExpValidator,
25 RegExpVisitor,
26 parseRegExpLiteral,
27 validateRegExpLiteral,
28 visitRegExpAST
29} from "@eslint-community/regexpp"
30```
31
32### parseRegExpLiteral(source, options?)
33
34Parse a given regular expression literal then make AST object.
35
36This is equivalent to `new RegExpParser(options).parseLiteral(source)`.
37
38- **Parameters:**
39 - `source` (`string | RegExp`) The source code to parse.
40 - `options?` ([`RegExpParser.Options`]) The options to parse.
41- **Return:**
42 - The AST of the regular expression.
43
44### validateRegExpLiteral(source, options?)
45
46Validate a given regular expression literal.
47
48This is equivalent to `new RegExpValidator(options).validateLiteral(source)`.
49
50- **Parameters:**
51 - `source` (`string`) The source code to validate.
52 - `options?` ([`RegExpValidator.Options`]) The options to validate.
53
54### visitRegExpAST(ast, handlers)
55
56Visit each node of a given AST.
57
58This is equivalent to `new RegExpVisitor(handlers).visit(ast)`.
59
60- **Parameters:**
61 - `ast` ([`AST.Node`]) The AST to visit.
62 - `handlers` ([`RegExpVisitor.Handlers`]) The callbacks.
63
64### RegExpParser
65
66#### new RegExpParser(options?)
67
68- **Parameters:**
69 - `options?` ([`RegExpParser.Options`]) The options to parse.
70
71#### parser.parseLiteral(source, start?, end?)
72
73Parse a regular expression literal.
74
75- **Parameters:**
76 - `source` (`string`) The source code to parse. E.g. `"/abc/g"`.
77 - `start?` (`number`) The start index in the source code. Default is `0`.
78 - `end?` (`number`) The end index in the source code. Default is `source.length`.
79- **Return:**
80 - The AST of the regular expression.
81
82#### parser.parsePattern(source, start?, end?, flags?)
83
84Parse a regular expression pattern.
85
86- **Parameters:**
87 - `source` (`string`) The source code to parse. E.g. `"abc"`.
88 - `start?` (`number`) The start index in the source code. Default is `0`.
89 - `end?` (`number`) The end index in the source code. Default is `source.length`.
90 - `flags?` (`{ unicode?: boolean, unicodeSets?: boolean }`) The flags to enable Unicode mode, and Unicode Set mode.
91- **Return:**
92 - The AST of the regular expression pattern.
93
94#### parser.parseFlags(source, start?, end?)
95
96Parse a regular expression flags.
97
98- **Parameters:**
99 - `source` (`string`) The source code to parse. E.g. `"gim"`.
100 - `start?` (`number`) The start index in the source code. Default is `0`.
101 - `end?` (`number`) The end index in the source code. Default is `source.length`.
102- **Return:**
103 - The AST of the regular expression flags.
104
105### RegExpValidator
106
107#### new RegExpValidator(options)
108
109- **Parameters:**
110 - `options` ([`RegExpValidator.Options`]) The options to validate.
111
112#### validator.validateLiteral(source, start, end)
113
114Validate a regular expression literal.
115
116- **Parameters:**
117 - `source` (`string`) The source code to validate.
118 - `start?` (`number`) The start index in the source code. Default is `0`.
119 - `end?` (`number`) The end index in the source code. Default is `source.length`.
120
121#### validator.validatePattern(source, start, end, flags)
122
123Validate a regular expression pattern.
124
125- **Parameters:**
126 - `source` (`string`) The source code to validate.
127 - `start?` (`number`) The start index in the source code. Default is `0`.
128 - `end?` (`number`) The end index in the source code. Default is `source.length`.
129 - `flags?` (`{ unicode?: boolean, unicodeSets?: boolean }`) The flags to enable Unicode mode, and Unicode Set mode.
130
131#### validator.validateFlags(source, start, end)
132
133Validate a regular expression flags.
134
135- **Parameters:**
136 - `source` (`string`) The source code to validate.
137 - `start?` (`number`) The start index in the source code. Default is `0`.
138 - `end?` (`number`) The end index in the source code. Default is `source.length`.
139
140### RegExpVisitor
141
142#### new RegExpVisitor(handlers)
143
144- **Parameters:**
145 - `handlers` ([`RegExpVisitor.Handlers`]) The callbacks.
146
147#### visitor.visit(ast)
148
149Validate a regular expression literal.
150
151- **Parameters:**
152 - `ast` ([`AST.Node`]) The AST to visit.
153
154## 📰 Changelog
155
156- [GitHub Releases](https://github.com/eslint-community/regexpp/releases)
157
158## 🍻 Contributing
159
160Welcome contributing!
161
162Please use GitHub's Issues/PRs.
163
164### Development Tools
165
166- `npm test` runs tests and measures coverage.
167- `npm run build` compiles TypeScript source code to `index.js`, `index.js.map`, and `index.d.ts`.
168- `npm run clean` removes the temporary files which are created by `npm test` and `npm run build`.
169- `npm run lint` runs ESLint.
170- `npm run update:test` updates test fixtures.
171- `npm run update:ids` updates `src/unicode/ids.ts`.
172- `npm run watch` runs tests with `--watch` option.
173
174[`AST.Node`]: src/ast.ts#L4
175[`RegExpParser.Options`]: src/parser.ts#L743
176[`RegExpValidator.Options`]: src/validator.ts#L220
177[`RegExpVisitor.Handlers`]: src/visitor.ts#L291
Note: See TracBrowser for help on using the repository browser.